Mastodon
← Alle berichten
door Casey Jones Labs · 7 min lezen

SkyChart bouwen: hoe een liefdesbrief aan Aerobiz een volwaardige airlinesim werd

devlogskychartbehind-the-scenes
Dit bericht is automatisch uit het Engels vertaald. Lees het origineel
Inhoudsopgave

Er is een game uit 1992 die ons heeft verpest. Aerobiz Supersonic op de SNES had eigenlijk geen recht zo verslavend te zijn als hij was. Slots op luchthavens in Lagos kopen, olie-crises ontwijken, kijken hoe je kleine vliegtuigsprites over een gepixelde wereldbol kropen terwijl je hub voor hub werelddominantie uitstippelde.

Niemand heeft een echte opvolger gemaakt. Dus besloten wij er een te bouwen.

SkyChart: Airline Executive is ons antwoord. Een retromoderne airline-managementsim gebouwd in Godot 4, die 90 jaar luchtvaartgeschiedenis beslaat, van de gouden eeuw van de vliegende boten tot het A380-tijdperk. Vandaag trekken we het gordijn opzij over hoe het allemaal tot stand kwam.


De pitch: “wat als Aerobiz een moderne UI had?”

De kernfantasie is eenvoudig: je bent de CEO van een beginnende luchtvaartmaatschappij, die concurreert met AI-rivalen in vier historische tijdperken (1930 tot 2020). Je kiest routes, koopt toestellen, investeert in steden, beheert diplomatie met wereldregio’s, en probeert niet failliet te gaan wanneer OPEC besluit ieders kwartaal te verpesten.

Maar waar Aerobiz je menu’s en tekst gaf, wilden wij een levende wereldkaart. Grootcirkelvliegpaden, weerradar, dag/nachtcycli, stads-boom-animaties en vliegtuigsprites die in bochten overhellen. Het soort dat je achterover doet leunen in je stoel, denkend: “Ja, dit netwerk heb ik gebouwd.”

De sfeer waar we op uitkwamen: high-tech retro. Neongloeilijnen op een donkere kaart. Zeshoekige HUD-knoppen. Een nieuwsticker die uit een Bloomberg-terminal uit de jaren 90 had kunnen komen. Moderne UX verpakt in die onmiskenbare SNES-charme.

De wereldkaart bij nacht met neonroutelijnen die kriskras de wereldbol overgaan terwijl vliegtuigsprites grootcirkelpaden tussen steden trekken De globale weergave: je luchtvaartnetwerk in één oogopslag. Elke oplichtende lijn is een route. Elke bewegende stip is inkomsten.


150 steden, 33 toestellen, 90 jaar geschiedenis

Laten we het over schaal hebben. SkyChart heeft:

  • 150 steden verdeeld over 7 wereldregio’s (plus Rusland na 1991), elk met echte bevolkingsdata, economische profielen en seizoensgebonden vraagcurves. Tokio stijgt in het kersenbloesemseizoen. Miami bloeit in de winter. Calcutta piekt tijdens Durga Puja.
  • 33 historisch accurate toestellen van de Douglas DC-3 (1936) tot de Boeing 787 Dreamliner. Elk met authentiek bereik, snelheid, capaciteit, bedrijfskosten en een pensioenjaar. Vlieg een DC-3 het jettijdperk in en zie je onderhoudskosten je levend opeten.
  • 60+ historische gebeurtenissen die het speelveld hertekenen. De Grote Depressie drukt de vraag omlaag. WO II bombardeert Londen en Berlijn (letterlijk, je zult die vliegvelden moeten herbouwen). De oliecrisis van 1973 verdubbelt je brandstofkosten van de ene op de andere dag. COVID-19 duikt op in Tijdperk 4 en, nou ja… je weet het nog.
  • 4 speelbare tijdperken, elk met oplopende doelen. Tijdperk 1 vraagt je om te overleven met propellertoestellen en 5 miljoen dollar. Tijdperk 4 wil een imperium van 2 miljard dollar dat alle zeven regio’s omspant.

Elk tijdperk voelt als een andere game. De strategische rekensom van een netwerk met vliegende boten in de jaren 30 is niets als de meedogenloze hub-and-spoke-oorlogvoering van de jaren 90.

Tijdperk-selectiescherm met vier historische tijdperken, hun doelen en startvoorwaarden Kies je tijdperk: elk ervan is een andere game met andere toestellen, gebeurtenissen en overwinningsvoorwaarden.

