Mastodon
← Усі дописи
автор: Casey Jones Labs · 7 хв читання

Створюючи SkyChart: як любовний лист до Aerobiz став повноцінним авіасимулятором

devlogskychartbehind-the-scenes
Цю публікацію перекладено з англійської автоматично. Читати оригінал
Зміст

Є гра 1992 року, що нас зіпсувала. Aerobiz Supersonic на SNES не мала жодного права бути настільки залежною, якою вона була. Купівля аеропортних слотів у Лагосі, ухиляння від нафтових криз, спостереження за тим, як ваші маленькі спрайти літаків повзуть пікселізованою земною кулею, поки ви плели світову домінацію по одному хабу за раз.

Ніхто не зробив справжнього наступника. Тож ми вирішили побудувати його.

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


Пропозиція: “А що, якби в Aerobiz був сучасний UI?”

Базова фантазія проста: ви, це гендиректор молодої авіакомпанії, що конкурує з AI-суперниками в чотирьох історичних епохах (1930-2020). Ви обираєте маршрути, купуєте літаки, інвестуєте у міста, керуєте дипломатією зі світовими регіонами і намагаєтеся не збанкрутувати, коли ОПЕК вирішує зіпсувати всім квартал.

Але там, де Aerobiz давав вам меню і текст, ми хотіли живу карту світу. Дуги великих кіл, погодний радар, цикли дня й ночі, анімації буму міст і спрайти літаків, що нахиляються у поворотах. Те, що змушує вас відкинутися у кріслі й подумати: “Так, я побудував цю мережу”.

Атмосфера, на якій ми зупинилися: високотехнологічне ретро. Неонові лінії свічення на темній карті. Кнопки HUD у формі шестикутників. Рядок новин, який міг би бути з термінала Bloomberg 1990-х. Сучасний UX, загорнутий у цей безпомилковий шарм епохи SNES.

Карта світу вночі з неоновими лініями маршрутів, що перетинаються на земній кулі, поки спрайти літаків прокреслюють траси великих кіл між містами Глобальний вигляд: ваша авіакомпанійна мережа одним поглядом. Кожна світна лінія, це маршрут. Кожна рухома точка, це дохід.


150 міст, 33 літаки, 90 років історії

Поговорімо про масштаб. SkyChart має:

  • 150 міст у 7 світових регіонах (плюс Росія після 1991 року), кожне з реальними демографічними даними, економічними профілями і сезонними кривими попиту. Токіо сплескує в сезон цвітіння сакури. Маямі бумить узимку. Колката досягає піку під час Дурга-пуджі.
  • 33 історично точних літаки від Douglas DC-3 (1936) до Boeing 787 Dreamliner. Кожен має автентичну дальність, швидкість, місткість, експлуатаційні витрати і рік списання. Запустіть DC-3 у реактивну епоху і дивіться, як витрати на обслуговування з’їдають вас живцем.
  • Понад 60 історичних подій, що переформатовують ігрове поле. Велика депресія обвалює попит. Друга світова бомбить Лондон і Берлін (буквально, вам доведеться відбудовувати ці аеропорти). Нафтова криза 1973 року за одну ніч подвоює ваші витрати на пальне. COVID-19 з’являється в 4-й ері і, ну… ви пам’ятаєте.
  • 4 ігрові епохи, кожна з поступово складнішими цілями. 1-ша ера просить вас вижити з гвинтовими літаками і 5 мільйонами доларів. 4-та ера хоче імперію у 2 мільярди доларів, що охоплює всі сім регіонів.

Кожна епоха відчувається як інша гра. Стратегічний розрахунок мережі літаючих човнів 1930-х не має нічого спільного з безжальною війною hub-and-spoke 1990-х.

Екран вибору епохи, що показує чотири історичні епохи з їхніми цілями і стартовими умовами Оберіть свою епоху: кожна, це інша гра з іншими літаками, подіями і умовами перемоги.

Спливаюче вікно історичної події, що оголошує пандемію 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, це автозавантажуваний сінглтон, що обробляє шаруваність у фокусі (клацніть вікно, воно піднімається наверх), збереження позиції/розміру на диск і адаптивне до екрана розмірування. Три рівні: Normal (ігрові панелі), Modal (налаштування, збереження/завантаження) і HUD (завжди поверх).

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

Траси великих кіл з уникненням погоди. Траси польоту йдуть сферичною інтерполяцією для географічної точності і динамічно обходять штормові системи на карті. Спрайти літаків нахиляються у поворотах і відкидають тіні. Це багато математики заради косметики, але це робить так, що світ відчувається справжнім.

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

Карта, наближена до регіону, що показує стиль тайлів Retro Dark з неоновими деталями Збільшуйте, і тайли у стилі OSM завантажуються на льоту. Три стилі карти на вибір.


Гра чисел: економіка маршрутів

У серці SkyChart лежить економічна модель, якою ми справді пишаємося. Кожен маршрут обчислює місячний прибуток через конвеєр, що враховує:

  • Базовий попит (населення міста x економічний множник)
  • Сезонне коливання (12 місячних множників на місто)
  • Інвестиційні бонуси (готелі, поля для гольфу, концертні зали, тематичні парки)
  • Регіональну дипломатію (кращі відносини = більший попит)
  • Модифікатори подій (війни, нафтові кризи, пандемії)
  • Репутацію (запис безпеки й обслуговування клієнтів впливає на попит глобально)
  • Конкуренцію (попит розділяється за оцінкою привабливості, ціноутворенням, лояльністю, хабовою присутністю)
  • Вік літака (літаки після року списання коштують на 40% дорожче в експлуатації і втрачають 15% попиту)
  • Ціни на пальне (події ОПЕК можуть за одну ніч подвоїти ваші змінні витрати)

Результатом є система, де жоден з двох маршрутів не грається однаково, а оптимальна мережа у 1935 році не схожа ні на що на оптимальну мережу у 2005 році.

Квартальний фінансовий звіт, що показує дохід, витрати і графік ковзного прибутку Кожен квартал цифри розповідають історію. Це падіння у Q3? Сталося ОПЕК.

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


Що далі

Ми зараз на v0.2.17, що у версіонуванні SkyChart означає, що ми глибоко в полішингу фази 16+. Основна гра завершена і дуже грабельна. Ось що на смузі:

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

Ми будували SkyChart з філософією, що симулятори управління заслуговують на ту саму любов до UI, що й екшн-ігри. Кожна підказка, кожна анімація, кожна функція якості життя існує, бо ми запитали: “Що змусило б нас не хотіти альт-табнути?”


Слідкуйте за дорогою

SkyChart розробляється Casey Jones Labs, невеликою студією з великою любов’ю до ігор, що нас сформували. Якщо ви виросли, сперечаючись, чи відкривати маршрут до Анкориджу, чи інвестувати у тематичний парк у Гонолулу, ця гра для вас.

Залишайтеся на зв’язку заради більшої кількості дев-блогів і тримайте столики у вертикальному положенні.

Команда Casey Jones Labs

Головне меню SkyChart з анімованими літаками, що перетинають фонову карту SkyChart: Airline Executive, виходить у Steam для Windows, macOS і Linux. Побудовано на Godot 4.