Mastodon
← Όλες οι αναρτήσεις
από Casey Jones Labs · 8 λεπ. ανάγνωσης

Χτίζοντας το SkyChart: Πώς ένα Ερωτικό Γράμμα στο Aerobiz Έγινε μια Ολοκληρωμένη Προσομοίωση Αεροπορικής

devlogskychartbehind-the-scenes
Αυτή η ανάρτηση έχει μεταφραστεί αυτόματα από τα αγγλικά. Διάβασε το πρωτότυπο
Πίνακας περιεχομένων

Υπάρχει ένα παιχνίδι από το 1992 που μας κατέστρεψε. Το Aerobiz Supersonic στο SNES δεν είχε λόγο να είναι τόσο εθιστικό όσο ήταν. Αγοράζοντας slots αεροδρομίων στο Λάγος, αποφεύγοντας πετρελαϊκές κρίσεις, παρακολουθώντας τα μικρά σας sprites αεροπλάνων να σέρνονται σε έναν εικονοποιημένο πλανήτη ενώ σχεδιάζατε παγκόσμια κυριαρχία έναν κόμβο τη φορά.

Κανείς δεν έχει φτιάξει έναν κατάλληλο διάδοχο. Οπότε αποφασίσαμε να χτίσουμε έναν.

Το SkyChart: Airline Executive είναι η απάντησή μας. Μια ρετρο-σύγχρονη προσομοίωση διαχείρισης αεροπορικής χτισμένη στο Godot 4, που καλύπτει 90 χρόνια ιστορίας αεροπορίας από τη χρυσή εποχή των ιπτάμενων σκαφών μέχρι την εποχή του A380. Σήμερα τραβάμε την κουρτίνα για να δείξουμε πώς όλα αυτά έγιναν πραγματικότητα.


Η Πρόταση: “Και Αν το Aerobiz Είχε Σύγχρονο UI;”

Η βασική φαντασίωση είναι απλή: είστε ο CEO μιας νεοσύστατης αεροπορικής εταιρείας, ανταγωνιζόμενοι τεχνητές νοημοσύνες αντιπάλους σε τέσσερις ιστορικές εποχές (1930 έως 2020). Διαλέγετε γραμμές, αγοράζετε αεροπλάνα, επενδύετε σε πόλεις, διαχειρίζεστε διπλωματία με παγκόσμιες περιοχές, και προσπαθείτε να μην χρεοκοπήσετε όταν ο OPEC αποφασίσει να καταστρέψει το τρίμηνο όλων.

Αλλά εκεί όπου το Aerobiz έδινε μενού και κείμενο, εμείς θέλαμε έναν ζωντανό παγκόσμιο χάρτη. Διαδρομές μεγάλων κύκλων, ραντάρ καιρού, κύκλοι μέρας/νύχτας, κινούμενες εικόνες έκρηξης πόλεων, και sprites αεροσκαφών που γέρνουν στις στροφές. Το είδος πράγματος που σας κάνει να γέρνετε πίσω στην καρέκλα σας και να σκέφτεστε, “Ναι, έχτισα αυτό το δίκτυο.”

Το στυλ που κατασταλάξαμε: υψηλής τεχνολογίας ρετρό. Νέον λαμπερές γραμμές σε έναν σκοτεινό χάρτη. Εξάγωνα κουμπιά HUD. Ένα ticker ειδήσεων που θα μπορούσε να είχε βγει από ένα τερματικό Bloomberg των ‘90. Σύγχρονη εμπειρία χρήστη τυλιγμένη σε εκείνη την αναμφίβολη γοητεία της εποχής SNES.

The world map at night with neon route lines crisscrossing the globe while aircraft sprites trace great circle paths between cities Η παγκόσμια προβολή: το δίκτυο της αεροπορικής σας με μια ματιά. Κάθε φωτεινή γραμμή είναι μια γραμμή. Κάθε κινούμενη τελεία είναι έσοδα.