Een pop-up van een historische gebeurtenis die de COVID-19-pandemie aankondigt Geschiedenis herhaalt zich niet, maar ze jaagt wel je brandstofkosten omhoog.


De AI die echt terugspeelt

Eén ding waarmee we weigerden te leveren, was hersendode AI. De rivaliserende luchtvaartmaatschappijen in SkyChart breiden niet zomaar willekeurig uit. Ze hebben thuisregio’s, gewogen routeselectie op basis van bevolkings- en economische data, kwartaalprijsaanpassingen, vlootupgrades wanneer toestellen met pensioen gaan, en hubinvesteringsstrategieën.

Ze duiken onder je prijzen op betwiste routes. Ze kopen luchthavenslots op in steden die jij in het oog had. Ze leasen zelfs toestellen wanneer ze krap bij kas zitten, precies zoals een echte budgetmaatschappij dat zou doen.

En in Tijdperk 4, als je een imperium hebt gebouwd waar ze niet meer tegenop kunnen? Dan kunnen ze wel eens een overnamedoelwit worden. Eén vijandige overname per tijdperk. Hun routes, slots en hubs, allemaal van jou. Tegen een prijs.

Het paneel Competitieve Intelligence toont de uitbreiding van rivalen in alle regio's Ken je vijand: het Intel-paneel volgt elke beweging van elke rivaal in alle zeven regio’s.


De cockpit: UI die niet tegenwerkt

Als je ooit een managementsim hebt gespeeld waar de UI de echte eindbaas was, ken je de pijn. We hebben een onredelijke hoeveelheid tijd besteed om ervoor te zorgen dat de interface van SkyChart iets is wat je wilt gebruiken.

Elk paneel is een sleepbaar, herschaalbaar venster. Route Manager, Fleet Overview, Strategic Advisor, City Intelligence, Competitive Intel, Music Player. Sleep ze waar je ze wilt. Pas hun grootte aan. De game onthoudt je indeling tussen sessies.

De Strategic Advisor is je AI-copiloot. Hij scant elk mogelijk stedenpaar ter wereld (dat zijn 11.175 combinaties), rangschikt ze op verwachte winst en biedt de beste kansen op een zilveren dienblad aan. Hij draait op een achtergrond-thread-pool, tot 8 workerthreads, zodat de game nooit vastloopt, zelfs niet bij het doorrekenen van duizenden routes.

Volledige controllerondersteuning was een late toevoeging die een passieproject werd. Xbox-, PlayStation- en Switch-controllers werken allemaal van nature. Een virtuele cursor laat je steden op de kaart selecteren met de rechter stick. Een radiaalmenu (houd LB ingedrukt) geeft je directe toegang tot elk paneel. Elk venster reageert op B-om-te-sluiten. We hebben zelfs een grafische bedieningsgids gebouwd met toetscap- en knopglyph-widgets.

Oh, en er is een ingebouwde muziekspeler. Drie bronnen: de tijdperkgebonden soundtrack van de game (44 nummers die reiken van de jazzperiode tot moderne elektronica), je lokale muziekbibliotheek, of Spotify-integratie via OAuth. Want wat is het runnen van een luchtvaartmaatschappij zonder een goede afspeellijst?

Meerdere sleepbare vensters open met Route Manager, stadspaneel en Strategic Advisor op de kaart Jouw cockpit, jouw indeling. Elk paneel is sleepbaar, herschaalbaar en onthoudt waar je het hebt achtergelaten.

Het Strategic Advisor-paneel met aanbevolen routes gerangschikt op verwachte winst De Strategic Advisor verwerkt 11.175 stedenparen zodat jij dat niet hoeft.

Controllerinvoergids met alle gamepad-knoppen Volledige controllerondersteuning: elke knop toegewezen voor luchtvaartbeheer vanaf de bank.


Onder de motorkap: een GDScript-liefdesverhaal

SkyChart is volledig gebouwd in Godot 4 met GDScript 2.0. Geen C#, geen C++-modules. Alles, van de route-economie-engine tot de tilemap-renderer, is pure GDScript.

Een paar hoogtepunten aan de engineeringkant:

Overal threading. Maandelijkse economische berekeningen, route-aanbevelingen en AI-uitbreiding draaien allemaal op workerthreads. De game blijft zijdezacht, zelfs bij het verwerken van 2.000+ routes over vier rivaliserende maatschappijen.

Een echte window manager. WindowManager is een autoload-singleton die focus-naar-voren-layering afhandelt (klik op een venster, en hij komt bovenop), positie/grootte-persistentie naar schijf, en schermadaptieve sizing. Drie niveaus: Normaal (gameplaypanelen), Modaal (instellingen, opslaan/laden) en HUD (altijd bovenop).

