Created as a second-year project, my goal with the terrain generation was to develop a highly customizable and reusable system that would speed up the development of future projects. This required thorough foresight to ensure the creation of a modular system which would be easy to use within the editor.
The settings for the base terrain
The list of biome blueprints to use during terrain generation
The specific settings available for each biome blueprint
Through the use of various equations, all centred around Perlin noise the height of each vertex of the base plane mesh gets offset on the y axis based on some underlying values set in the editor. Then, using Voronoi noise, each island and water body has biomes and meshes overlayed over the specified vertices, along with some further height offsets to give more uniqueness to each biome.
Along with this I was a main developer on the multiplayer system which required many optimization stages to ensure lag, largely due to unnecessary replications of the AI, could be reduced. Due to the terrains high network cost, it was decided that only the vital information, specifically its seed, would be sent to client’s machines so that they could all independently generate the same terrain.
Initial prototype terrain
Fully refined terrain
Added ability to convert terrain into islands
Initial biome generation
Refined biomes to work based off the islands themselves
Full terrain with refined biomes and meshes