I’ve mainly doing core engine work, putting in time to lay decent groundwork for features in the future.
Entity Component System
I’ve started building an ECS, specifically to manage the large amount of game units. The technical design of the game units would indeed fit in a deep class hierarchy, however I don’t believe this system will give me the flexibility or speed that I need. I took a glance at different c++ ECS libraries like EntityX, but none seem to be in active development so thats why I’m rolling my own.
When the player hovers over the landscape in construction mode a grid indicating the underlying tiles now shows. This is simply done in shader.
Started experimenting with Polyvox, a c++ voxel libary. For sake of dev time, I would much rather use an established lib than roll my own solution. Thinking of using this for storing and meshing the user constructed buildings that sit upon the terrain.
LOD Texturing and Ocean Texturing
When zoomed out the engine is displaying the lowest LOD world map, previously you would only see a flat green across the whole landscape. Now the system generates a texture that shows the different tile types and changes in biome (Currently only the grass/sand) and places it on the mesh. The texture is generated at the start of the game so is not dynamic yet. Later I will implement a system to make it possible to update the texture mid game, to show the change in seasons for example.
There is also a similar technique for the ocean, at the start of game a texture is generated from the height map data. I then plug this into the ocean shader to create lighter values near the landmass.