SkyChess

The airline business simulation game

Image for blog post SkyChess

The project

SkyChess is an airline business simulation game played in a ‘live’ environment. The game involves multiple teams running competing airlines, scheduling flights, making investments and trying to gain an advantage in a rapidly changing market.

The game typically involves three teams each representing a fictional airline, with each team made up of around seven participants. Each team has to make key decisions in several areas including:

  • Marketing strategy;
  • Fleet and capacity development;
  • Scheduling;
  • Pricing; and
  • Route selection.

The game is developed over a period of 8 quarters (played over 1 - 3 days), with teams providing inputs in each strategic area each quarter. The inputs are processed by the software, and financial and KPI outputs provided to teams to provide new information on which to base their next decisions. To be successful, teams must think on their feet, managing their cash effectively, seeking out ways to reduce costs, negotiating with suppliers and anticipating the likely actions of their competitor teams!

The original game was built on an early Yii framework install with a lot of the logic handled in JavaScript on the front end. The software worked but was buggy and incredibly difficult to debug and maintain; user inputs and interaction with the system was limited, with some inputs being submitted in paper form to the Gamemaster. The owners approached us, wanting to make the software more reliable, robust and interactive, and also with a wish list of functionality and sophistication they wanted to add to the game. 

The solution

After consultation it was decided that a re-write of the existing code was the most cost-effective way to handle the new requirements, and gave the opportunity to work from the ground-up to iron out other areas that in hindsight, would have been coded differently.

We created a new game 'engine' in PHP to run all of the game's highly complex mathematics. The engine is separate from the framework (Laravel) that runs the gameplay side. Both the game engine and input side were built using TDD. The interfaces are all built in VueJS with lots of new, interactive features. Functionality and features include but are not limited to:

  • a flight scheduler;
  • a live departure board;
  • peak pricing and business class modules;
  • passenger demand simulation with elasticity and spill modelling;
  • fuel price hedging;
  • connecting demand module;
  • cargo costs and revenues;
  • financial statements including Cash Flow Statement;
  • aircraft and asset purchase and leasing;
  • IFRS16 compliant lease treatment; and
  • universally modifiable inputs at gamemaster level.

The new system was introduced in late 2018 and is now fully operational being utilised at companies and airlines all around the world. We continue to work with the owners to add further functionality upgrades and features.