Mastodon
← Tutti i post
di Casey Jones Labs · 9 min di lettura

Costruire SkyChart: come una lettera d'amore ad Aerobiz è diventata un vero simulatore di compagnie aeree

devlogskychartbehind-the-scenes
Questo articolo è stato tradotto automaticamente dall'inglese. Leggi l'originale
Indice

C’è un gioco del 1992 che ci ha rovinati. Aerobiz Supersonic su SNES non aveva motivo di essere così dipendente come era. Acquistare slot aeroportuali a Lagos, schivare le crisi petrolifere, guardare i tuoi piccoli sprite di aerei strisciare su un globo pixelato mentre tramavi il dominio del mondo un hub alla volta.

Nessuno ha mai fatto un degno successore. Così abbiamo deciso di costruirne uno.

SkyChart: Airline Executive è la nostra risposta. Un simulatore gestionale di compagnie aeree retro-moderno costruito in Godot 4, che copre 90 anni di storia dell’aviazione dall’età d’oro degli idrovolanti all’era dell’A380. Oggi tiriamo la tenda su come tutto è venuto insieme.


La proposta: “E se Aerobiz avesse un’UI moderna?”

La fantasia di base è semplice: sei il CEO di una giovane compagnia aerea, in competizione con rivali AI attraverso quattro ere storiche (dal 1930 al 2020). Scegli le rotte, compri gli aerei, investi nelle città, gestisci la diplomazia con le regioni del mondo, e cerchi di non fallire quando l’OPEC decide di rovinare il trimestre a tutti.

Ma dove Aerobiz ti dava menu e testo, noi volevamo una mappa del mondo viva. Rotte ortodromiche, radar meteo, cicli giorno/notte, animazioni di boom urbano e sprite di aerei che si inclinano nelle curve. Il tipo di cosa che ti fa appoggiare alla sedia e pensare: “Sì, ho costruito io questa rete.”

L’atmosfera su cui ci siamo fermati: retro high-tech. Linee al neon luminose su una mappa scura. Pulsanti dell’HUD a forma esagonale. Un news ticker che potrebbe provenire da un terminale Bloomberg degli anni ‘90. UX moderna avvolta in quell’inconfondibile fascino dell’era SNES.

La mappa del mondo di notte con linee di rotta al neon che attraversano il globo mentre gli sprite degli aerei tracciano rotte ortodromiche tra le città La vista globale: la tua rete aerea a colpo d’occhio. Ogni linea luminosa è una rotta. Ogni punto in movimento è ricavo.


150 città, 33 aeromobili, 90 anni di storia

Parliamo di scala. SkyChart presenta:

  • 150 città in 7 regioni del mondo (più la Russia post-1991), ciascuna con dati reali sulla popolazione, profili economici e curve di domanda stagionali. Tokyo ha un picco durante la stagione dei ciliegi in fiore. Miami esplode in inverno. Kolkata raggiunge il picco durante la Durga Puja.
  • 33 aeromobili storicamente accurati dal Douglas DC-3 (1936) al Boeing 787 Dreamliner. Ciascuno ha autonomia, velocità, capacità, costi operativi e anno di pensionamento autentici. Fai volare un DC-3 nell’era del jet e guarda i costi di manutenzione divorarti vivo.
  • Oltre 60 eventi storici che rimodellano il campo di gioco. La Grande Depressione abbatte la domanda. La Seconda Guerra Mondiale bombarda Londra e Berlino (letteralmente, dovrai ricostruire quegli aeroporti). La crisi petrolifera del 1973 raddoppia i costi del carburante dall’oggi al domani. Il COVID-19 appare nell’Era 4 e, beh… ricordi.
  • 4 ere giocabili, ciascuna con obiettivi crescenti. L’Era 1 ti chiede di sopravvivere con aerei a elica e 5 milioni di dollari. L’Era 4 vuole un impero da 2 miliardi di dollari che copra tutte e sette le regioni.

Ogni era sembra un gioco diverso. Il calcolo strategico di una rete di idrovolanti anni ‘30 non è niente di simile alla guerra spietata hub-and-spoke degli anni ‘90.

Schermata di selezione dell'era che mostra quattro ere storiche con i loro obiettivi e condizioni iniziali Scegli la tua era: ciascuna è un gioco diverso con aerei, eventi e condizioni di vittoria diversi.

Un popup di evento storico che annuncia la pandemia di COVID-19 La storia non si ripete, ma fa impennare i costi del carburante.


