Mastodon
← Alla inlägg
av Casey Jones Labs · 7 min läsning

Bygget av SkyChart: Hur en kärleksförklaring till Aerobiz blev en fullfjädrad flygbolagssimulator

devlogskychartbehind-the-scenes
Det här inlägget har översatts automatiskt från engelska. Läs originalet
Innehåll

Det finns ett spel från 1992 som förstörde oss. Aerobiz Supersonic på SNES hade ingen rätt att vara så beroendeframkallande som det var. Att köpa flygplatsslottar i Lagos, väja för oljekriser, titta på dina små flygplanssprites som krälade över en pixlad jordglob medan du planerade världsherravälde ett nav i taget.

Ingen har gjort en ordentlig efterföljare. Så vi bestämde oss för att bygga en.

SkyChart: Airline Executive är vårt svar. En retromodern flygbolagssimulator byggd i Godot 4, som spänner över 90 år av luftfartshistoria från flygbåtarnas guldålder till A380-eran. Idag drar vi undan förhänget för hur allt kom samman.


Pitchen: “Tänk om Aerobiz hade modern UI?”

Grundfantasin är enkel: du är vd för ett nystartat flygbolag, som konkurrerar mot AI-rivaler över fyra historiska eror (1930 till 2020). Du väljer rutter, köper flygplan, investerar i städer, hanterar diplomati med världsregioner, och försöker att inte gå i konkurs när OPEC bestämmer sig för att förstöra allas kvartal.

Men där Aerobiz gav dig menyer och text, ville vi ha en levande världskarta. Storcirkelflygvägar, väderradar, dag- och nattcykler, stadsboomanimationer och flygplanssprites som lutar in i svängar. Den sortens sak som får dig att luta dig tillbaka i stolen och tänka: “Ja, jag byggde det här nätverket.”

Stämningen vi landade i: högteknologisk retro. Neonglödslinjer på en mörk karta. HUD-knappar i hexform. En nyhetsticker som kunde ha kommit från en Bloomberg-terminal på 90-talet. Modern UX inlindad i den omisskännliga SNES-era-charmen.

Världskartan på natten med neonruttlinjer som korsar jordklotet medan flygplanssprites spårar storcirkelvägar mellan städer Den globala vyn: ditt flygbolagsnätverk i ett ögonkast. Varje glödande linje är en rutt. Varje rörlig punkt är intäkter.


150 städer, 33 flygplan, 90 år av historia

Låt oss tala om skala. SkyChart innehåller:

  • 150 städer över 7 världsregioner (plus Ryssland efter 1991), var och en med riktiga befolkningsdata, ekonomiska profiler och säsongsbetonade efterfrågekurvor. Tokyo går upp under körsbärsblomsäsongen. Miami boomar på vintern. Kolkata toppar under Durga Puja.
  • 33 historiskt korrekta flygplan från Douglas DC-3 (1936) till Boeing 787 Dreamliner. Var och en har autentisk räckvidd, hastighet, kapacitet, driftskostnader och ett pensionsår. Flyg en DC-3 in i jetåldern och se dina underhållskostnader äta upp dig levande.
  • 60+ historiska händelser som formar om spelplanen. Den stora depressionen tankar efterfrågan. Andra världskriget bombar London och Berlin (bokstavligen, du kommer att behöva bygga upp de flygplatserna igen). Oljekrisen 1973 fördubblar dina bränslekostnader över en natt. Covid-19 dyker upp i era 4 och, ja… du minns.
  • 4 spelbara eror, var och en med eskalerande mål. Era 1 ber dig att överleva med propellerplan och 5 miljoner dollar. Era 4 vill ha ett imperium värt 2 miljarder dollar som spänner över alla sju regionerna.

Varje era känns som ett annat spel. Den strategiska kalkylen för ett flygbåtsnätverk på 1930-talet är inget som hub-and-spoke-krigföringen på 1990-talet.

Eraval-skärm som visar fyra historiska eror med deras mål och startförhållanden Välj din era: var och en är ett annat spel med andra flygplan, händelser och segervillkor.

En popup för en historisk händelse som tillkännager covid-19-pandemin Historien upprepar sig inte, men den spikar upp dina bränslekostnader.


