Mastodon
← Всички публикации
от Casey Jones Labs · 8 мин. четене

Изграждайки SkyChart: Как любовното писмо към Aerobiz се превърна в пълноценен авиационен симулатор

devlogskychartbehind-the-scenes
Тази публикация е преведена автоматично от английски. Прочети оригинала
Съдържание

Има една игра от 1992 г., която ни провали. Aerobiz Supersonic на SNES нямаше работа да бъде толкова пристрастяваща, колкото беше. Купуване на летищни слотове в Lagos, избягване на петролни кризи, гледане как малките спрайтове на самолетите ви пълзят през пикселизирано кълбо, докато планирате световно господство един хъб на път.

Никой не е направил истински наследник. Затова решихме да построим един.

SkyChart: Airline Executive е нашият отговор. Ретро-модерен авиационен управленски симулатор, изграден в Godot 4, обхващащ 90 години авиационна история от златната ера на летящите лодки до ерата на A380. Днес дърпаме завесата за това как всичко се събра.


Предложението: “Какво ако Aerobiz имаше модерен UI?”

Основната фантазия е проста: вие сте CEO на новосъздадена авиокомпания, конкурираща се срещу AI съперници в четири исторически ери (1930 до 2020). Избирате маршрути, купувате самолети, инвестирате в градове, управлявате дипломацията със световни региони и се опитвате да не фалирате, когато OPEC реши да провали тримесечието на всички.

Но там, където Aerobiz ви даваше менюта и текст, ние искахме жива световна карта. Пътища по голям кръг, метеорологичен радар, цикли ден/нощ, анимации на разцвет на градове и спрайтове на самолети, които се накланят в завоите. Видът неща, които те карат да се облегнеш в стола си и да си помислиш: “Да, аз построих тази мрежа.”

Вайбът, на който се спряхме: висока технология, ретро. Неонови светещи линии на тъмна карта. HUD бутони с форма на хексагон. Новинарски тикер, който можеше да дойде от Bloomberg терминал от 90-те. Модерно UX, увито в онзи неопровержим чар от ерата на SNES.

Световната карта през нощта с неонови маршрутни линии, пресичащи глобуса, докато спрайтовете на самолетите проследяват пътища по голям кръг между градовете Глобалният изглед: вашата авиокомпанийна мрежа с един поглед. Всяка светеща линия е маршрут. Всяка движеща се точка е приход.


150 града, 33 самолета, 90 години история

Нека говорим за мащаба. SkyChart предлага:

  • 150 града в 7 световни региона (плюс Русия след 1991 г.), всеки с реални данни за населението, икономически профили и сезонни криви на търсене. Tokyo нараства в сезона на черешовия цвят. Miami процъфтява през зимата. Kolkata достига пик по време на Durga Puja.
  • 33 исторически точни самолета от Douglas DC-3 (1936 г.) до Boeing 787 Dreamliner. Всеки има автентичен обхват, скорост, капацитет, оперативни разходи и година на пенсиониране. Летете с DC-3 в реактивната ера и гледайте как разходите ви за поддръжка ви изяждат живи.
  • 60+ исторически събития, които преоформят игралното поле. Голямата депресия срива търсенето. Втората световна война бомбардира London и Berlin (буквално, ще трябва да реизграждате тези летища). Петролната криза от 1973 г. удвоява разходите ви за гориво за една нощ. COVID-19 се появява в Ера 4 и, добре… вие си спомняте.
  • 4 играеми ери, всяка с ескалиращи цели. Ера 1 иска от вас да оцелеете с витлови самолети и $5 млн. Ера 4 иска империя от $2 милиарда, обхващаща всички седем региона.

Всяка ера се усеща като различна игра. Стратегическата пресметливост на мрежа с летящи лодки от 30-те години няма нищо общо с безмилостната война hub-and-spoke от 90-те.

Екран за избор на ера, показващ четири исторически ери с техните цели и начални условия Изберете си ерата: всяка е различна игра с различни самолети, събития и условия за победа.

Изскачащо съобщение за историческо събитие, съобщаващо за пандемията COVID-19 Историята не се повтаря, но наистина повишава разходите ви за гориво.


