Openage Development News: December 2023

Hello everyone and welcome to yet another openage development update. As 2023 is wrapping up, we can look back on a huge amount of features, fixes, and restructerings that made it into the engine this year. Basically, we transformed openage from an unmaintanable monolith into a usable, albeit still work-in-progress, engine prototype. All of the newly designed subsystems were finally integrated into the engine core. This means we can start 2024 without worrying as much about the engine's stability and architecture as before :)

During the holiday season, openage development also took a small break, so this blogpost is slightly more brief than usual. We will get back to the usual format next month.

Configurable Activities - Part 2

Our new activity system, which we introduced in last month's new post, has now been finalized and published in the new openage nyan API v0.4.1 specification (see PR#1608). In comparison to the progress we showed last month, there are a few minor changes. Most notably, there are now dedicated, built-in conditions for the XORGate nodes. Some of the other objects were also renamed for extra clarity:

nyan API changes

Support for the new activity system nyan objects has been added to the engine and the converter. In the converter, there are now two default activity graphs built using the new API objects. One is a very simple graph for buildings that just consists of a basic Start -> Idle -> End flow that essentially only makes sure that the building gets properly drawn on screen. However, the activity graph for units is more complex and makee full use of the event-based node transitions. It is an extension of the hardcoded actvity graph that we previously used in examples, with the notable improvement that game entities can now "break out" of a movement action when they receive a new command.

unit graph

Game entities created during modpack conversion will automatically be assigned an Activity ability that references one of the default graphs. Ingame, the end results looks like this:

The current implementation should support most of the simple action flows found in AoE games. We will keep testing and extend the nyan API definition as we add more and more features that utilizing the activity graph.

Did you do a 37C3 lightning talk?

As some of you who are following the prject for longer than a year may know, we usually try to organize a lightning talk at the annual Chaos Communication Congress (see the YouTube recordings of our previous attendences). Unfortunately, we couldn't organize an update on the big stage at the 37C3 this year due to scheduling problems, so there will be no regular annual status report video for 2023. We will try to record an alternative status update in either January or February to make up for that and show off some of the recent developments. Until then, you can find our status update for release 0.5.0 on YouTube which also covers a large portion of the significant improvements we added last year.

What's next?

There are no concrete milestone for 2024 yet, but we are still working on improving our internal demos and adding more gameplay features.

For next month, we will start implementing more complex mechanics such as collision detection and pathfinding to the engine. These will likely take more than a month to be usable, so there will also be updates in-between that add small stuff like configurable hotkeys or a better display of game entity data in the viewport.

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