So, I’m in the middle of implementing actual levels.
I’m currently trying to figure out how to best manage and display level geometry and objects appearing in the levels like buildings and obstacles.
I think some of my basic approaches already work quite well, like creating a file format that combines 3D geometry that is needed for the current level with placeholders that tell the game where the geometry needs to be rendered.
However, I have a good amount of work still ahead of me. At this step, some of the challenges of the perspective the game is rendered in become apparent:
- Rendering parts of the landscape from far away requires that the landscape geometry extends quite far to the sides, otherwise the landscape ends too early on the left and the right when rendered at a distance.
- When approaching the landscape, the parts on the left and right will vanish outside the screen quite early, so it’s important not to put too much detail into these parts.
- I will probably need some kind of LOD system for landscape geometry and larger objects in the game. It doesn’t make sense to render an object at full detail if it is too far away and too affected by fog.
- I will probably need different viewing distances for small and large objects. It doesn’t make sense to render a coin or an item when it is basically only a pixel large, but I don’t want large objects to pop into existence in the last second either.
There is already some early version of the level system visible in the game. Some of the problems are quite visible, but should be fixed relatively easily:
When flying a little higher, the problems with the viewing distance become very apparent:
I hope I will make some progress on this in the coming days and weeks.