Let's Fix Villages At Their Source - eviltoast

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

  • 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.