150 Πόλεις, 33 Αεροσκάφη, 90 Χρόνια Ιστορίας

Ας μιλήσουμε για κλίμακα. Το SkyChart διαθέτει:

  • 150 πόλεις σε 7 παγκόσμιες περιοχές (συν τη μετά-1991 Ρωσία), κάθε μία με πραγματικά δεδομένα πληθυσμού, οικονομικά προφίλ, και εποχιακές καμπύλες ζήτησης. Το Τόκιο ανεβαίνει την εποχή της ανθοφορίας της κερασιάς. Το Μαϊάμι εκτοξεύεται τον χειμώνα. Η Καλκούτα κορυφώνεται κατά τη Durga Puja.
  • 33 ιστορικά ακριβή αεροσκάφη από το Douglas DC-3 (1936) έως το Boeing 787 Dreamliner. Κάθε ένα έχει αυθεντική εμβέλεια, ταχύτητα, χωρητικότητα, λειτουργικά κόστη, και έτος απόσυρσης. Πετάξτε ένα DC-3 στην εποχή των αεριωθούμενων και παρακολουθήστε τα κόστη συντήρησης να σας τρώνε ζωντανό.
  • 60+ ιστορικά γεγονότα που αναδιαμορφώνουν το πεδίο παιχνιδιού. Η Μεγάλη Ύφεση ρίχνει τη ζήτηση. Ο Β’ Παγκόσμιος Πόλεμος βομβαρδίζει το Λονδίνο και το Βερολίνο (κυριολεκτικά, θα χρειαστεί να ξαναχτίσετε αυτά τα αεροδρόμια). Η κρίση πετρελαίου του 1973 διπλασιάζει τα κόστη καυσίμων σας από τη μία μέρα στην άλλη. Το COVID-19 εμφανίζεται στην Εποχή 4 και, λοιπόν… το θυμάστε.
  • 4 παίξιμες εποχές, κάθε μία με κλιμακούμενους στόχους. Η Εποχή 1 σας ζητάει να επιβιώσετε με προπελοκίνητα αεροπλάνα και 5 εκατομμύρια δολάρια. Η Εποχή 4 θέλει μια αυτοκρατορία 2 δισεκατομμυρίων δολαρίων που να εκτείνεται σε όλες τις επτά περιοχές.

Κάθε εποχή αισθάνεται σαν διαφορετικό παιχνίδι. Ο στρατηγικός λογισμός ενός δικτύου ιπτάμενου σκάφους της δεκαετίας του 1930 δεν έχει καμία σχέση με τον αδυσώπητο πόλεμο κόμβων και ακτίνων της δεκαετίας του 1990.

Era selection screen showing four historical eras with their goals and starting conditions Διαλέξτε την εποχή σας: κάθε μία είναι ένα διαφορετικό παιχνίδι με διαφορετικά αεροσκάφη, γεγονότα, και συνθήκες νίκης.

A historical event popup announcing the COVID-19 pandemic Η ιστορία δεν επαναλαμβάνεται, αλλά ανεβάζει τα κόστη καυσίμων σας.


Η Τεχνητή Νοημοσύνη που Αντεπιτίθεται Πραγματικά

Ένα πράγμα που αρνηθήκαμε να παραδώσουμε ήταν μια εγκεφαλικά νεκρή τεχνητή νοημοσύνη. Οι αντίπαλες αεροπορικές του SkyChart δεν επεκτείνονται απλώς τυχαία. Έχουν περιοχές προέλευσης, σταθμισμένη επιλογή γραμμών βασισμένη σε πληθυσμιακά και οικονομικά δεδομένα, τριμηνιαίες προσαρμογές τιμολόγησης, αναβαθμίσεις στόλου όταν τα αεροσκάφη αποσύρονται, και στρατηγικές επένδυσης κόμβων.

Υποτιμούν τις τιμές σας σε αμφισβητούμενες γραμμές. Αγοράζουν slots αεροδρομίων σε πόλεις που είχατε στο μάτι. Μισθώνουν ακόμα και αεροσκάφη όταν τους λείπουν μετρητά, όπως θα έκανε ένας πραγματικός οικονομικός αερομεταφορέας.

