This Hurts Me

As a civil engineering and municipal infrastructure enthusiast, village generation like this makes me die inside.

You may think “but it looks cool”, until you actually fly in close and realize that none of the villagers can get back into their houses after convening at the common areas of the town because they’re up sheer cliffs or halfway embedded into solid rock, and none of the paths are actually navigable in any way.

Even ‘rescuing’ this town by trying to light it up sufficiently that they won’t be accosted by zombies all day long from every nook and cranny, let alone refactoring all the paths so they can find their way around, is a frustrating and painful prospect.

Yeah sure okay it’s just a video game, but games and other environmental simulations of the sort only capture the imagination and our own minds’ abilities to extrapolate emergent play by having at least some basic modicum of verisimilitude - and i can tell you, this settlement, which was supposed to have been ostensibly built by allegedly sapient beings, should NEVER have come to be. Villagers can’t even merely sustain existence here let alone build it. Not that they have any canonical capacity to construct in the first place, but it’s supposed to be implied by the existence of buildings.

In a word, it’s dissonant.

How To Decrease Suck

But look. I’m not here to just point fingers and lay blame. Generally it’s a dick move to criticize a situation without offering a solution, and I have one:

Pathfinding as a generative guideline.

Retracing the hows and whys of populated places in real life, we can reveal the underlying principles that drive the phenomenon of Basically Any Place That Is Dwelled-Within. You see, for millions of years before humanity even existed let alone before the first permanent artificial structures were constructed on earth, the critters who occupied various land-based biomes on our world were trying to balance the needs of food, water, and safety. And they would do this by recognizing where these things were, and then attempting to navigate between them as efficiently as possible. In other words: animals create game trails, delineated paths of least resistance, between foraging grounds, watering holes, and hiding/nesting/resting places. Even entirely nomadic herds will attempt to beat relatively easier-to-traverse routes between grazing lands.

You could build an algorithm that attempts to lay a route between any two arbitrary points in an environment that minimizes for disruptions like objects blocking the way, bodies of water, gaps in the terrain like ravines, or even slopes that are uncomfortably steep.

A Pathfinding Algorithm.

Now, why do people make paths? Well, our hunter-gatherer ancestors did this to follow migratory prey and seasonal edible plants. Even though structures weren’t permanent, we’d come back to set up our camps at the same spots because they’re good spots to camp at - and our ancestors KNEW that as a function of accessibility. When we began experimenting with agriculture and attained the ability to stay in the same spot year-round while not dying of starvation or exposure, we discovered a whole-ass new use for pathfinding: trade!

We’d harvest materials from the surrounding world, and congregate to exchange what we found. Since all the materials were there, we began producing those materials into goods! Since we have all these people and all these goods in one place, why, let’s facilitate the exchange with the performance of services to improve quality of life! Providers of Materials, Producers of Goods, and Performers of Services, congregating at a common location…
That’s a Village.

The villagers in minecraft also possess an intrinsic implied division of labor along similar lines:

  • Farmers obviously provide all the base sustenance foods the community needs.
  • Fishermen provide fish, but also presumably various salvaged items or junk their luck of the sea might have brought ashore.
  • Fletchers hunting in the wild provide wood, flint, feathers, and string.
  • Masons mining in quarries provide minerals.
  • Shepherds tending their herds and flocks provide meat, dyes, and cloth from wool.
  • The various armorer, weaponsmith, toolsmith, leatherworker, and butcher all produce finished goods from those raw materials.
  • The Cleric provides the service of being the community’s organizer and leader.
  • The Librarian provides the service of keeping records and teaching the young.
  • The Cartographer provides the service of facilitating travel and communication between towns and the location of resources in the field

What I’m trying to say is, there’s every indication that the only thing missing from this brew is the PATHS.

And that, if you DID try to draw paths of least resistance between arbitrary points in the world, you would see them converging upon level, open areas of solid ground… which would be perfect for the construction of settlements and slot seamlessly into the extant paradigms of villages as they already are.

Not only that, but, this would go incredibly far toward enriching every minecraft world with the semblance of a narrative without actually having to write one for real. Villages connected with roads will provoke our imaginations to externally hallucinate the existence of social systems that don’t even need to be programmed into the game, like sociological regions, or nations.

It all comes down to a road-based approach.

