So I've been working on this project on every opportunity that has been given to me during these last few months and I think it's time to show some of the progress that I've made.
The procedural map generation system is coming along nicely and does its job fine for now. The way it works right now is that the user inputs a seed when starting a new game and the system will then generate a height map for the terrain mesh, all splatmaps for the different terrain textures, the placement of thousands of different dynamic resources (trees and rocks for now) and a suitable starting location to place the original colonists. In the future I will add some more input variables to this system to let the user adjust the generation further, like main biome type, abundance of different resources and the ocean height. Here are some images of different seeds viewed from the same spot and angle. Everything shown in this post is still WIP.
The dynamic weather system has been implemented and the transition between seasons is now buttery smooth. Depending on the season certain weather conditions are more likely to appear, like snowfall in the winter. The system will also apply a certain tint to the nature depending on the season. So for example, in the spring you can expect the nature to look green and vibrant, and by fall its going to look reddish and gray.
Hopefully you'll be able to see the gifs presented here and I hope you will excuse the potentially poor quality. If the gifs doesn't show for some reason you can check them out at [https://alteahofficial.imgur.com/all ]
It might look like stutters in these images but you can rest assured that the performance in the game is perfectly fine. So with that said, lets first take a look at some dynamic wind.
And here we can see the transition between the seasons.
The AI system has been worked on as well and the citizens can now traverse the landscape with ease with a new dynamic navigation system. The system will gather data that represents the walkable areas when the terrain has been loaded or generated and will then be continuously updated whenever a change has been made. Like when a building has been placed which leads me on to another newly implemented system which I'm going to talk about next.
The placing system has been made to handle were the player can and cannot place certain things. So by getting the relevant data of the building we'd like to spawn we ask the database system for the template so that we know what rules to consider. For example, if the building is a fisherman's hut, it has to be placed with a certain part in the water etc. All the conditions are easily specified in the template that was created for that specific entity. A building can have a certain elevation tolerance as well as shown in the next gif. The yellow area you can see is just a debugging feature I made to be able to see the walkable areas update in real time.
The database system has been implemented to make it easy for the game logic to fetch relevant data regarding any dynamic entity in the game. Since the game is being developed with modding in mind I felt like this was a necessary system to add since it makes adding new entities to the game a real breeze. I think of this system as the template or blueprint keeper, if you need to find data about any entity, this is your guy.
There are many more systems and features that I've been working on and I will talk about them soon. Anyways all the systems that I've been talking about so far has been developed with modularity in mind to make modding and further development easier and I'm quite happy about the state so far. Although the time it has taken to develop some of the shaders is longer than I'd like to admit but thankfully most of the complex ones that I had envisioned for the game are now in a good state for now.