Mastodon
← Toate articolele
autor: Casey Jones Labs · 8 min de citit

Construim SkyChart: cum a devenit o scrisoare de dragoste pentru Aerobiz o simulare completă de companie aeriană

devlogskychartbehind-the-scenes
Acest articol a fost tradus automat din engleză. Citește originalul
Cuprins

Există un joc din 1992 care ne-a distrus. Aerobiz Supersonic pe SNES nu avea niciun drept să fie atât de captivant pe cât era. Cumpărând sloturi de aeroport în Lagos, evitând crizele petroliere, urmărind micile sprite-uri de avion cum traversează un glob pixelat în timp ce planifici dominația mondială, un hub odată.

Nimeni nu a făcut un succesor adevărat. Așa că am decis să îl construim noi.

SkyChart: Airline Executive este răspunsul nostru. O simulare retro-modernă de management aerian construită în Godot 4, care acoperă 90 de ani de istorie a aviației, de la epoca de aur a hidroavioanelor până la era A380. Astăzi, tragem cortina și arătăm cum s-a legat totul.


Ideea: „Și dacă Aerobiz ar fi avut UI modern?”

Fantezia centrală este simplă: ești CEO-ul unei companii aeriene incipiente, concurând cu rivali AI în patru ere istorice (1930-2020). Alegi rute, cumperi avioane, investești în orașe, gestionezi diplomația cu regiuni ale lumii și încerci să nu dai faliment când OPEC decide să strice tuturor trimestrul.

Dar acolo unde Aerobiz îți dădea meniuri și text, noi am vrut o hartă a lumii vie. Traiectorii de zbor pe cerc mare, radar meteo, cicluri zi/noapte, animații de creștere pentru orașe și sprite-uri de avioane care se înclină în viraje. Genul acela de lucru care te face să te lași pe spate în scaun și să gândești: „Da, eu am construit această rețea.”

Atmosfera pe care am aterizat: high-tech retro. Linii neon pe o hartă întunecată. Butoane HUD în formă hexagonală. Un ticker de știri care ar fi putut veni dintr-un terminal Bloomberg al anilor ‘90. UX modern învelit în acel farmec inconfundabil al erei SNES.

Harta lumii noaptea, cu linii neon de rute care se întretaie pe glob, în timp ce sprite-uri de avioane urmăresc traiectorii pe cerc mare între orașe Vederea globală: rețeaua companiei tale dintr-o privire. Fiecare linie strălucitoare este o rută. Fiecare punct în mișcare este venit.


150 de orașe, 33 de aeronave, 90 de ani de istorie

Să vorbim despre scară. SkyChart include:

  • 150 de orașe în 7 regiuni ale lumii (plus Rusia post-1991), fiecare cu date reale de populație, profiluri economice și curbe sezoniere de cerere. Tokyo urcă în sezonul florilor de cireș. Miami explodează iarna. Kolkata își atinge vârful în timpul Durga Puja.
  • 33 de aeronave cu acuratețe istorică, de la Douglas DC-3 (1936) până la Boeing 787 Dreamliner. Fiecare are autonomie, viteză, capacitate, costuri operaționale și un an de retragere autentice. Zboară cu un DC-3 în era jetului și urmărește cum costurile de întreținere te mănâncă de viu.
  • Peste 60 de evenimente istorice care remodelează terenul de joc. Marea Depresiune distruge cererea. Al Doilea Război Mondial bombardează Londra și Berlin (la propriu, va trebui să reconstruiești acele aeroporturi). Criza petrolieră din 1973 îți dublează costurile cu combustibilul peste noapte. COVID-19 apare în Era 4 și, ei bine… îți amintești.
  • 4 ere jucabile, fiecare cu obiective în creștere. Era 1 îți cere să supraviețuiești cu avioane cu elice și 5 milioane de dolari. Era 4 vrea un imperiu de 2 miliarde de dolari care se întinde pe toate cele șapte regiuni.

Fiecare eră se simte ca un joc diferit. Calculul strategic al unei rețele de hidroavioane din anii 1930 nu seamănă deloc cu războiul nemilos hub-and-spoke din anii 1990.

Ecranul de selecție a erelor care arată cele patru ere istorice cu obiectivele și condițiile lor de start Alege-ți era: fiecare este un joc diferit cu aeronave, evenimente și condiții de victorie diferite.