edit: BTW,
I created a submission in the official Minecraft Feedback site last month. Sadly it’s rather hard to elegantly express what I’m suggesting with a character limit of only 1500. So if you think this is a good idea, come here and vote or something. maybe comment. Feedback Link

  • theorangeninja@lemmy.today
    link
    fedilink
    English
    arrow-up
    58
    arrow-down
    1
    ·
    5 months ago

    Did you take a look at VoxeLibre and how they implement villages? They recently announced to move away from just cloning Minecraft and now they want to build their own vision of the game. Maybe they are open for your suggestions to make villages a better experience!

    • A_Very_Big_Fan@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      5 months ago

      I hope they don’t get C&D’d. They don’t seem to be hiding the fact that they’re trying to make a FOSS Minecraft.

  • wander1236@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    35
    arrow-down
    1
    ·
    5 months ago

    I know it’s broken, but I kind of like seeing the ridiculous ways villages can generate. Villagers in Minecraft are notoriously stupid, so it almost makes sense in a way that they wouldn’t be the best at creating practical towns.

  • JackGreenEarth@lemm.ee
    link
    fedilink
    English
    arrow-up
    32
    ·
    5 months ago

    There was even a ‘Villager update’ a while back, but that didn’t address things in this level of detail.

    • Cyrus Draegur@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      20
      ·
      5 months ago

      All it did was update the professions, make some layout variants that remained entirely blind to terrain circumstances, and eventually add the pillager outposts (village and pillage) but…

      Heck, if you think about it, we have three strata of a society right in front of us, and it’s even anarchism-coded!

      • Peasants living their happy little egalitarian lives in villages,

      • Hostile constabulary tromping through with their jack boots wielding the state’s monopoly on violence to exploit the villagers’ labor (Pillagers from outposts)

      • Nobility debaucherously luxuriating at their isolated estates detached from all the worldly drudgery (Illagers in Woodland Mansions).

      Connecting them with roads and implying that pillagers only raid because they consider Steves and Alexes to be dangerous foreign outlaws would even make sense. Of course they would want to punish the village that was collaborating with that “dangerous outsider” who killed one of their lieutenants!

      I for one think that pillagers and illagers should be hostile toward spiders, zombies, and skeletons, but that once roadways are generated in a world they should be patrolling them.

      Adding nuance to this such that maybe pillagers might only retain the name for the sake of the pun and would otherwise be dangerous but ‘neutral’… would suit the world terribly well.

  • Azzu@lemm.ee
    link
    fedilink
    English
    arrow-up
    30
    arrow-down
    3
    ·
    5 months ago

    I don’t think there’s any real will to update Minecraft to be objectively better anymore. Specific devs might still care, but management is in power and just extracting maximum value. Your thoughts are great but I’m sure they’re never going to get in official.

  • FollyDolly@lemmy.world
    link
    fedilink
    English
    arrow-up
    23
    ·
    5 months ago

    RIGHT!? And maybe it’s me but whenever I see one of these villages I have to help them. I fell so bad watching them stranded in pits and stuck on cliff sides. Derails whatever I was doing bc I feel so bad for them. Sometimes I’ve had to destroy and block off entire houses bc they spawned in a cave under the village and the villagers were getting eaten alive trying to get to it.

    • Cyrus Draegur@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      19
      ·
      5 months ago

      If you felt so inclined, this village was in Seed -592881470 at x+784 z+80

      i mean … as i type this i feel a little silly thinking someone would spin up a copy of this world just to go to that specific village and graciously unfuck its shit, but … i can’t help but put myself in your position given what you’ve said and feel the urge to represent at least one version of their universe where their town isn’t a total disaster 😅

  • WillFord27@lemmy.world
    link
    fedilink
    English
    arrow-up
    16
    ·
    5 months ago

    As one of the devs of a structure mod, ALL Minecraft structures have godawful world placement. There really aren’t many tools to improve how they spawn other than to ignore the world entirely lol.

    Funny thing to think about, when was the last time Mojang added a structure that cares about the world around it? Trial Chambers spawn underground, Trail Ruins spawn underground, Ancient Cities spawn underground, etc

  • ReveredOxygen@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    17
    arrow-down
    1
    ·
    5 months ago

    This would be a massive undertaking for something very few people care about. It would also greatly increase worldgen time, and bring back cascading worldgen. Bridges might be feasible, but structures don’t typically do that kind of terrain manipulation you speak of

    • Cyrus Draegur@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      7
      ·
      5 months ago

      Well, I’d like to point out that this isn’t manipulating the terrain so much as taking the terrain as it is and predicating the generation of villages on the extant properties of the terrain. And while the POI generation system in minecraft does not guarantee something is always there, it would be fine if the ‘attempt’ to generate a POI there was enough for a corresponding ‘attempt’ to pathfind to it. Dead end paths manifest in real life too sometimes.

      Also, it’s perfectly feasible to limit recursion in tiers, somewhat the way that the Distant Horizons mod does: It performs a limited query of minecraft’s terrain generation code that only roughs out surface-level details speculatively. They are not fully realized. Precalculating speculative paths between potential POI-sites in the far distance as a background operation before you get close enough to generate those chunks “for real” would be a function of what process cycles you have to spare rather than being a prerequisite before rendering the next frame.

  • thawed_caveman@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    ·
    5 months ago

    Just in general villages aren’t sustainable, even on flat ground. They will absolutely get overrun by zombies within a few nights unless the player intervenes.

    Also, if i recall correctly, the butcher’s hut has their smoker generate with a solid block above it; this is a problem because villagers can’t use job site blocks that have a solid block above them. So this butcher eventually becomes a regular villager.

    So in a few different ways, villages as they are generated are unsustainable. And there’s too many of them, there’s an argument that the world feels way too populated where the vibe of Minecraft’s world once was sheer solitude

    • Cryophilia@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      5 months ago

      Minecraft is a post-apocalyptic world. There’s ancient wrecks of giant ships, there’s buried ancient civilizations, there’s scattered, tiny, isolated bands of people living in a vast, empty expanse. In Minecraft land, there was a cataclysm maybe a thousand years ago that reduced humanity to a tiny tiny population. It’s taking hundreds of years to spread out again.

  • glitchdx@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    4
    ·
    5 months ago

    Mojang died when Microsoft bought them. This will never be fixed, ever, along with a long list of other complaints (readers feel free to compile your own list).

    Instead, I am looking for another game to replace minecraft. Lay of the Land looks promising, but it’s one guy and the project is still in VERY early dev. I am open to other suggestions.

    Also, I got here because this post was on my front page. I’m not normally in this community and will take my negativity with me when I leave.

      • glitchdx@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        5 months ago

        I mostly play creative these days, as survival doesn’t really have much in the way of gameplay. Once you’ve automated food production, made a skeleton grinder for arrows/xp, mined up a couple stacks of diamond for gear and enchanted them, there isn’t much left to actually do. Sure, you can explore, and mojang has added some really cool biomes and locations over the years, but there’s never anything actually worthwhile to get (except for the elytra in the end).

        To make survival engaging would require overhauling so many aspects of minecraft, and I suggest looking at Terraria for inspiration. Minecraft has 7 swords (wood, stone, iron, gold, diamond, netherrite), with possible enchantments for each. According to bing ai, Terraria has 101 different swords, all with different possible modifiers. The progression ladder is not only much taller, but also more granular. And then apply this logic all the rest of the equipment (and add trinkets while we’re here).

        Of course, with all these weapons, you would need something to do with them. Different zones within the game would need to be more or less difficult, with a much greater variety of mobs. I’m not sure the best way to do this, so why not have actual dungeons? Trial chambers seem to be a step in the right direction, but without the possibility of better and more interesting rewards, there’s no point in making better dungeons.

        Inventory management is also bad. Terraria kept upping stack sizes over the years, and every time the community was happy about it. Minecraft needs to do more than just up stack sizes, because each material type also has different shapes (blocks, slabs, stairs, fences/walls) that building anything with more than one material is a chore. You should be able to have a stack of 2000 stone brick in your inventory and place any of its shape variants without crafting another object. Make a slab cost a full block, I don’t care, having more slots in my inventory free is way more important.

        Every attempt that Mojang has made to address the above has been surface level at best. I’d be fine with that, after all survival is only one way to play the game. There’s also creative, and the vanilla experience is awful.

        Ever try to do a large art project in MS paint using only the pencil tool? That’s minecraft creative mode. There needs to be tools to modify several blocks at once, using an intuitive interface (there’s a video for Lay of the Land that demonstrates the kinds of tools I’m talking about, I’ll link it if I can find it again). To get around this, I use a mod called Litematica, which is a cumbersome pain in my behind but the only way I know how to build a large scale anything without going mad. I’ve attempted to switch over to modelling in Blender and use Joey Carlino’s Block Blender addon, but I can’t figure out how to get the exporter to make the blocks actually be the material I want them to be. These mods and external tools should not be necessary, especially in CREATIVE MODE.

        The lay of the land video as promised: https://youtu.be/XjCSY5x_EQw?si=q3UUd95-4dXgJVPj

        Also also, we really should have more decorative objects. We have one type of bed, and it can have a few different color blankets on it. There should be a different style of bed for every major material type (like Terraria). Also, chairs. Not just things we can build that kinda look like chairs, but actual chairs that we can sit in. My park benches currently look terrible because in order to be functional they have to have a minecart in them. Tables that are coded as tables and you can simply pick up or set down objects on them. Furniture in general.

        • WIZARD POPE💫@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 months ago

          Yeah I completely agree with you on most things like building and the endgame being crap. But the tiers of tools I kinda like for the simplicity. I have played several smp servers with my friends and the qctivity on the server was quite a bit lower after we killed the ender dragon and got elytrae.

          • glitchdx@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            5 months ago

            Even if the different gear were sidegrades to each other, that would still be better. Keep the main ones that you craft yourself as is, but then have findable versions that you can’t craft that have the same or similar stats but very different aesthetics (and possibly enchant bias). That would already make exploration more worthwhile. Armor trims are a step in the right direction, but making the schematics fragile is just a slap in the face. Actually, gear fragility really shouldn’t exist at all, but that conversation can happen another day.

  • glitchdx@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    5 months ago

    Completely unrelated to my other comment, and more related to the actual post, I think looking at Factorio’s upcoming world generation changes may be a source of inspiration on how to do this better. Mojang won’t ever do it because it would take actual work for something most people won’t notice, so it’s up to the modding community.

    Factorio may be a 2d game, but its world generation is done in 3d and then flattened.

    Look at Factorio Friday Facts number 401 and scroll waaaaaaaaaaay down to the section on Natural Paths.

    https://factorio.com/blog/post/fff-401

      • Cyrus Draegur@lemm.eeOP
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        5 months ago

        “why should we develop the game when instead we can simply ‘encourage’ the players to develop it for us?”

    • mhague@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      5 months ago

      I would not want to sacrifice my time and energy making a product better just so a corporation can make more money or earn more kudos. And the higher ups definitely don’t want to invest more than they have to. Minecraft is just a product now.

  • blaue_Fledermaus@mstdn.io
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    5 months ago

    One idea I have (but no ability to mod it in) would be:
    to generate some kind of voronoy grid;
    find the average height of each cell;
    discard those too different from their neighbors;
    flatten the terrain in each cell to its average;
    connect some centers with paths;
    add buildings.

    • Cyrus Draegur@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      1
      ·
      5 months ago

      in minecraft, ‘factional regions’ could be defined by drawing voronoi diagrams whose seeds/sites/generators are the woodland mansions… implying that the ruling classes of the villagers are the illagers and that their standing army of enforcers are the pillagers at the outposts…! With just the barest hint of structure, an entire narrative can emerge almost effortlessly. If the world were filled with stone walls delimiting these regions, suddenly there is a sense of political tension and territoriality. Just as roads convey a “sense” of connection, walls can convey a sense of conflict. With these in place, the world would feel much more lively and interlinked!

  • Excrubulent@slrpnk.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    5 months ago

    I really like this idea, and like you point out elsewhere it might be possible to achieve this without prohibitive “river-like” worldgen problems.

    I’ve long thought that a big problem with villages & villagers is that Minecraft’s design philosophy has always prized player-supremacy. That is, the player can change any blocks and very few other things can alter them. (creepers are fine; endermen acne can fuck right off)

    So the villagers are stuck with the village they were given and cannot help themselves.

    If villagers were given the power to dig and build to create the paths they need, repair their buildings and to fight off monsters, they’d be so much more interesting, and players wouldn’t be able to silo them off in little stalls to act as simple vending machines. The player would be forced to respect their autonomy.

    I know the villagers already create big lag, but that’s because they’re constantly recalculating their pathfinding. If they made a path, and only recalculated when they bumped into one another or a block on their path was updated, then they wouldn’t need to do that, and they could have more complex behaviours. Also as a bonus this would fix a lot of mob lag.

    It would be a lot easier if the villages spawned on reasonable terrain as well.

    • Cyrus Draegur@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      5 months ago

      Oh wow I wasn’t even referring to villager agency but I kinda agree with you - ESPECIALLY on the grounds of what you described in terms of pathing for them, what I feel I’d call “parbaked pathing”.

      My idea with using pathfinding algorithms as the root of village generation was to prevent ridiculously awful disasters of architecture in the first place by ensuring that villages would only tend to generate where a village would hypothetically have all the things it needs:

      a. Open, stable, solid, reasonably flat-ish ground

      b. Hypothetical easy connectivity to (imaginary speculative) “resources” in the world (that are in actuality arbitrary points of interest that tried to pathfind to each other and whose paths inevitably converged at a.)

      c. Potential access to other villages for travel.

      If villagers DID have agency to actively build instead of magically-already-have-been-built-now-they’re-stuck-with-a-lava-pool-burning-all-the-wooden-houses, what would be cool about that PLUS never developing a village on top of a lava pool would be the potential for villagers to build actual roads between villages when the POI-linking pathfinding in the background happens to touch two villages concurrently…
      (like lightning, shooting out tracers to establish a current but then committing once a viable route is found)

      This should not be something happening in the foreground though so as not to harm chunk loading performance. Maybe only actionable when a player trades with villagers and somehow tells them “yeah, I’d like you to proceed with that”.

      We already have sculk that spreads - and arbitrarily, chaotically so! - in response to player interaction, after all. This proposal would violate precedent LESS than that.