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.
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:
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.
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.
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: