Изграждайки SkyChart: Как любовното писмо към Aerobiz се превърна в пълноценен авиационен симулатор
Съдържание
Има една игра от 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-те.
Изберете си ерата: всяка е различна игра с различни самолети, събития и условия за победа.
Историята не се повтаря, но наистина повишава разходите ви за гориво.
AI, който наистина играе обратно
Едно нещо, с което отказахме да доставим, беше мозъчно мъртъв AI. Съперническите авиокомпании на SkyChart не просто произволно се разширяват. Те имат домашни региони, претеглен избор на маршрути, базиран на данни за населението и икономиката, тримесечни корекции на цените, надграждания на флота, когато самолетите се пенсионират, и стратегии за инвестиции в хъб.
Те подбиват цените ви по оспорвани маршрути. Купуват летищни слотове в градове, които сте наблюдавали. Дори лизинговат самолети, когато са с малко пари, точно както би правил реален бюджетен превозвач.
А в Ера 4, ако сте изградили империя, с която те не могат да се конкурират? Те може просто да станат цел за придобиване. Едно враждебно придобиване на ера. Техните маршрути, слотове и хъбове, всичко ваше. За цена.
Познавайте врага си: панелът 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. Защото какво е да управляваш авиокомпания без добър плейлист?
Вашата кабина, вашето разположение. Всеки панел е плъзгащ се, преоразмерим и помни къде сте го оставили.
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.
Пътища по голям кръг с избягване на времето. Полетните пътища следват сферична интерполация за географска точност и динамично маршрутизират около бурни системи на картата. Спрайтовете на самолетите се накланят в завоите и хвърлят падащи сенки. Това е много математика за козметика, но тя прави света да се усеща реален.
Маршрутизация по голям кръг в действие: самолетите следват реалистични извити пътища и избягват метеорологични системи.
Увеличете и OSM-стилните плочки се зареждат в движение. Три стила на картата за избор.
Играта с числата: Икономика на маршрутите
В сърцето на SkyChart е икономически модел, с който сме искрено горди. Всеки маршрут изчислява месечната печалба чрез конвейер, който разглежда:
- Основно търсене (население на града x икономически множител)
- Сезонни вариации (12 месечни множителя на град)
- Инвестиционни бонуси (хотели, голф игрища, концертни зали, тематични паркове)
- Регионална дипломация (по-добри отношения = повече търсене)
- Модификатори на събития (войни, петролни кризи, пандемии)
- Репутация (историята на безопасност и обслужването на клиенти влияят върху търсенето глобално)
- Конкуренция (търсенето се разделя по резултат на привлекателност, ценообразуване, лоялност, присъствие на хъб)
- Възраст на самолета (самолети след годината на пенсиониране струват +40% за експлоатация и губят 15% търсене)
- Цени на горивото (събития от OPEC могат да удвоят променливите ви разходи за една нощ)
Резултатът е система, в която никои два маршрута не играят по един и същи начин, а оптималната мрежа през 1935 г. изглежда нищо като оптималната мрежа през 2005 г.
Всяко тримесечие числата разказват историята. Това падане в Q3? OPEC се случи.
Route Performance: всеки маршрут класиран по печалба с тенденциозни спарклайнове. Зеленото е добро. Червеното означава, че е време за трудни решения.
Какво следва
В момента сме на v0.2.17, което във версионирането на SkyChart означава, че сме дълбоко във Фаза 16+ полиране. Основната игра е завършена и много играема. Ето какво е на пистата:
- UI звукови ефекти и околен саундскейп: кликвания на бутони, премервания на панели, летищна атмосфера
- Първоначален туториал: водено 12-главно обхождане, така че новите играчи да не учат чрез разбиване (финансово, не буквално… макар също буквално)
- Подготовка за Steam издание: магазинна страница, интеграция на постижения, облачни запази
Изградихме SkyChart с философията, че управленските симулатори заслужават същата любов към UI, която получават екшън игрите. Всеки тултип, всяка анимация, всяка функция за качество на живота съществува, защото се попитахме: “Какво би накарало нас да не искаме да alt-tab?”
Следете пътуването
SkyChart се разработва от Casey Jones Labs, малко студио с голяма любов към игрите, които ни оформиха. Ако сте израснали, спорейки дали да отворите маршрут до Anchorage или да инвестирате в тематичен парк в Honolulu, тази игра е за вас.
Останете на линия за още дев блогове и дръжте масичките си в изправена позиция.
Екипът на Casey Jones Labs
SkyChart: Airline Executive, идващ в Steam за Windows, macOS и Linux. Изграден с Godot 4.