L’AI che gioca davvero

Una cosa con cui ci siamo rifiutati di spedire è l’AI a tonte. Le compagnie aeree rivali di SkyChart non si limitano a espandersi a caso. Hanno regioni di origine, selezione di rotte ponderata basata su dati di popolazione ed economici, adeguamenti tariffari trimestrali, aggiornamenti della flotta quando gli aerei vanno in pensione, e strategie di investimento negli hub.

Ti sottocosto sui prezzi sulle rotte contese. Comprano slot aeroportuali nelle città che stavi guardando. Prendono persino aerei in leasing quando sono a corto di liquidità, proprio come farebbe un vero vettore low-cost.

E nell’Era 4, se hai costruito un impero con cui non possono competere? Potrebbero diventare un bersaglio di acquisizione. Un’acquisizione ostile per era. Le loro rotte, slot e hub, tutti tuoi. Per un prezzo.

Il pannello Intelligence Competitiva che mostra l'espansione delle compagnie aeree rivali attraverso le regioni Conosci il tuo nemico: il pannello Intel traccia ogni mossa di ogni rivale in tutte e sette le regioni.


La cabina di pilotaggio: un’UI che non ti combatte

Se hai mai giocato a un gestionale dove l’UI era il vero boss fight, conosci il dolore. Abbiamo passato una quantità irragionevole di tempo ad assicurarci che l’interfaccia di SkyChart fosse qualcosa che vuoi usare.

Ogni pannello è una finestra trascinabile e ridimensionabile. Route Manager, Fleet Overview, Strategic Advisor, City Intelligence, Competitive Intel, Music Player. Trascinali dove vuoi. Ridimensionali. Il gioco ricorda il tuo layout tra le sessioni.

Lo Strategic Advisor è il tuo copilota AI. Scansiona ogni possibile coppia di città al mondo (sono 11.175 combinazioni), le classifica per profitto previsto, e ti serve le migliori opportunità su un vassoio d’argento. Gira su un pool di thread in background, fino a 8 worker thread, quindi non blocca mai il gioco, nemmeno quando elabora migliaia di rotte.

Il supporto completo ai controller è stato un’aggiunta tardiva che è diventata un progetto appassionato. Controller Xbox, PlayStation e Switch funzionano tutti nativamente. Un cursore virtuale ti permette di selezionare le città sulla mappa con lo stick destro. Un menu radiale (tieni premuto LB) ti dà accesso istantaneo a ogni pannello. Ogni finestra risponde al B-per-chiudere. Abbiamo anche costruito una guida grafica ai controlli con widget di keycap e glifi dei pulsanti.

Ah, e c’è un music player integrato. Tre fonti: la colonna sonora appropriata all’era del gioco (44 tracce che vanno dall’età del jazz all’elettronica moderna), la tua libreria musicale locale, o l’integrazione Spotify via OAuth. Perché cos’è gestire una compagnia aerea senza una buona playlist?

Più finestre trascinabili aperte con Route Manager, City Panel e Strategic Advisor disposti sulla mappa La tua cabina, il tuo layout. Ogni pannello è trascinabile, ridimensionabile e ricorda dove l’hai lasciato.

Il pannello Strategic Advisor che mostra le rotte raccomandate classificate per profitto previsto Lo Strategic Advisor elabora 11.175 coppie di città così non devi farlo tu.

Guida all'input del controller che mostra tutte le mappature dei pulsanti del gamepad Supporto completo ai controller: ogni pulsante mappato per una gestione aerea da divano.


Sotto il cofano: una storia d’amore con GDScript

SkyChart è costruito interamente in Godot 4 con GDScript 2.0. Nessun C#, nessun modulo C++. Tutto, dal motore economico delle rotte al renderer della tile map, è GDScript puro.

Alcuni punti salienti dal lato ingegneristico:

Threading ovunque. I calcoli economici mensili, le raccomandazioni delle rotte e l’espansione dell’AI girano tutti su worker thread. Il gioco rimane fluido come la seta anche quando elabora oltre 2.000 rotte tra quattro compagnie aeree rivali.

Un vero window manager. WindowManager è un singleton autoload che gestisce il layering focus-to-front (clicca una finestra, viene in primo piano), la persistenza di posizione/dimensione su disco e il dimensionamento adattivo allo schermo. Tre livelli: Normale (pannelli di gameplay), Modale (impostazioni, salva/carica) e HUD (sempre in cima).

