I don’t know how many times in the course of development we have used the Sheng-Ji Yang quote from Sid Meier’s Alpha Centauri about how “One does not simply take sand from the beach and produce a Dataprobe.” But, we’ve used it a few times and today is no exception. Game development is an inherently iterative process, especially early access game development: you build systems, you attach other systems, and eventually – at some point – you run out of systems to build and cross over into a territory that consists purely of refining existing systems.
One of the major systems outstanding that I have to finish is the overworld. We have previously added randomly generated overworld maps, which are generated using a standard approach: “take a lot of Perlin noise, generate some Voronoi cells on top of that, fill in various land masses, and off you go.” What has been missing is the code which lets you pick an arbitrary point on that land mass and go exploring.
We have now reached the point in our Dataprobe creation process where we have started adding that.The way that overworld generation internally works is that you click on the map, and select a square. We look at every Voronoi cell on the overworld that is contained in this square, and initialize a new “colony map” by scaling all of the centroids of the world biome cells so that they are correctly placed on the colony map (which is higher level-of-detail); we then seed a second “finer” Voronoi cell map over the colony map, which is used to place biomes. Each finer cell selects from a list of biomes which can exist in its “coarse biome cell.”
Right away, you get interesting results. Not all of these are good:
The advantages, right now, are that the newly generated maps are interesting and novel; it never feels like you get the same old starting location. “Oh,” you say, “New Antipodea again?” Now things are mysterious and dangerous in a way that they weren’t previously.
The bad news from a software development perspective:
- nobody has really touched the biome generator code since New Sogwood was hastily added just before early access in 2014
- various things that were hard coded to play nice in New Antipodea and New Sogwood no longer work correctly on randomly generated maps;
- a whole bunch of biomes that you may encounter in the game are simply not set up at all.
So you will also get strange things like Aurochs Island that are… interesting, yet undesirable:
and areas where the game crashes, or has garbage, or incorrectly blended water colors, or… well, there’s a list. So we have a great deal of data entry to do now, as well as adjusting things such as the density of the fine Voronoi cells with respect to their coarser cousins, and determining where it is correct to apply Lloyd Relaxation, that magic process that sort of makes everything feel “nice” and “like a video game map.” We do not plan to ship this for 49, but I expect all heck to break loose in 49A when we can hopefully push a first version of this code to the world. For now, you will be able to select a starting location on the map but it won’t actually affect anything.
Other “overworld-things” to get in: a global world history, where we can have all kinds of Simulationesque Fun!, and measures of influence for various groups throughout the world so that you can adjust your difficulty. (For instance, it doesn’t necessarily make sense to spawn fishpeople if you’re up against A Forsaken Mountain, but perhaps it makes more sense to spawn Obeliskians. The various strengths and weaknesses of Villainous Foreigners may change depending on your performance in the world, perhaps. This is also to say nothing of the fact that, perhaps if you are too close to a [The information contained in this paragraph has been expedited by order of Her Majesty’s Anti-Paranormal Squadron, for containing wild speculation and untrue facts about the nature of certain organizations and entities that do not exist. Anybody caught in possession of unedited paragraphs will be sentenced to hard labour in the Antipodean Clay Mines for no less than a period of six months, and may also be set on fire for Reasons of Hygiene.]
For some reason I read “various things that were hard coded to play RICE” and was momentarily very excited about playing rice. Still, quite excited in a tea and crumpets sort of way, about new over worlds! BTW, this is the only game dev blog that I read and I absolutely love it! Thanks so much!
After New Sogwood was apparently “wiped off the map” by the strategic arm of the Drowned God and his/her Fishpeople Legions…
Hopefully there will be places where I can see Fish People, Obeliskians and REDACTED all at once. Because I want all the things!
So there can be multiple biomes within a single game map?
There are now actually! The upper and lower parts of the default start location are different biomes. We plan on most (if not all) start locations including more than one, as it makes the environment feel much more interesting.
While that’s true, you hardly really engage with areas past some distance from your colony center.
The “wilderness” is indeed very vast and dangerous outside of a maybe 50-100 tile area past the outer buildings/defenses.
Cool.
While I realise you don’t want TOO much weirdness like the Auroch islands, be careful in how much you reduce it. Getting curious and strange terrain is one of the joys of random generation, and it’s minimised at the risk of dull, generic uniformity.
Seconded.
Also, things like Auroch Island are only a problem because AFAICT nobody in the game (up to and including Fishpeople) knows how to swim.
And also because the water in the game is very weird, and doesn’t look very good. this might be my only complaint with the visuals in game.