AI, който наистина играе обратно

Едно нещо, с което отказахме да доставим, беше мозъчно мъртъв AI. Съперническите авиокомпании на SkyChart не просто произволно се разширяват. Те имат домашни региони, претеглен избор на маршрути, базиран на данни за населението и икономиката, тримесечни корекции на цените, надграждания на флота, когато самолетите се пенсионират, и стратегии за инвестиции в хъб.

Те подбиват цените ви по оспорвани маршрути. Купуват летищни слотове в градове, които сте наблюдавали. Дори лизинговат самолети, когато са с малко пари, точно както би правил реален бюджетен превозвач.

А в Ера 4, ако сте изградили империя, с която те не могат да се конкурират? Те може просто да станат цел за придобиване. Едно враждебно придобиване на ера. Техните маршрути, слотове и хъбове, всичко ваше. За цена.

Панелът Competitive Intelligence, показващ разширяването на съперническите авиокомпании между регионите Познавайте врага си: панелът Intel проследява всеки ход на съперниците във всичките седем региона.


Кабината: UI, който не се бори с вас

Ако някога сте играли управленски симулатор, където UI е истинският бос, знаете болката. Прекарахме неразумно количество време, за да се уверим, че интерфейсът на SkyChart е нещо, което искате да използвате.

Всеки панел е плъзгащ се, преоразмерим прозорец. Route Manager, Fleet Overview, Strategic Advisor, City Intelligence, Competitive Intel, Music Player. Влачете ги, където искате. Преоразмерете ги. Играта запомня разположението ви между сесиите.

Strategic Advisor е вашият AI втори пилот. Той сканира всяка възможна двойка градове в света (това са 11 175 комбинации), класира ги по прогнозна печалба и сервира най-добрите възможности на сребърен поднос. Той работи върху пул от фонови нишки, до 8 работни нишки, така че никога не замразява играта, дори когато обработва хиляди маршрути.

Пълна поддръжка за контролер беше късно допълнение, което стана страстен проект. Xbox, PlayStation и Switch контролерите работят всички роднински. Виртуален курсор ви позволява да избирате градове на картата с десния стик. Радиално меню (задръжте LB) ви дава моментален достъп до всеки панел. Всеки прозорец отговаря на B-за-затваряне. Дори построихме графичен Controls Guide с клавишни капачки и уиджети с бутонни глифове.

О, и има вграден музикален плейър. Три източника: подходящата за ерата саундтрак на играта (44 парчета, обхващащи джаз ерата до модерната електроника), вашата локална музикална библиотека или интеграция със Spotify през OAuth. Защото какво е да управляваш авиокомпания без добър плейлист?

Множество плъзгащи се прозорци са отворени с Route Manager, City Panel и Strategic Advisor, подредени на картата Вашата кабина, вашето разположение. Всеки панел е плъзгащ се, преоразмерим и помни къде сте го оставили.

Панелът Strategic Advisor, показващ препоръчани маршрути, класирани по прогнозна печалба Strategic Advisor обработва 11 175 двойки градове, за да не се налага вие.

Ръководство за контролерни входове, показващо всички съпоставки на бутоните на геймпада Пълна поддръжка за контролер: всеки бутон съпоставен за удобно за дивана авиационно управление.


Под капака: Любовна история на GDScript

SkyChart е изграден изцяло в Godot 4 с GDScript 2.0. Без C#, без C++ модули. Всичко от двигателя за икономика на маршрутите до рендъра на картата с плочки е чист GDScript.

Някои акценти от инженерната страна:

Нишкиране навсякъде. Месечните икономически изчисления, препоръките за маршрути и разширяването на AI всички работят върху работни нишки. Играта остава копринено плавна, дори когато обработва 2 000+ маршрута в четири съперничещи авиокомпании.

Истински мениджър на прозорци. WindowManager е autoload singleton, който се справя с фокус-към-предна слоева (щракнете върху прозорец, той идва най-горе), запазване на позиция/размер на диск и адаптивно към екрана оразмеряване. Три нива: Normal (игрови панели), Modal (настройки, запазване/зареждане) и HUD (винаги най-отгоре).

