Dev Blog 57: A* Improvements, Construction Improvements & Environment Improvements

February 7, 2017

Oh, hi! Didn’t see you there. Welcome. Welcome to the 57th Airport CEO development blog post. Great to have you with us, as we shall embark on this story of weekly improvements and advancements. Sorry for the long load, but there’s a lot of .gifs incoming. Why wait? There’s much to say so let’s get into it.

Pathfinding Improvements

As part of heavily testing our basic systems in preparation for the gameplay videos, we realized that something was not right with our A* pathfinding algorithms. We traced the error to some experimental code used to slightly randomize the paths. It turns out that the code was unforgiving, and we made a couple of a adjustments that made path calculation about 1000 times faster (lol). While fixing it we also did some improvements such as resetting the path finding algorithm in a way that do not create and any garbage, which is common thing that can create spikes in a rendered code base (to learn more, read more about garbage collection in .NET).

While this was a massive improvement, we’re still experimenting with a lot of aspects to make it even faster. Caching paths, pre-processed paths, two or three tier node systems and ultimately multithreading to cope with huge amounts of passengers.

Construction Improvements

We’ve done a lot of work on the construction system and have squashed numerous bugs regarding stuff like error handling. We’ve coded answers to questions such as “what happens if an object is deleted when its being constructed?”, “what happens if a contractor can’t reach an object?” and “what happens if a contractor boxes them selves in during construction?”. There’s sooo many variables to consider when simulating these kinds of environments and through qualitative testing we’ll hopefully be able to code the answers to everything.

We’ve also implemented a series of variables that make the construction simulation more realistic. It’s gonna get a little techie here so bare with us, otherwise just keep scrolling. For example, up until now an entire runway was constructed in an instant by one single contractor. This is no longer the case, as structures like vehicle depots, fuel depots and runways require a lot of man hours to complete. In order to construct something, a certain amount of energy (an arbitrary concept) has to be put into it. For example, a fuel depot requires 2500 energy while a small runway requires 10000. For each construction iteration a contractor performs, a certain amount of energy is put into the structure which advances its overall completion state. Depending on how many contractors that are contributing to an object and how big it is, the construction time will vary. This is on par with most games within this genre and we plan to expand this energy based work system into everyday airport chores like cleaning and maintaining aircraft. The amount of energy for each iteration will be a result of the employee’s skill level, which means that the better employees you hire the faster stuff will get done.

Environment Improvements

We’ve implemented trees! They did exist a long time ago but have since then been forgotten, but are now brought back to life as we’ve improved environment and terrain aspects of the game. Trees can be planted just like any structure, and as we go down this path we hope to implement several different types of trees and shadows, as well as bushes, rocks, dirt patches and so forth. In ACEO 1.0, we want to be able to fully simulate a biome that is realistic to the location of your airport.

We’ve also improved the shadow system. Since the player airport has assigned coordinates and since we simulate time, the shadow movements (the direction in which they are casted) is now realistically simulated according to time of day and thus according to the position of the sun. This might sound overkill, but is actually the easiest way to do it. Throughout the day, shadows will now rotate with the sun and also become more or less visible depending on the sun light (no more night shadows unless we decide to simulate the moon).

Look closely and you will see the shadows slowly moving and fading away. Game speed is turned up to times three on both these .gifs.

This Week’s Changelog

Grid System:
  • Made the algorithm for path finding 1000 times more efficient
  • Solved numerous bugs related to path finding and GC reduction
  • Reduced legacy code and made preparations for further improvements
Building System:
  • Implemented support for contractor collaboration
  • Implemented the energy construction system
  • Implemented trees and a better algorithm for generating trees and holts
  • Overhauled the overlay system (the sprite that highlights the object)
  • Wrote more proofing code for error handling
  • Enabled deconstruction simulation (resolved a critical bug)
  • Resolved an issue with vehicles causing GC spikes and made their movement a lot smoother
UI and Sprites:
  • Redesigned the top panel status bar
  • Redesigned parts of the flight schedule and weather panel
  • Finalized the button and interaction design for the management panel

Lastly, if you’re wondering why we haven’t sent you any newsletters in a while, it’s because we’re using a plugin where the free limit is at 2000 and we’re currently at 2100+ subscribes. Sadly this means that no one gets any messages… if in the coming future we were to be able to collect some funds in order to upgrade our account you can expect future send-outs.

That’s it for this week. And as you know, we’ve got more brewing… be on the lookout! Might drop down at any time. This week or the next. You know what we mean. Fly safe!

Related blog posts

Dev Blog 141: Stabilizing one and developing the other

November 28, 2019

Good evening airport CEO and welcome to yet another development blog post. This is the 141st in order and today we’ll put most aspects of...

Read more

Dev Blog 140: Alpha 33 and The Big Bird Update released! ... and the pillars of Alpha 34

November 12, 2019

Hi there, airport CEO! Welcome back to another dev blog and perhaps a little break from Alpha 33 and the big bird update which was deployed on the default branch just this...

Read more


Enter your email to get the latest updates and news.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.