DevLog 54: Crafting an Aircraft & Vehicle Serialization

DevLog 54: Crafting an Aircraft & Vehicle Serialization
January 17, 2017 Airport CEO

It’s January the 17th 2017 and time for DevLog 54. This time its going to be a little shorter than usual as we’re swamped with various activities such as… well. Code.

Work is progressing well and we have more or less moved on from repairing stuff and started building or implementing new fixes again. It’s always difficult to tell when that hurdle is really crossed but as of this week it feels like we are creating new stuff and are no longer repairing old and broken parts. This weekend the team (lol, both of us) will meet up for some overall project planning. This includes planning for the shooting of the upcoming video as well as topics on future release management and related areas. We’ll disclose our findings when we’ve discovered them.

Crafting an Aircraft

You voted for the BAe-146 to be the next aircraft in Airport CEO and we got to work straight away with the new model. You can follow the progress in great detail in the forum thread and so far we have created the outline and started painting the engines and wing. Throughout this week we will update you on the rest of the process on Twitter and on the forum. Soon these engines will be spinning and ready to take off from a future airport!

As you can see, we are committed to details. Since we nowadays have a pretty solid aircraft implementation system (everything related to simulating the aircraft in terms of variables and the livery system), the main portion of the work lies in the artwork.

Vehicle Serialization

Hurra! The last serialization hurdle has now been dealt with. We are finally firing on all cylinders in terms of saving and loading and to achieve this it has meant that a lot of time this week has gone into rewriting major parts of the vehicle controlling code. In excess of actually enabling functioning serialization and deserialization, countless and countless lines of code have been cut as we’ve taken some important design decisions which have allowed us generalize and abstract a multitude of code sets! Great stuff that’ll allow for a much faster implementation of, for example, various service vehicles in the future.

As a part of fixing all the above mentioned things, vehicles are now also smarter. They previously lacked basic reasoning skills that for example, if a fuel depot wasn’t able to distribute fuel, would keep them from doing anything else. This is now solved and while we will continuously improve the AI of simulated agents, there at least now no longer any risk for decision deadlocks.

What’s more to do on this area is of course testing, countless hours of testing to make sure that whatever bug slips by us ultimately don’t crash the game or disrupt and deadlock any processes. However, it does make a large difference when this task is in the testing column as opposed to in the doing column.


This Week’s Changelog

New Grid System:

  • Added a priority system to enable determination of node type based on hierarchy, will resolve issues with construction simulation build completion grid updates (sorry, horrible phrasing but can’t think of any other)

Building System:

  • Optimized floor building system to reduce the number or instantiations
  • Made improvements to a number of different items

Simulation: 

  • Converted all transportation vehicle and service vehicle controllers to serializable versions
  • Improved vehicle AI and decision making
  • Abstracted a lot of vehicle controlling logic, unified its base and removed a few hundred lines of code
  • Resolved an employee deboarding issue
  • Resolved an issue with contractors building already built and fixed objects
  • Resolved an issue causing contractors to build prebuilt road
  • Fixed a connectivity issue between narrow runway and small taxiway causing aircrafts not being able to vacate and continue simulation

UI and Sprites:

  • Started artwork crafting of a new aircraft type, wings and engines have been painted
  • Fixed a small issue where deserialized vehicles wouldn’t respond to clicking
  • Resolved a flight planner panel load issue on deserialized containers as a forgotten serialization effort cause a number of out of bounds exceptions

That’s it for this week. Don’t forget to check out the progress on the new aircraft from time to time! See ya’ll next time and… as always, fly safe!