Και στην Εποχή 4, αν έχετε χτίσει μια αυτοκρατορία με την οποία δεν μπορούν να ανταγωνιστούν; Μπορεί απλώς να γίνουν στόχος εξαγοράς. Μία εχθρική εξαγορά ανά εποχή. Οι γραμμές τους, τα slots τους, οι κόμβοι τους, όλα δικά σας. Σε μια τιμή.

The Competitive Intelligence panel showing rival airline expansion across regions Γνώρισε τον εχθρό σου: το πάνελ Intel παρακολουθεί κάθε κίνηση αντιπάλου σε όλες τις επτά περιοχές.


Το Πιλοτήριο: UI που Δεν Σας Πολεμάει

Αν έχετε παίξει ποτέ μια προσομοίωση διαχείρισης όπου το UI ήταν το πραγματικό boss fight, ξέρετε τον πόνο. Έχουμε περάσει έναν παράλογο χρόνο φροντίζοντας ώστε το interface του SkyChart να είναι κάτι που θέλετε να χρησιμοποιείτε.

Κάθε πάνελ είναι ένα συρόμενο, αναδιαμορφώσιμο παράθυρο. Route Manager, Fleet Overview, Strategic Advisor, City Intelligence, Competitive Intel, Music Player. Σύρτε τα όπου θέλετε. Αναδιαμορφώστε τα. Το παιχνίδι θυμάται τη διάταξή σας μεταξύ sessions.

Ο Strategic Advisor είναι ο συνοδηγός τεχνητής νοημοσύνης σας. Σαρώνει κάθε πιθανό ζεύγος πόλεων στον κόσμο (δηλαδή 11.175 συνδυασμούς), τα κατατάσσει κατά προβλεπόμενο κέρδος, και σερβίρει τις καλύτερες ευκαιρίες σε ασημένιο δίσκο. Τρέχει σε μια λίμνη νημάτων background, μέχρι 8 νήματα εργασίας, οπότε δεν παγώνει ποτέ το παιχνίδι, ακόμα και όταν επεξεργάζεται χιλιάδες γραμμές.

Η πλήρης υποστήριξη controller ήταν μια καθυστερημένη προσθήκη που έγινε project πάθους. Τα controllers Xbox, PlayStation, και Switch λειτουργούν όλα εγγενώς. Ένας εικονικός δρομέας σας επιτρέπει να επιλέγετε πόλεις στον χάρτη με το δεξί stick. Ένα ακτινικό μενού (κρατήστε LB) σας δίνει άμεση πρόσβαση σε κάθε πάνελ. Κάθε παράθυρο ανταποκρίνεται σε B-για-κλείσιμο. Φτιάξαμε ακόμα κι έναν γραφικό Οδηγό Ελέγχων με widgets keycap και κουμπιών glyph.

Α, και υπάρχει ένα ενσωματωμένο music player. Τρεις πηγές: το soundtrack του παιχνιδιού κατάλληλο για κάθε εποχή (44 κομμάτια από την εποχή της τζαζ μέχρι τη σύγχρονη ηλεκτρονική), τη δική σας τοπική βιβλιοθήκη μουσικής, ή ενσωμάτωση Spotify μέσω OAuth. Επειδή πώς να διοικείς αεροπορική εταιρεία χωρίς καλή playlist;

Multiple draggable windows open with Route Manager, City Panel, and Strategic Advisor arranged on the map Το πιλοτήριο σας, η διάταξή σας. Κάθε πάνελ είναι συρόμενο, αναδιαμορφώσιμο, και θυμάται πού το αφήσατε.

The Strategic Advisor panel showing recommended routes ranked by projected profit Ο Strategic Advisor μπερδεύει 11.175 ζεύγη πόλεων για να μην χρειάζεται να το κάνετε εσείς.

