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

  • Excrubulent@slrpnk.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    9 days 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
      8 days 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.