Hello there, future airport CEO and welcome to the 48th edition of the Airport CEO development blog; we’re one day late but hopefully you’ll forgive us! On Sunday we celebrated the first advent, or “första advent”, in Sweden which goes to show that the holiday season is not far away. Hopefully we’ll have some presents in store for you…
Fredrik is almost finished moving so soon he’ll climb aboard the ACEO flight again and continue development, great news and he wanted to let you know that his fingers are reeeally itchy!
Simulating Realistic Flights
As you might have know, our development process is super agile. Once week we’ll end up saying “OK, so this week we’ll finish off the baggage trains” but end up doing something completely else… this is what happened this week. We couldn’t stand the horrible low-effort baggage tag panel presented in last week’s devlog and thus Olof set out to fix it.
— AirportCEO (@AirportCEO) November 24, 2016
However, during the testing of the panel we realized that there was simply not enough data around to fully test all components of the baggage tag which prompted a sudden project to implement a system for simulating realistic flights and travel.
We found an open database with over 40k airport entries which have been siphoned into the game, together with a database of continents, countries and their respective ISO codes. These entires have been mapped against each other to create a powerful object based data collections of airports all over the world.
Naturally, a dataset of 40k airports will consist of irrelevant “airports” such as small air fields, strips, military bases and stuff like that which is why we have set up a number of initial filters to get the number of instances down and as a result of this we have around 10k airports to play with (this number will likely go down as we develop the filtering algorithms). Naturally, we can also filter airports based on the size or services of your airport so that you initially might recieve routes from small airfields.
This essentially means that we can now simulate realistic flights between existing airports, additionally a passenger can now also have several flights as a part of their personal route which means that we’ve effectively implemented transit passengers (and transit baggage). In order to make sense of the generated routes we’ve implemented aircraft fleet generation dependent on the size and class of the airline. The generated routes are thus also dependent on which type of aircraft the route is generated for, meaning that small aircrafts will only support routes that are within the aircraft type’s maximum range (we’ve implemented each aircraft’s real world range and calculate the distance using coordinates).
As this system develops, airlines will get more variables so that the route generator can compile even more realistic flights. For example, each airline will have a home country (and therefore a home continent which could include membership in, for example, EU) and thus you’re more likely to have several flights from a specific country or continent by a specific airline.
The Flight Planner
As a a result of the newly installed travel system it became obvious that this was the time to scrap the old temporary flight planner and implement something that supports the complexity of operating an airport.
The flight planner is a panel that allows you to schedule flights that are part of an accepted airline contract. In a real world airport, the CEO would of course never have anything to do with the scheduling of flights and this is a bit tricky as we don’t want ACEO to become “Airport Operations Simulator 2017”. We’ve reviewed several real world software applications used for scheduling flight operations and have tried to come up with something that is easy to use while still delivering enough functionality to properly schedule flights.
The panel is one of the more complex parts of the ACEO UI is not finished, but it is well underway and we’d like to show you a brief preview of what’s compiled so far…
As a result of all the new data we have to play will as well as a result of a request from the community, we have implemented a mapping system in order to highlight routes. This will be implemented on aircraft panels as well as in contracts in order for CEO’s to get a better understanding of the routes connecting the airport with the world. The map is also very much a work in progress and we might switch API and or enhance its functionality over time.
About the video…
The latest video we uploaded is very, very outdated and we have a lot of new stuff to show you. We’ve planned to execute and show a pre-alpha full length end-to-end gameplay video of about 10 minutes but due to the fact that we want to delivery something that looks really good as well as Fredrik’s moving engagements, we have not had time to do this. As soon as Fredrik is back on board we will resume our efforts in regards this matter and we hope to release it before the year is over.
This Week’s Changelog
- Implemented a database containing data of roughly 50000 airports worldwide.
- Implemented a first version of a sorting function so that the smallest and most irrelevant airports get singled out.
- Implemented a complete ecosystem for keeping track of the airport’s closest cities, which country they belong to and ultimately its continent.
- Implemented an algorithm that generates realistic flights between airports depending on the range of the aircraft model.
- Implemented an algorithm for generating aircraft fleets corresponding the airline’s business size. For example: Smaller airlines fly smaller aircrafts.
- Implemented a ticket class replacing old string variables, the ticket includes information about the route, the departure time and the flight number. Passengers can have several tickets, as well as bags, which means that we’ve effectively implemented support for transit passengers.
- Implemented a new panel for bags, the baggage tag! It lists all destinations for the bag, as well as some unrealistic information in regards to its owner, its contents and its current status.
- Scrapped the old flight planner and implemented the foundation of the new flight planner.
- Implemented a flight information display for flight slots.
- Created a data siphoning system for loading major amounts of data into the game.
- Implemented a map controller for generating markers on route destinations and fetching static map images via Google APIs.
That’s it for this week folks! Work continues on the flight planner and once we’re able to fully allocate flights again, the remainder of the cycle will receive our attention. Fly safe!