OSM-achtige kaarttegels. Zoom in op een regio en gedetailleerde kaarttegels laden dynamisch. Sprite-pooling, LRU-texture-cache, schijfcaching en online-ophaalacties. Drie stijlen: Retro Dark (standaard), Satellite en Clean Vector.

Grootcirkelpaden met weersvermijding. Vluchtpaden volgen sferische interpolatie voor geografische nauwkeurigheid, en routen dynamisch om stormsystemen op de kaart heen. Vliegtuigsprites hellen in bochten en werpen slagschaduwen. Het is veel wiskunde voor cosmetica, maar het zorgt ervoor dat de wereld echt aanvoelt.

Grootcirkelroutering in actie: toestellen volgen realistische gekromde paden over de wereldbol Grootcirkelroutering in actie: toestellen volgen realistische gekromde paden en ontwijken weersystemen.

De kaart ingezoomd op een regio met de Retro Dark-tegelstijl met neondetails Zoom in en OSM-achtige tegels laden onderweg. Drie kaartstijlen om uit te kiezen.


Het cijferspel: route-economie

In het hart van SkyChart zit een economisch model waar we echt trots op zijn. Elke route berekent maandelijkse winst via een pijplijn die rekening houdt met:

  • Basisvraag (stadsbevolking × economische multiplicator)
  • Seizoensvariatie (12 maandelijkse multiplicatoren per stad)
  • Investeringsbonussen (hotels, golfbanen, concertzalen, themaparken)
  • Regionale diplomatie (betere relaties = meer vraag)
  • Gebeurtenisaanpassingen (oorlogen, oliecrises, pandemieën)
  • Reputatie (veiligheidsstaat en klantenservice beïnvloeden vraag wereldwijd)
  • Concurrentie (vraag splitst op aantrekkingsscore, prijsstelling, loyaliteit, hubaanwezigheid)
  • Ouderdom van het toestel (toestellen voorbij hun pensioenjaar kosten +40% om te exploiteren en verliezen 15% vraag)
  • Brandstofprijzen (OPEC-gebeurtenissen kunnen je variabele kosten van de ene op de andere dag verdubbelen)

Het resultaat is een systeem waarin geen twee routes hetzelfde spelen, en het optimale netwerk in 1935 lijkt niet op het optimale netwerk in 2005.

Het kwartaalfinancieel rapport toont inkomsten, uitgaven en een doorlopende winstgrafiek Elk kwartaal vertellen de cijfers het verhaal. Die dip in Q3? OPEC gebeurde.

Routeprestatiedashboard met routes gerangschikt op winst, met trenddata Route Performance: elke route gerangschikt op winst met trendsparklines. Groen is goed. Rood betekent dat het tijd is voor harde beslissingen.


Wat komt er

We zitten nu op v0.2.17, wat in de versiebenaming van SkyChart betekent dat we diep in de polijstfase van Fase 16+ zitten. De kerngame is compleet en erg speelbaar. Wat ligt er op de startbaan:

  • UI-geluidseffecten en omgevingsgeluidsschap: knopklikjes, paneelswooshes, luchthavengeluiden
  • Eerste-keer-tutorial: een begeleide rondleiding in 12 hoofdstukken zodat nieuwe spelers het niet hoeven te leren door te crashen (financieel, niet letterlijk… hoewel ook letterlijk)
  • Voorbereiding Steam-release: winkelpagina, integratie van prestaties, cloudopslag

We bouwen SkyChart met de filosofie dat managementsims dezelfde UI-liefde verdienen als actiegames krijgen. Elke tooltip, elke animatie, elke quality-of-life-functie bestaat omdat we ons afvroegen: “Wat zou ervoor zorgen dat wij niet wilden alt-tabben?”


Volg de reis

SkyChart wordt ontwikkeld door Casey Jones Labs, een kleine studio met een grote liefde voor de games die ons gevormd hebben. Als je bent opgegroeid met het debat of je een route naar Anchorage moest openen of in een themapark op Honolulu moest investeren, dan is deze game voor jou.

Blijf volgen voor meer dev blogs, en houd je klaptafeltjes rechtop.

De Casey Jones Labs-crew

Het SkyChart-hoofdmenu met geanimeerde toestellen die de achtergrondkaart oversteken SkyChart: Airline Executive, binnenkort op Steam voor Windows, macOS en Linux. Gebouwd met Godot 4.