AI:n som faktiskt spelar tillbaka

En sak vi vägrade leverera med var hjärndöd AI. SkyCharts rivaliserande flygbolag expanderar inte bara slumpmässigt. De har hemregioner, viktat ruttval baserat på befolknings- och ekonomidata, kvartalsvisa prisjusteringar, flottuppgraderingar när flygplan pensioneras, och navinvesteringsstrategier.

De underbjuder dina priser på omstridda rutter. De köper upp flygplatsslottar i städer du har haft ögonen på. De leasar till och med flygplan när de är korta om pengar, precis som ett verkligt lågprisflygbolag skulle göra.

Och i era 4, om du har byggt ett imperium de inte kan konkurrera med? De kan bara bli ett förvärvsmål. En fientlig övertagning per era. Deras rutter, slottar och nav, alla dina. För ett pris.

Panelen för konkurrensintelligens som visar rivaliserande flygbolags expansion över regioner Känn din fiende: Intel-panelen spårar varje rivals rörelser över alla sju regioner.


Cockpiten: UI som inte kämpar emot dig

Om du någonsin spelat en managementsimulator där UI var den riktiga bossfighten, då vet du smärtan. Vi har lagt orimligt mycket tid på att se till att SkyCharts gränssnitt är något du vill använda.

Varje panel är ett dragbart och storleksändringsbart fönster. Ruttmanager, Flottöversikt, Strategisk rådgivare, Stadsintelligens, Konkurrensintel, Musikspelare. Dra dem dit du vill. Ändra storleken. Spelet kommer ihåg din layout mellan sessioner.

Den strategiska rådgivaren är din AI-andrepilot. Den scannar varje möjligt stadspar i världen (det är 11 175 kombinationer), rankar dem efter projicerad vinst, och serverar de bästa möjligheterna på ett silverfat. Den körs på en bakgrundstrådpool, upp till 8 arbetartrådar, så den fryser aldrig spelet, inte ens när den krossar tusentals rutter.

Fullt stöd för handkontroll var ett sent tillägg som blev ett passionsprojekt. Xbox-, PlayStation- och Switch-handkontroller fungerar alla nativt. En virtuell markör låter dig välja städer på kartan med höger styrspak. En radialmeny (håll LB) ger dig omedelbar tillgång till varje panel. Varje fönster svarar på B för att stänga. Vi byggde till och med en grafisk kontrollguide med tangentbordstangentsymboler och knappglyfwidgets.

Åh, och det finns en inbyggd musikspelare. Tre källor: spelets era-lämpliga soundtrack (44 spår som spänner från jazzåldern till modern elektronik), ditt lokala musikbibliotek, eller Spotify-integration via OAuth. För vad är det att driva ett flygbolag utan en bra spellista?

Flera dragbara fönster öppna med Ruttmanager, Stadspanel och Strategisk rådgivare arrangerade på kartan Din cockpit, din layout. Varje panel är dragbar, storleksändringsbar och kommer ihåg var du lämnade den.

Panelen Strategisk rådgivare som visar rekommenderade rutter rankade efter projicerad vinst Den strategiska rådgivaren krossar 11 175 stadspar så du inte behöver göra det.

Guide för handkontroll som visar alla gamepad-knappmappningar Fullt handkontrollstöd: varje knapp mappad för soffvänlig flygbolagshantering.


Under huven: En kärleksaffär i GDScript

SkyChart är byggt helt i Godot 4 med GDScript 2.0. Inget C#, inga C++-moduler. Allt från ruttekonomimotorn till tile map-renderaren är ren GDScript.

Några höjdpunkter från ingenjörssidan:

Trådning överallt. Månatliga ekonomiska beräkningar, ruttrekommendationer och AI-expansion körs alla på arbetartrådar. Spelet hålls silkeslent smidigt även när det bearbetar 2 000+ rutter över fyra rivaliserande flygbolag.

En riktig fönsterhanterare. WindowManager är en autoload-singleton som hanterar fokus-till-front-lagring (klicka på ett fönster, det kommer upp överst), persistens av position och storlek till disk, och skärmadaptiv storleksändring. Tre nivåer: Normal (spelpaneler), Modal (inställningar, spara/ladda), och HUD (alltid överst).