Tile della mappa in stile OSM. Zooma in qualsiasi regione e le tile della mappa ad alta definizione si caricano dinamicamente. Sprite pooling, cache texture LRU, caching su disco e fetch online. Tre stili: Retro Dark (predefinito), Satellite e Clean Vector.

Percorsi ortodromici con evitamento del maltempo. Le rotte di volo seguono l’interpolazione sferica per l’accuratezza geografica, e aggirano dinamicamente i sistemi di tempesta sulla mappa. Gli sprite degli aerei si inclinano nelle curve e proiettano ombre. È molta matematica per una cosmesi, ma fa sentire il mondo reale.

Il routing ortodromico in azione: gli aerei seguono percorsi curvi realistici attraverso il globo Il routing ortodromico in azione: gli aerei seguono percorsi curvi realistici e schivano i sistemi meteo.

La mappa zoomata in una regione che mostra lo stile Retro Dark con dettagli al neon Zooma e le tile in stile OSM si caricano al volo. Tre stili di mappa tra cui scegliere.


Il gioco dei numeri: l’economia delle rotte

Al cuore di SkyChart c’è un modello economico di cui siamo genuinamente orgogliosi. Ogni rotta calcola il profitto mensile attraverso una pipeline che considera:

  • Domanda di base (popolazione della città per moltiplicatore economico)
  • Variazione stagionale (12 moltiplicatori mensili per città)
  • Bonus di investimento (hotel, campi da golf, sale da concerto, parchi a tema)
  • Diplomazia regionale (migliori relazioni = più domanda)
  • Modificatori di eventi (guerre, crisi petrolifere, pandemie)
  • Reputazione (record di sicurezza e servizio clienti influenzano la domanda globalmente)
  • Concorrenza (la domanda si divide per punteggio di attrazione, prezzo, fedeltà, presenza dell’hub)
  • Età dell’aereo (gli aerei oltre l’anno di pensionamento costano il +40% da operare e perdono il 15% di domanda)
  • Prezzi del carburante (gli eventi OPEC possono raddoppiare i costi variabili dall’oggi al domani)

Il risultato è un sistema in cui nessuna rotta si gioca allo stesso modo, e la rete ottimale del 1935 non somiglia per nulla alla rete ottimale del 2005.

Il Quarterly Financial Report che mostra ricavi, spese e un grafico di profitto rotante Ogni trimestre, i numeri raccontano la storia. Quel calo nel Q3? È successo l’OPEC.

La dashboard Route Performance che mostra le rotte classificate per profitto con dati di trend Route Performance: ogni rotta classificata per profitto con sparkline di trend. Verde è bene. Rosso significa che è ora di prendere decisioni difficili.


Cosa c’è dopo

Siamo attualmente alla v0.2.17, che nella versione di SkyChart significa che siamo in pieno lucidatura Fase 16+. Il gioco core è completo e molto giocabile. Ecco cosa c’è sulla pista:

  • Effetti sonori UI e paesaggio sonoro ambientale: click dei pulsanti, fruscio dei pannelli, atmosfera aeroportuale
  • Tutorial al primo avvio: una procedura guidata in 12 capitoli così i nuovi giocatori non devono imparare schiantandosi (finanziariamente, non letteralmente… anche se pure letteralmente)
  • Prep per il rilascio su Steam: pagina del negozio, integrazione degli achievement, salvataggi cloud

Abbiamo costruito SkyChart con la filosofia che i gestionali meritano lo stesso amore per l’UI che ricevono i giochi d’azione. Ogni tooltip, ogni animazione, ogni feature di qualità della vita esiste perché ci siamo chiesti: “Cosa farebbe sì che noi non vogliamo fare alt-tab?”


Segui il viaggio

SkyChart è sviluppato da Casey Jones Labs, un piccolo studio con un grande amore per i giochi che ci hanno plasmati. Se sei cresciuto dibattendo se aprire una rotta per Anchorage o investire in un parco a tema a Honolulu, questo gioco è per te.

Resta sintonizzato per altri dev blog, e tieni i tuoi tavolini in posizione verticale.

L’equipaggio di Casey Jones Labs

Il menu principale di SkyChart con aerei animati che attraversano la mappa di sfondo SkyChart: Airline Executive, in arrivo su Steam per Windows, macOS e Linux. Costruito con Godot 4.