O notificare de eveniment istoric care anunță pandemia COVID-19 Istoria nu se repetă, dar îți dublează costurile cu combustibilul.


AI-ul care chiar joacă

Un lucru cu care am refuzat să ieșim pe piață a fost AI-ul fără minte. Companiile aeriene rivale din SkyChart nu se extind aleatoriu. Au regiuni de origine, selecție ponderată a rutelor bazată pe date demografice și economice, ajustări trimestriale de preț, upgrade-uri de flotă când aeronavele se retrag și strategii de investiție în hub-uri.

Subminează prețurile tale pe rutele disputate. Cumpără sloturi de aeroport în orașele pe care le aveai în vedere. Ba chiar leasingează aeronave când nu au numerar, exact ca un operator low-cost real.

Iar în Era 4, dacă ai construit un imperiu cu care nu pot concura? Pot deveni o țintă de achiziție. O preluare ostilă pe eră. Rutele, sloturile și hub-urile lor, toate ale tale. Pentru un preț.

Panoul de Competitive Intelligence care arată expansiunea rivalilor pe regiuni Cunoaște-ți inamicul: panoul Intel urmărește fiecare mișcare a rivalilor în toate cele șapte regiuni.


Cabina: un UI care nu se luptă cu tine

Dacă ai jucat vreodată un joc de management în care UI-ul era adevăratul boss, știi durerea. Am petrecut un timp nerezonabil ca să ne asigurăm că interfața SkyChart este ceva ce vrei să folosești.

Fiecare panou este o fereastră care poate fi trasă și redimensionată. Route Manager, Fleet Overview, Strategic Advisor, City Intelligence, Competitive Intel, Music Player. Trage-le unde vrei. Redimensionează-le. Jocul îți reține aranjarea între sesiuni.

Strategic Advisor este co-pilotul tău AI. Scanează fiecare pereche posibilă de orașe din lume (adică 11.175 de combinații), le clasifică după profitul proiectat și îți servește cele mai bune oportunități pe tavă. Rulează pe un thread pool de fundal, până la 8 fire de lucru, așa că nu îngheață niciodată jocul, nici măcar când macină mii de rute.

Suportul complet pentru controller a fost o adăugare târzie care a devenit un proiect de pasiune. Controllerele Xbox, PlayStation și Switch funcționează toate nativ. Un cursor virtual îți permite să selectezi orașe de pe hartă cu stick-ul drept. Un meniu radial (ține LB apăsat) îți oferă acces instant la fiecare panou. Fiecare fereastră răspunde la B-pentru-închidere. Am construit chiar și un Ghid de Controale grafic, cu widget-uri pentru taste și glife de butoane.

A, și există un player muzical încorporat. Trei surse: coloana sonoră adecvată erei jocului (44 de piese care acoperă de la epoca jazzului până la electronica modernă), biblioteca ta muzicală locală sau integrare Spotify prin OAuth. Pentru că ce înseamnă să conduci o companie aeriană fără un playlist bun?

Mai multe ferestre glisante deschise, cu Route Manager, City Panel și Strategic Advisor aranjate pe hartă Cabina ta, aranjarea ta. Fiecare panou este glisant, redimensionabil și își amintește unde l-ai lăsat.

Panoul Strategic Advisor care arată rutele recomandate clasate după profitul proiectat Strategic Advisor macină 11.175 de perechi de orașe ca tu să nu fie nevoie.

Ghidul de intrare pentru controller care arată toate maparea butoanelor gamepad-ului Suport complet pentru controller: fiecare buton mapat pentru management aerian de pe canapea.


Sub capotă: o poveste de dragoste în GDScript

SkyChart este construit în întregime în Godot 4 cu GDScript 2.0. Fără C#, fără module C++. Totul, de la motorul economic al rutelor până la renderer-ul de hartă tile, este GDScript pur.

Câteva puncte forte din partea de inginerie:

Threading peste tot. Calculele economice lunare, recomandările de rute și expansiunea AI rulează toate pe fire de lucru. Jocul rămâne fin chiar și când procesează peste 2.000 de rute pentru patru companii rivale.

Un manager real de ferestre. WindowManager este un singleton autoload care gestionează stratificarea focus-to-front (apasă pe o fereastră, vine în față), persistența poziției/dimensiunii pe disc și dimensionarea adaptivă pe ecran. Trei niveluri: Normal (panouri de joc), Modal (setări, salvare/încărcare) și HUD (mereu deasupra).