Controller input guide showing all gamepad button mappings Πλήρης υποστήριξη controller: κάθε κουμπί αντιστοιχισμένο για διαχείριση αεροπορικής από τον καναπέ.


Κάτω από το Κουκούλι: Μια Ιστορία Αγάπης με το GDScript

Το SkyChart είναι χτισμένο εξ ολοκλήρου σε Godot 4 με GDScript 2.0. Χωρίς C#, χωρίς C++ modules. Όλα από τον κινητήρα οικονομικών γραμμής μέχρι τον renderer του tile map είναι καθαρό GDScript.

Μερικά highlights από την πλευρά της μηχανικής:

Threading παντού. Μηνιαίοι οικονομικοί υπολογισμοί, συστάσεις γραμμών, και επέκταση τεχνητής νοημοσύνης τρέχουν όλα σε νήματα εργασίας. Το παιχνίδι παραμένει μεταξωτά ομαλό ακόμα και όταν επεξεργάζεται 2.000+ γραμμές σε τέσσερις ανταγωνιστικές αεροπορικές.

Ένας πραγματικός window manager. Το WindowManager είναι ένα autoload singleton που χειρίζεται τη στρωματοποίηση εστίασης στο μπροστινό μέρος (κάντε κλικ σε ένα παράθυρο, έρχεται στην κορυφή), επιμονή θέσης/μεγέθους στον δίσκο, και μέγεθος προσαρμόσιμο στην οθόνη. Τρεις βαθμίδες: Κανονικό (πάνελ παιχνιδιού), Modal (ρυθμίσεις, αποθήκευση/φόρτωση), και HUD (πάντα στην κορυφή).

Map tiles τύπου OSM. Κάντε zoom σε οποιαδήποτε περιοχή και map tiles υψηλής λεπτομέρειας φορτώνονται δυναμικά. Sprite pooling, LRU texture cache, disk caching, και online fetch. Τρία στυλ: Retro Dark (προεπιλογή), Satellite, και Clean Vector.

Διαδρομές μεγάλων κύκλων με αποφυγή καιρού. Οι διαδρομές πτήσης ακολουθούν σφαιρική παρεμβολή για γεωγραφική ακρίβεια, και δυναμικά δρομολογούνται γύρω από συστήματα καταιγίδων στον χάρτη. Τα sprites αεροσκαφών γέρνουν στις στροφές και ρίχνουν σκιές. Είναι πολλά μαθηματικά για διακοσμητικούς σκοπούς, αλλά κάνει τον κόσμο να αισθάνεται πραγματικός.

Great circle routing in action: planes follow realistic curved paths across the globe Δρομολόγηση μεγάλων κύκλων σε δράση: τα αεροπλάνα ακολουθούν ρεαλιστικές καμπυλωτές διαδρομές και αποφεύγουν συστήματα καιρού.

The map zoomed into a region showing the Retro Dark tile style with neon-styled details Κάντε zoom in και τα tiles τύπου OSM φορτώνονται στον αέρα. Τρία στυλ χάρτη να διαλέξετε.


Το Παιχνίδι των Αριθμών: Οικονομικά Γραμμών

Στην καρδιά του SkyChart είναι ένα οικονομικό μοντέλο για το οποίο είμαστε πραγματικά περήφανοι. Κάθε γραμμή υπολογίζει μηνιαίο κέρδος μέσω ενός pipeline που εξετάζει:

  • Βασική ζήτηση (πληθυσμός πόλης x οικονομικός πολλαπλασιαστής)
  • Εποχιακή διακύμανση (12 μηνιαίοι πολλαπλασιαστές ανά πόλη)
  • Μπόνους επενδύσεων (ξενοδοχεία, γήπεδα γκολφ, αίθουσες συναυλιών, θεματικά πάρκα)
  • Περιφερειακή διπλωματία (καλύτερες σχέσεις = περισσότερη ζήτηση)
  • Modifiers γεγονότων (πόλεμοι, πετρελαϊκές κρίσεις, πανδημίες)
  • Φήμη (ρεκόρ ασφάλειας και εξυπηρέτηση πελατών επηρεάζουν τη ζήτηση παγκοσμίως)
  • Ανταγωνισμός (η ζήτηση διαιρείται με βάση τη βαθμολογία έλξης, τιμολόγηση, πιστότητα, παρουσία κόμβου)
  • Ηλικία αεροσκάφους (αεροπλάνα μετά το έτος απόσυρσης κοστίζουν +40% στη λειτουργία και χάνουν 15% ζήτηση)
  • Τιμές καυσίμων (γεγονότα OPEC μπορούν να διπλασιάσουν τα μεταβλητά κόστη σας από τη μία μέρα στην άλλη)

