Good afternoon airport CEO!

And welcome to the 127th dev blog! A few days late as per usual… but also as per usual, we have a lot of interesting progress to dig into as a result of the two last weeks of development, so much progress that the progress itself is what’s causing this delay, the more progress we make the more time it takes to review it; how meta! As we’re writing this, Olof and Alexander are 30000 feet up in the air on an Embraer 190 on their way to Reboot Blue in Dubrovnik, a small game development conference, for a few days of learning and insights. Meanwhile, Fredrik will stay home in Malmö and focus on multiple terminal development (yes… we’ll get into that later) and remain available to his newly expanded family. But don’t worry, the whole team is equipped with laptops and we’re far too keen on development to keep our hands away. But that’s enough chitchat for now so let’s just get into it.

‍

Continued localization

The localization project, headed by Alexander, is nearing imminent completion of its first leg: The assembly of the entire game’s text into a large .json file and the completed implementation of the per-language string swapping system. As we detailed in the previous dev blog about localization, we’ve had to deal a lot with legacy since all of the game’s text was hard-coded into the assembly files. This has now been rectified and thanks to some clever engineering on Alexander’s part we’ve been able to already at this stage run a lot of localization tests with multiple languages to see how well system handles it and how well the UI performs. Check out these below examples for an international Airport CEO experience.

‍

ACEO UI in featurin Spanish translation

‍

ACEO UI featuring German translation

‍

ACEO UI featuring simplified Chinese translation

Please note that these translations are performed by Google Translate, highly experimental and not in any way official or representative of the product.

Looks weird, huh? It does to us, much like everything else with Airport CEO we never expected the game to ever be translated and after years of looking at an English UI this is a very different look. So, the assembly of the source file for all the game’s text and the string swapping system was as mentioned the first leg. The second part involves the actual translation of that large master file, and also a general look through of the UI to make sure that text is properly resized to fit words in new languages that are longer than their English counterpart. We’ve decided to implement the new languages in separate steps to see how we most efficiently can align our work with the translation agency’s workflow. The first language we’ll support will be German since it’s a language we as developers are fairly acquainted with while we at the same time have a large German fan base who not only want to play the game in their native language but also can help us find language related bugs.

If you’re a German native who’d like to test the localization feature on the internal branch, let us know either via a direct message on the Forum or send us a message here.

We expect localization to make it out on the experimental branch in a release not too distant, most likely packed together with a larger feature release such as the new turnaround services or multiple floors, and as always, you’ll be the first to know.

‍

Continued catering

A busy catering depot at night

One of two large feature request that have been voted on by the community which we’re currently working on is the implementation of three new turnaround services, catering, de-icing and aircraft cleaning. We’ve decided to tackle the most encompassing one first, catering, and have made great progress over the last two weeks. As can be seen on the public Trello board, the catering epic consist of multiple issues that have to be dealt with before internal testing commences and as can also be seen most of them are completed. All assets required for the turnaround simulation are in, including a new catering truck and associated animations, a large catering depot with various beautiful detailing and full catering meal production simulation as well as initial test catering businesses and everything that’s related to the business system for generating those companies.

Let’s jump into how the system will work from start to finish. The catering depot is a new, very large, structure that act as a goods transit and production hub between delivery trucks and delivered foods and catering trucks and produced meals. You sign a contract with a catering food provider just like you would with an airline fuel supplier and the provider immediately starts restocking your placed catering depots with food. Once a catering depot has food delivered to it, it will start producing meals. When an aircraft land and if they request catering services (granted that it is available), a certain amount of meals will be ordered for that flight triggering a catering truck job task. An available catering truck will then pick up on that job task, run to the catering depot for resupply and then provide the flight in question with the ordered meals. The catering depot panel offers some insight into the current state of the depot, and also allows for setting that depot’s production pace. The lower the pace, the lower the operating cost, and vice versa.

We’re currently running a few final tests and are making some last minute adjustments before deploying the catering turnaround service to the internal branch for initial testing.

‍

Continued multiple floors and multiple terminals

Yes, you read that correctly. Work on multiple floors have been progressing well and the first version is currently being tested on the internal branch. The grid and building system is completed and have been thoroughly tested with only a few minor visual bugs remaining, which means that development of this feature is currently ahead of schedule. However... last week we had a tech discussion session where we started to plan the adaptation of the person path-finding algorithm and quickly realized several limitations and logical issues in relation to simply implementing it on-top of the current version of the multiple floor build.

On that day we started discussing and outlining the adaptations to the passenger path-finding algorithm required for passengers to navigate correctly through multiple floors with even the most absurd and complex constructions (which we know and encourage people will build) and discovered that the only way to properly execute this is to also implement support for multiple terminals. It essentially has to do with the fact that we need the outlining of terminals and areas in order to make sure that each area built in the game is unique and that we can guarantee that a passenger knows how to get from point A to point B and that both those points are unique, and reachable through a subset of other areas. All in all, it will be a brand new system for how persons verify their paths before they initiate them and we will not only be able to easily support multiple floor path-finding with this solution but also much easier make sure that persons never attempt to calculate a path to an area they simply cannot access. It is also best to do this now rather than later since we any way have to make large adjustments to grid, nodes, building and path-finding. Work on the multiple floor aspect of this feature has already progressed through the week and we can at this stage perform basic calculations across floors, although there is much left to do.

On the one hand, this of course means extended development time for this feature as it now sort of doubled in size, and while we have no estimates for when the first multiple terminal version can be tested we’ve already as mentioned branched off and started development as this will have Fredrik’s priority throughout the week and into the next.

More updates will come as we near the test stage for the multiple-floor-multiple-terminal-path-finding-adjusted algorithm!



‍

An editor overview of a single terminal as recognized by the system

‍

An editor overview of multiple terminals as recognized by the system

‍

In other news

Progress by Steve on the most recent aircraft vote winner

… we’re as mentioned on our way to Reboot Blue in Dubrovnik. Drop us a note if you want to catch up, and we’ll make sure to update you on the entire event through daily story posts via our Instagram!

… we’re running a massive aircraft vote! Steve (Rubble), our aircraft factory foreman, wanted to run a vote like we’ve never ran one before, this time with multiple aircraft choices from different weight classes and manufacturers, with hidden results and two votes per user. The poll will close on within just a few days and without even us, the developers, knowing what the results will be it for sure will result in something interesting. Check out the vote here!

… believe it or now, but development on large aircraft is also progressing. While it may not have our full attention as of now we’re making sure to keep ourselves busy with the implementation of large aircraft assets such as large stands, the large aircraft completed by Steve and development of surrounding assets such as a large push-back truck.

… we’ll be deploying a minor experimental release this week with a few minor fixes, ultimately destined for the default branch. It mainly contains a few very minor fixes which will be addressed in the change logs posted.

‍

So that's it for today, now we really need to get to sleep and rest up for a long and interesting day at tomorrow's conference!

‍

Fly safe!

‍