Dale de hartă în stil OSM. Dă zoom în orice regiune și se încarcă dinamic dale de hartă cu detalii ridicate. Pooling de sprite-uri, cache de textură LRU, caching pe disc și preluare online. Trei stiluri: Retro Dark (implicit), Satellite și Clean Vector.

Traiectorii pe cerc mare cu evitarea vremii. Traiectoriile de zbor urmează interpolarea sferică pentru acuratețe geografică și rutează dinamic în jurul sistemelor de furtună de pe hartă. Sprite-urile de avion se înclină în viraje și proiectează umbre. Este multă matematică pentru cosmetică, dar face lumea să pară reală.

Rutarea pe cerc mare în acțiune: avioanele urmăresc traiectorii curbate realiste pe glob Rutare pe cerc mare în acțiune: avioanele urmăresc traiectorii curbate realiste și evită sistemele meteo.

Harta mărită pe o regiune, arătând stilul de dale Retro Dark cu detalii în neon Dă zoom și dalele în stil OSM se încarcă din mers. Trei stiluri de hartă din care să alegi.


Jocul numerelor: economia rutelor

În inima SkyChart se află un model economic de care suntem cu adevărat mândri. Fiecare rută calculează profitul lunar printr-un pipeline care ia în considerare:

  • Cererea de bază (populația orașului x multiplicatorul economic)
  • Variația sezonieră (12 multiplicatori lunari pe oraș)
  • Bonusuri de investiție (hoteluri, terenuri de golf, săli de concerte, parcuri tematice)
  • Diplomația regională (relații mai bune = mai multă cerere)
  • Modificatori de eveniment (războaie, crize petroliere, pandemii)
  • Reputație (istoricul de siguranță și serviciul clienți afectează cererea global)
  • Concurență (cererea se împarte pe scor de atracție, preț, loialitate, prezența în hub)
  • Vârsta aeronavei (avioanele trecute de anul de retragere costă cu 40% mai mult la operare și pierd 15% din cerere)
  • Prețurile combustibilului (evenimentele OPEC îți pot dubla costurile variabile peste noapte)

Rezultatul este un sistem în care nicio pereche de rute nu se joacă la fel, iar rețeaua optimă din 1935 nu seamănă deloc cu rețeaua optimă din 2005.

Raportul financiar trimestrial care arată venituri, cheltuieli și un grafic de profit continuu În fiecare trimestru, cifrele spun povestea. Scăderea aia din T3? A venit OPEC.

Dashboard-ul Route Performance care arată rutele clasate după profit, cu date de tendință Route Performance: fiecare rută clasată după profit, cu mini-grafice de tendință. Verde e bine. Roșu înseamnă că e timpul pentru decizii grele.


Ce urmează

Suntem în prezent la v0.2.17, ceea ce, în versiunea SkyChart, înseamnă că suntem adânc în șlefuirea Fazei 16+. Jocul de bază este complet și foarte jucabil. Iată ce este pe pistă:

  • Efecte sonore UI și ambianță sonoră: click-uri de butoane, whoosh-uri de panouri, ambianță de aeroport
  • Tutorial la prima rulare: o prezentare ghidată în 12 capitole, astfel încât jucătorii noi să nu fie nevoiți să învețe prin accident (financiar, nu literal… deși și literal)
  • Pregătire pentru lansarea pe Steam: pagina magazinului, integrarea realizărilor, salvări în cloud

Am construit SkyChart cu filozofia că simulările de management merită aceeași atenție la UI pe care o primesc jocurile de acțiune. Fiecare tooltip, fiecare animație, fiecare funcționalitate de calitate există pentru că ne-am întrebat: „Ce ne-ar face pe noi să nu vrem să dăm alt-tab?”


Urmărește călătoria

SkyChart este dezvoltat de Casey Jones Labs, un studio mic cu o mare dragoste pentru jocurile care ne-au format. Dacă ai crescut dezbătând dacă să deschizi o rută spre Anchorage sau să investești într-un parc tematic în Honolulu, acest joc este pentru tine.

Rămâneți cu noi pentru mai multe bloguri de dezvoltare și țineți tăvițele în poziție verticală.

Echipa Casey Jones Labs

Meniul principal SkyChart cu avioane animate care traversează harta de fundal SkyChart: Airline Executive, vine pe Steam pentru Windows, macOS și Linux. Construit cu Godot 4.