Το αποτέλεσμα είναι ένα σύστημα όπου καμία δύο γραμμές δεν παίζουν με τον ίδιο τρόπο, και το βέλτιστο δίκτυο το 1935 δεν μοιάζει καθόλου με το βέλτιστο δίκτυο το 2005.

The Quarterly Financial Report showing revenue, expenses, and a rolling profit chart Κάθε τρίμηνο, οι αριθμοί λένε την ιστορία. Εκείνη η πτώση στο Q3; Συνέβη ο OPEC.

Route Performance dashboard showing routes ranked by profit with trend data Απόδοση Γραμμών: κάθε γραμμή κατατάσσεται κατά κέρδος με γραμμές τάσης. Το πράσινο είναι καλό. Το κόκκινο σημαίνει ότι ήρθε η ώρα για σκληρές αποφάσεις.


Τι Ακολουθεί

Βρισκόμαστε αυτή τη στιγμή στο v0.2.17, που στον τρόπο έκδοσης του SkyChart σημαίνει ότι είμαστε βαθιά στη Φάση 16+ γυαλίσματος. Ο πυρήνας του παιχνιδιού είναι πλήρης και πολύ παίξιμος. Ιδού τι είναι στον διάδρομο:

  • Ηχητικά Εφέ UI & Ατμοσφαιρικό Ηχητικό Τοπίο: κλικ κουμπιών, σφυρίγματα πάνελ, ατμόσφαιρα αεροδρομίου
  • Tutorial Πρώτης Εκτέλεσης: ένα καθοδηγούμενο walkthrough 12 κεφαλαίων ώστε οι νέοι παίκτες να μην χρειάζεται να μαθαίνουν με συντριβή (οικονομικά, όχι κυριολεκτικά… αν και επίσης κυριολεκτικά)
  • Προετοιμασία Steam Release: σελίδα καταστήματος, ενσωμάτωση achievements, cloud saves

Χτίζουμε το SkyChart με τη φιλοσοφία ότι οι προσομοιώσεις διαχείρισης αξίζουν την ίδια αγάπη UI που παίρνουν τα παιχνίδια δράσης. Κάθε tooltip, κάθε animation, κάθε χαρακτηριστικό ποιότητας ζωής υπάρχει επειδή ρωτήσαμε: “Τι θα έκανε εμάς να μη θέλουμε να κάνουμε alt-tab;“


Ακολουθήστε το Ταξίδι

Το SkyChart αναπτύσσεται από την Casey Jones Labs, ένα μικρό στούντιο με μεγάλη αγάπη για τα παιχνίδια που μας διαμόρφωσαν. Αν μεγαλώσατε συζητώντας αν θα ανοίξετε γραμμή στο Άνκορεϊτζ ή να επενδύσετε σε ένα θεματικό πάρκο στη Χονολουλού, αυτό το παιχνίδι είναι για εσάς.

Μείνετε συντονισμένοι για περισσότερα dev blogs, και κρατήστε τα τραπεζάκια σας σε όρθια θέση.

Το πλήρωμα της Casey Jones Labs

The SkyChart main menu with animated planes crossing the background map SkyChart: Airline Executive, έρχεται στο Steam για Windows, macOS, και Linux. Χτισμένο με Godot 4.