Картни плочки в стил OSM. Увеличете в който и да е регион и високо-детайлните картни плочки се зареждат динамично. Пул на спрайтове, LRU текстурен кеш, дисков кеш и онлайн извличане. Три стила: Retro Dark (по подразбиране), Satellite и Clean Vector.

Пътища по голям кръг с избягване на времето. Полетните пътища следват сферична интерполация за географска точност и динамично маршрутизират около бурни системи на картата. Спрайтовете на самолетите се накланят в завоите и хвърлят падащи сенки. Това е много математика за козметика, но тя прави света да се усеща реален.

Маршрутизация по голям кръг в действие: самолетите следват реалистични извити пътища през глобуса Маршрутизация по голям кръг в действие: самолетите следват реалистични извити пътища и избягват метеорологични системи.

Картата е увеличена в регион, показващ стила на плочките Retro Dark с детайли в неонов стил Увеличете и OSM-стилните плочки се зареждат в движение. Три стила на картата за избор.


Играта с числата: Икономика на маршрутите

В сърцето на SkyChart е икономически модел, с който сме искрено горди. Всеки маршрут изчислява месечната печалба чрез конвейер, който разглежда:

  • Основно търсене (население на града x икономически множител)
  • Сезонни вариации (12 месечни множителя на град)
  • Инвестиционни бонуси (хотели, голф игрища, концертни зали, тематични паркове)
  • Регионална дипломация (по-добри отношения = повече търсене)
  • Модификатори на събития (войни, петролни кризи, пандемии)
  • Репутация (историята на безопасност и обслужването на клиенти влияят върху търсенето глобално)
  • Конкуренция (търсенето се разделя по резултат на привлекателност, ценообразуване, лоялност, присъствие на хъб)
  • Възраст на самолета (самолети след годината на пенсиониране струват +40% за експлоатация и губят 15% търсене)
  • Цени на горивото (събития от OPEC могат да удвоят променливите ви разходи за една нощ)

Резултатът е система, в която никои два маршрута не играят по един и същи начин, а оптималната мрежа през 1935 г. изглежда нищо като оптималната мрежа през 2005 г.

Тримесечният финансов отчет, показващ приходи, разходи и движеща се графика на печалбата Всяко тримесечие числата разказват историята. Това падане в Q3? OPEC се случи.

Табло Route Performance, показващо маршрути, класирани по печалба с данни за тенденциите Route Performance: всеки маршрут класиран по печалба с тенденциозни спарклайнове. Зеленото е добро. Червеното означава, че е време за трудни решения.


Какво следва

В момента сме на v0.2.17, което във версионирането на SkyChart означава, че сме дълбоко във Фаза 16+ полиране. Основната игра е завършена и много играема. Ето какво е на пистата:

  • UI звукови ефекти и околен саундскейп: кликвания на бутони, премервания на панели, летищна атмосфера
  • Първоначален туториал: водено 12-главно обхождане, така че новите играчи да не учат чрез разбиване (финансово, не буквално… макар също буквално)
  • Подготовка за Steam издание: магазинна страница, интеграция на постижения, облачни запази

Изградихме SkyChart с философията, че управленските симулатори заслужават същата любов към UI, която получават екшън игрите. Всеки тултип, всяка анимация, всяка функция за качество на живота съществува, защото се попитахме: “Какво би накарало нас да не искаме да alt-tab?”


Следете пътуването

SkyChart се разработва от Casey Jones Labs, малко студио с голяма любов към игрите, които ни оформиха. Ако сте израснали, спорейки дали да отворите маршрут до Anchorage или да инвестирате в тематичен парк в Honolulu, тази игра е за вас.

Останете на линия за още дев блогове и дръжте масичките си в изправена позиция.

Екипът на Casey Jones Labs

Главното меню на SkyChart с анимирани самолети, пресичащи фоновата карта SkyChart: Airline Executive, идващ в Steam за Windows, macOS и Linux. Изграден с Godot 4.