Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Wed Sep 06, 2023 2:09 am Post subject:
Openage Development News: August 2023
Subject description: Render or surrender, for the masses!
Greetings, everyone! The team from Openage has presented their monthly progress report recently. For those unaware of what is being written here, Openage is a free cross-platform real-time strategy game engine that provides the mechanics of Age of Empires, replicating its look and feel, making it more moddable, and allowing multiplayer games with more than eight players. Here are the official words about it:
Quote:
Welcome to our monthly Openage update. As we wrap up for release v0.5.0, we can talk about a few quality-of-life and speed improvements that happened over the last weeks.
Tales of Renderer Troubles
In last month's update, we announced the implementation of a stress test for the renderer. This has now been added in the form of a simple render demo that incrementally adds renderable objects to the render loop and logs the current FPS. It's very bare-bones, but it gets the job done:
However, while playing around with the first few stress test runs, we noticed that the renderer's performance was extremely bad (not to say abysmal). It barely managed to handle 400 objects with 30 FPS, and there were massive slowdowns after only 100 rendered objects. Keep in mind that the objects in question are not just units. They are everything that needs to be displayed in the game world: buildings, trees, birds, cacti... If 400 objects were the limit, we would run out of frames pretty quickly in a real game.
So, we set out to investigate and fix the bottleneck. It turns out that there was a call to the Python API in the objects' frame update. For every frame, the renderer would check its asset cache to see if the texture required for a render object was already loaded from the disk. The cache lookup would resolve the texture path, initiating a Python call and introducing a massive overhead. We have since removed the calls to Python, and the stress test now easily manages >3500 objects at 30 FPS - almost 9x as much as before.
New Startup Flow
In the new release, we want to make the initial startup more user-friendly so that it's easier to get the engine running. Well, maybe you should imagine large quotation marks around "user-friendly" because the engine is very much not ready to be used by the general public. However, we wanted to make sure that at least the people who get as far as successfully compiling everything are not greeted with crashes.
To accomplish this, there is a new CLI startup flow that guides users through the initial setup phase and the conversion process. Common installation folders for games can be automatically searched, so it should be easier to create usable mod packs no matter which AoE game or release you have.
Even if no installation is available, the converter is now able to download the AoC Trial Version as a fallback. We also made sure that the engine works with all game releases.
What's next?
After release v0.5.0 is done, we will do a brief planning session to set the milestones for the next
months. It's possible that we will prioritize removing legacy code in the next minor release
and take a step back from adding new features until that's done.
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:
You cannot post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum