Openage Development News: October 2023

Hello everyone and welcome to another update to the openage project. October has been a rather slow month, with us mostly focusing on getting the code base cleaned up. As part of the cleanup, we also ported a few rendering features of the old engine core to the new renderer. But more on that further below.

Legacy Code Cleanup

Our legacy code cleanup continues with the refactoring of the old GUI interface which is now completely decoupled from the game simulation. The old GUI directly interfaced with gameplay features, which was not necessarily bad but kind of slow. In comparison to this, the new GUI will not communicate with the game simulation directly, but rather send input signals through our regular input system that is also used for keyboard and mouse inputs. Communicating in the other direction (simulation to GUI) will be a little bit more complicated but that is a story for a future News update.

We've additionally removed the last remnants of SDL related code. As a result, SDL2 will be removed as a dependency in the next release as all window system functionality is now handled by Qt. Furthermore, we have also resolved a few nasty crashing issues and memory leaks in the renderer and fixed display bugs when using the Wayland compositor.

Terrain Chunks

openage can now properly handle terrain assets from modpacks and display them ingame. Our previous terrain implementation used a hardcoded test texture - which you should be familiar with from all the screenshots we've published. Not only can the renderer use "real" terrain assets now, it can also display more than one of them at once! As a result, openage looks almost like a real game:

Terrain rendering

Internally, both the terrain data in the game simulation and the terrain render objects are now organized in chunks. Chunks are collections of 16x16 tiles that can be updated individually. This allows us to utilize better runtime optimization, since we don't have to update the whole terrain grid at once if there is a change.

The current implementation is nowhere near feature complete yet. For example, there's no blending and only one texture can be displayed per chunk. Gameplay-wise, terrain has also no effect as pathfinding and collision are not implemented right now.

What's next?

Code cleanup will probably be finalized in November and published as a new release. Afterwards, we will start adding proper unit selection to the engine and find a way to display the selected units on the screen.

Questions?

Any more questions? Let us know and discuss those ideas by visiting our subreddit /r/openage!

As always, if you want to reach us directly in the dev chatroom:

  • Matrix: #sfttech:matrix.org

links

stalking