Kartplattor i OSM-stil. Zooma in i vilken region som helst och kartplattor med hög detalj laddas dynamiskt. Sprite-pooling, LRU-texturcache, diskcachning och onlinehämtning. Tre stilar: Retro Mörk (standard), Satellit och Ren vektor.

Storcirkelvägar med väderundvikande. Flygvägar följer sfärisk interpolering för geografisk noggrannhet, och ruttar dynamiskt runt stormsystem på kartan. Flygplanssprites lutar in i svängar och kastar fallande skuggor. Det är mycket matematik för kosmetik, men det får världen att kännas verklig.

Storcirkelrouting i aktion: plan följer realistiska kurvade banor över jordklotet Storcirkelrouting i aktion: plan följer realistiska kurvade banor och väjer för vädersystem.

Kartan inzoomad på en region som visar plattstilen Retro Mörk med detaljer i neonstil Zooma in och OSM-stils plattor laddas i farten. Tre kartstilar att välja mellan.


Sifferspelet: Ruttekonomi

I hjärtat av SkyChart finns en ekonomisk modell som vi är genuint stolta över. Varje rutt beräknar månadsvinst genom en pipeline som beaktar:

  • Basefterfrågan (stadens befolkning x ekonomisk multiplikator)
  • Säsongsvariation (12 månadsmultiplikatorer per stad)
  • Investeringsbonusar (hotell, golfbanor, konserthallar, temaparker)
  • Regional diplomati (bättre relationer = mer efterfrågan)
  • Händelsemodifierare (krig, oljekriser, pandemier)
  • Rykte (säkerhetsrekord och kundservice påverkar efterfrågan globalt)
  • Konkurrens (efterfrågan delas efter attraktionspoäng, prissättning, lojalitet, navnärvaro)
  • Flygplanets ålder (plan förbi pensionsår kostar +40 procent att driva och tappar 15 procent efterfrågan)
  • Bränslepriser (OPEC-händelser kan fördubbla dina rörliga kostnader över en natt)

Resultatet är ett system där inga två rutter spelas på samma sätt, och det optimala nätverket 1935 ser inget ut som det optimala nätverket 2005.

Kvartalsvis finansrapport som visar intäkter, utgifter och ett rullande vinstdiagram Varje kvartal berättar siffrorna historien. Den dippen i Q3? OPEC hände.

Ruttprestandapanel som visar rutter rankade efter vinst med trenddata Ruttprestanda: varje rutt rankad efter vinst med trend-sparklines. Grönt är bra. Rött betyder att det är dags att fatta svåra beslut.


Vad händer härnäst

Vi är för närvarande på v0.2.17, vilket i SkyChart-versionering betyder att vi är djupt inne i polering av fas 16+. Spelets kärna är färdig och mycket spelbar. Här är vad som finns på landningsbanan:

  • UI-ljudeffekter och atmosfärisk ljudbild: knapptryck, panelvisningar, flygplatsatmosfär
  • Förstagångshandledning: en guidad genomgång i 12 kapitel så att nya spelare inte behöver lära sig genom att krascha (ekonomiskt, inte bokstavligt… även om också bokstavligt)
  • Förberedelse för Steam-lansering: butikssida, prestationsintegration, molnsparningar

Vi har byggt SkyChart med filosofin att managementsimulatorer förtjänar samma UI-kärlek som actionspel får. Varje tooltip, varje animation, varje livskvalitetsfunktion finns för att vi frågade: “Vad skulle få oss att inte vilja alt-tabba?”


Följ resan

SkyChart utvecklas av Casey Jones Labs, en liten studio med stor kärlek för spelen som formade oss. Om du växte upp med att debattera om du skulle öppna en rutt till Anchorage eller investera i en temapark i Honolulu, så är det här spelet för dig.

Håll utkik efter fler utvecklarbloggar och håll dina bordsplattor i upprätt läge.

Casey Jones Labs-besättningen

SkyCharts huvudmeny med animerade plan som korsar bakgrundskartan SkyChart: Airline Executive, på väg till Steam för Windows, macOS och Linux. Byggt med Godot 4.