Just a forewarning, this is a brain dump I’ve done whilst on my Twitch stream, so some of this may or may not make sense.
Infinite vs Finite
Currently in EarthFall, the landscape is infinite in all directions. Selecting various biomes based upon a temperature and moisture map created from Perlin noise, for the majority of cases this has worked. However as I’ve began to add more and more to EarthFall I’ve stumbled across the problem of detail with Perlin noise systems, its great for broad strokes of height, colour and object placement; but it gets quite dull and repetitive over time. At the other end of the spectrum are hand crafted levels, these would be fun to explore as they have been detailed throughout with little places to see and smaller details that a simple Perlin noise system can’t quite manage.
Now, at current the procedural generation is simple because in order to be infinite, nothing can be pre-computed, each tile is generated it comes into view which means it needs to be fast. I’ve thought about adding in a chunking system which effectively generates an entire chunk and then runs additional passes on it for adding details like rivers and little outposts, but it always boils down to the same situation where it never looks quite “right” as they tile together a bit too well.
To try and solve this problem I suggest that the map be broke up into grids, these grids would have a high-level “biome” and be a fixed size (1000 tiles x 1000 tiles). Then a number of layered generators would run over the entire map and add in further detail.
This of course would mean that the map wouldn’t be “infinite” and would have a small “generating” screen. However I believe the end result would allow for better exploration and ultimately allow for a better simulation of the world itself.
In order to allow the player to explore further outside of their initially selected grid I would implement a mechanic that allows them to trade resources to effectively “travel” to that grid.
Is infinite the way to go?
At the end of the day, does infinite really matter in a game? Will a player actively travel for days on a map just to find their own spot and setup camp?
If I can find a way to make the world completely infinite whilst also having a great level of detail it would be perfect, but I feel I’m getting a little sidetracked by the need for infinity.
Let me know your thoughts, if you have any suggestions let me know! – @DGoodayle.