DevLog 99: Alpha 24.3 Deployed on Experimental, Performance and New Structures

DevLog 99: Alpha 24.3 Deployed on Experimental, Performance and New Structures
January 15, 2018 Airport CEO

Hello airport CEO and welcome to the 99th edition of the Airport CEO development blog! Another week has passed and this coming work week is actually the first week in ACEO history where the entire development team (well… the two of us) will work full time with great equipment in a dedicated space. We’re already now noticing what a difference this makes to the development performance process in terms of efficiency improvements so without further ado let’s just jump into it!

Alpha 24.3 Deployed on the Experimental Branch

On Friday we, as promised, deployed Alpha 24.3 on the experimental branch containing a major overhaul to the airline contract system as well as a series of important performance fixes. The reception has been great, and we have actually not seen a single negative comment in regard to the mechanics of the new system. We had a few issues to iron out, so hot fixes were deployed over the weekend as well as today. We’re currently on Alpha 24.3-2 for the experimental branch and are continuing to watch your feedback, solving critical bugs and adjusting simulation variables.

24.3 also took care of a major performance leak which was, with the aid of the community, finally identified. The leak, which was caused by sloppy legacy code, caused the game engine to clog up over time due to an exponential and uncontrolled instantiation of enumeration threads, which over the course of 15 to 20 game play minutes resulted in a very noticeable FPS reduction. 24.3 also included an initial consolidation of agent transform children which should bring a slight relief to the simulation of person movement.

The deployment of 24.3 marks an endpoint for the new airline contract system epic and while we will continue to monitor feedback we will now shift our focus to the user interface and performance.

Improving Performance

It’s now time to really dig into this subject area and what kind of plans we have for improving the overall performance of the game engine and out associated code. Since we now have a dedicated office and are, as mentioned, finally fully operational we can really devote time to work on not only the easy performance issues  but actually dig down deep in the code and possibly make quite fundamental changes. The main reason for why we’ve held off on this area a bit is due to its complex nature and the fact that working from home on mid range equipment does not offer the best prerequisites for really getting down and dirty with performance aspects in regards to setting up lab environments and running proper, measurable, tests. We already know that our multi-threaded path finding algorithm has a limit on how fast it can calculate paths (which is actually really fast at this point) but the sheer size of our path finding graph is forcing it to calculate over thousands of nodes each run. This becomes increasingly apparent when you unlock the full map and build a huge terminal. Once the passengers start to flow, the system becomes overloaded and to cope with the increased amount of data the system has to crunch there is an apparent performance loss. This, on top of the major (but now solved) performance leak can force the game to grind to a halt. Since the performance leak patching now means that performance reduction is solely related to passenger flow and overall simulation stress our main goal now is to set up a lab world in which we can try different techniques and designs to find a technical setup that supports the current overall premise of our system while still delivering noticeably better performance. This is a grand project, which is why its contained within its own epic, but we will make sure to let you know the progress over the next devlogs. We will most likely deploy the current performance fixes on the experimental branch on the default branch before the major performance epic draws to a close, just so you know.

We are also considering reducing the world size and enabling unlocking of the tiles from the game, instead of the current script hack. Don’t worry, we want to keep the current size as an option if you create a new game and of course your saves will have the old size stored. The default start size would be reduced but should still be large enough so that the fully unlocked world would fit a considerable large airport, with the benefit of performance improvements.

Lastly, we have on Alpha 24.3 also introduced a new slider in the game settings where you can set the passenger ratio per flight. This will allow you to slightly reduce the amount of passengers per flight from the current realistic values to a lower setting so that players that currently have performance issues can handle more flights with less total passenger count. This is of course considered as a temporary solution and is absolutely not part of the performance end goal, as our ambition is still to simulate realistic values at a large scale airport but it does bring temporary relief to players who want to handle large amounts of flight with a lowered performance impact.

New Structure Pack

But focus is not only on major improvement efforts, we still have some art and visual legacy to deal with, especially in regards to the outer structure. This week, this Wednesday to be exact, we will devote a few hours of development to improve all outside structures. Our graphics designer Jettuh has continued the ACEO visuals overhaul journey and has come up with a few great alterations to replace the current appearance. This is just the first round of existing (and new) structures we plan to replace and more are to come in the future. As per usual, you will have to wait for the next experimental deployment later this week to see the new structures in game but we’d thought we’d leave a small teaser.

In Other News…

We’re also dealing with a lot of smaller tickets as of now. As mentioned in the earlier devlog, we’ve started planning the server move which for now should not impact any of our services but might invoke some unexpected downtime. If such occurs, you can always head over to our Twitter account for the latest service status announcements.

To those who won the latest airline design contest we promised a special price! We’ve promised to start working on this as we got relocated to our office and as of this week we have. When we’re done with it and it has made its way to the winners, we’ll let you know here what it is.

Also! We’re going to GDC! GDC stands for Game Developer Conference and is a, well… a game developer conference in San Francisco. We’re have a lot to learn about game development and the industry itself and thought that it’d be an interesting and educational experience to head over there. If you’re also going and want to chat ACEO or anything else, let us know!

So that’s it for this week, the next devlog will feature the 100th devlog so we really need to come up with something special for that. In the meantime, we have a super busy schedule this week with a lot of stuff so… fly safe and see you throughout the week!