Разработка SkyChart дев-блог №2: пятнадцать версий, одна очень занятая взлётная полоса
Содержание
Когда мы публиковали Дев-блог №1, SkyChart был на v0.2.17, рабочем авиасиме со 150 городами, 33 самолётами и движком, который в основном успевал. Мы сказали, что вернёмся с новостями. Мы не ожидали вернуться с настолько большим количеством новостей.
Пятнадцать версий спустя игра утроила количество городов, удвоила флот, получила полную поддержку контроллеров, капитальный ремонт доступности, системы экономической войны, от которых ОПЕК занервничала бы, и движок рендеринга, который больше не умоляет о пощаде при 1 600 маршрутах. Мы провели некоторое время в ангаре. Давайте проведём вас по изменениям.
Ара студии Casey настаивает, чтобы мы упомянули, что он лично курировал каждое обновление. Не курировал. Он ел грецкие орехи и судил нас.
Ремонт движка, которого никто не видел (но все почувствовали)
Давайте начнём с негламурных вещей, делающих возможным всё остальное.
На v0.2.17 отзум на большой маршрутной сети был… кинематографичен, в худшем смысле. 9 кадров в секунду при 1 600 маршрутах. Карта перерисовывала каждый маршрут каждый кадр. 19 000 отдельных узлов линий делали свою лучшую имитацию слайд-шоу PowerPoint.
Мы перестроили весь движок рендеринга маршрутов с нуля. Один батчевый проход отрисовки заменил тысячи отдельных узлов. Панорамирование карты теперь стоит ноль draw calls, отрендеренное изображение просто сдвигается. Маршруты перерисовываются, только когда сеть действительно меняется. После перестройки: 60 FPS стабильно, даже с тысячами маршрутов, пересекающих глобус.
Мы также приземлили 56 000 невидимых спрайтов самолётов, которые всё ещё жгли CPU каждый кадр, как призрачные пилоты, собирающие сверхурочные. Скрытые самолёты теперь полностью лишаются лицензий на обработку.
Затем мы построили авто-настраиваемый бенчмарк производительности. Нажмите «Запустить бенчмарк» в настройках, и игра стресс-тестит ваш GPU, CPU и текстурный конвейер примерно за 8 секунд, затем авто-настраивает 11 ограничений производительности под ваше железо. Пороги отображения маршрутов, размеры кэша тайлов, плотность погоды, количество потоков рекомендатора, всё калибруется автоматически. Сдвиньте ползунок за рекомендованную зону и получите жёлтое предупреждение. Мы видели, как капитаны игнорировали датчики Casey раньше. Это никогда не заканчивается хорошо.
У вашей авиакомпании теперь есть IT-отдел. Бенчмарк настраивает 11 параметров, чтобы вам не пришлось.
496 городов. 66 самолётов. Бесконечный режим.
Мир стал намного больше.
496 городов теперь на карте, выросло со 150, от Томбукту до Петропавловска-Камчатского (нам понадобилось три попытки, чтобы его произнести). У каждого нового города есть исследованное население на 1930 год, темпы роста, экономические ценности, IATA-коды и реальные координаты аэропорта. 4-уровневая система видимости держит карту читаемой: глобальные хабы всегда видны, малые города появляются только при близком зуме.
Флот тоже удвоился. 66 самолётов теперь заполняют каталог, исторически точные модели от биплана Cortez Condor (1933) через современную эру, плюс спекулятивные будущие конструкции вроде суборбитального транспорта Bering Orbital 1 (2085), экстраполированные от реальных концепций и развивающихся авиатехнологий. Пропеллеры до гиперзвуковых плазменных двигателей. Сейв-файлы из старых версий авто-мигрируют бесшовно, ни один самолёт не потерян, ни одна бумажка не утеряна.
Завершите все четыре эры, и вы разблокируете Бесконечный режим, летайте за 2020 без ограничения по времени и без целей. Водородные реактивные самолёты, смешанные крылья и орбитальные перевозчики ждут в грядущих десятилетиях. Небо больше не предел.
А поскольку не все хотят играть на одной скорости, мы добавили четыре варианта игрового темпа: Arcade (45 секунд на месяц, для нетерпеливых), Standard, Extended и Realtime (30 минут на месяц, для капитанов, которые смакуют каждую кочку). Анимации самолётов подстраиваются под выбранный темп. Самолёты Arcade носятся по карте, как Casey, обнаруживший неохраняемую миску грецких орехов.
Стратегический советник из блога №1 раньше перемалывал 11 175 пар городов. Теперь он перемалывает 122 000+. На фоновом пуле потоков. Не вспотев. Этим мы по-настоящему гордимся.
496 городов. 122 000+ возможных маршрутов. Стратегический советник справляется, чтобы вам не пришлось.
Добро пожаловать в военную комнату
SkyChart всегда был стратегической игрой. Но теперь у него есть соответствующие инструменты.
Двенадцать новых аналитических дашбордов приземлились в исполнительном офисе. Отчёт рисков флота замечает стареющие самолёты до того, как они станут пресс-папье. Прогноз денежного потока проектирует ваш банковский баланс на 12 месяцев вперёд с ползунками сценариев. Поиск насыщения пар городов ранжирует все 122 000+ пар городов по оценке возможностей, чтобы вы перестали залетать в ножевые бои. Оценка угрозы конкурентов профилирует стратегию расширения каждого соперника и пересечение с вашей сетью.
Затем мы вас вооружили.
Полная экономическая война прибыла в v0.2.28 и полностью изменила ощущение игры. Региональные экономики теперь ежемесячно переживают бумы и спады. Города входят в многоквартальные золотые лихорадки (+40% спроса) или спады перенасыщения (-30%). Динамические рыночные шоки ударяют ежеквартально: топливные кризисы, крахи хабов, глобальные рецессии, мегаслияния авиакомпаний.
Специализация хабов позволяет объявлять хабы как грузовые, туристические или деловые для +20% к соответствующему спросу. Ценовые войны запускаются автоматически, когда вы подрезаете соперника на оспариваемых маршрутах. 1,5x издержки, +20% спроса, чистый адреналин. Доминируйте 40%+ региона, и ИИ-соперники запускают 6-месячные хищнические рыночные войны, подрезая всё и уводя ваши лучшие города.
Запечатанные слотовые аукционы заменили систему «кто первый встал, того и тапки». Code-share альянсы с реальным разделом выручки. Корпоративный шпионаж: наймите информаторов для трёх уровней разведки, от маршрутных данных до полной финансовой отчётности и прямого корпоративного воровства. Соперники шпионят в ответ. Кодовое имя Casey «Tropical Thunder», и он отказывается его менять.
Квартальный отчёт о прибылях только что стал брифингом на поле боя.
Двенадцать новых дашбордов. Энергия терминала Bloomberg для вашей авиационной империи.
Кокпит, на котором может лететь каждый
В блоге №1 упоминалась поддержка контроллеров как позднее добавление. Теперь это флагманская фича.
Полная интеграция API Steam Input означает, что каждый контроллер Xbox, PlayStation, Switch и Steam Deck автоматически поддерживается с правильными значками кнопок. Не общие заглушки, а точные иконки для вашего контроллера. Три контекстно-чувствительных набора действий бесшовно переключаются по мере навигации. Экранная QWERTY-клавиатура авто-появляется для пользователей контроллеров при фокусе на любом текстовом поле. Каждая панель откликается на ввод с геймпада.
98 достижений Steam полностью подключены, от «Первый полёт» до «Каждое кресло, каждый город». 15 статистик Steam синхронизируются с вашим профилем. Закладки Steam Timeline фиксируют ваши величайшие моменты для Steam Replay. Глобальные и локальные таблицы лидеров позволяют сравнивать вашу империю с миром.
Но обновление, которым мы больше всего гордимся, это доступность.
Пять дальтонических режимов отображения: Normal, Deuteranopia, Protanopia, Tritanopia и Achromatopsia. Три уровня контраста. Ползунок размера текста от 80% до 150%. Поддержка скринридера через text-to-speech. Переключатель Reduce Motion, замораживающий новостной тикер и пропускающий плавающие анимации.
И вот цифра: 866 захардкоженных вызовов Color() заменены. Каждая UI-панель во всей игре (управление флотом, эффективность маршрутов, стратегическая разведка, поглощения, альянсы, настройки, выбор сложности, выбор эры, условие победы, музыкальный плеер, таблица лидеров, всё) теперь маршрутизирует свои цвета через централизованную AccessibilityPalette. Дальтонические режимы и настройки контраста работают везде, на каждой панели, в реальном времени. Перезапуск не требуется.
Casey протестировал все пять дальтонических режимов и обнаружил, что годами читал топливомер неправильно.
Пять дальтонических режимов, три уровня контраста и 866 переписанных вызовов цвета. Кокпит теперь для всех.
Владей или арендуй
Ещё на v0.2.17 мы выпустили систему, которая тихо изменила игровой процесс: лизинг самолётов.
Нет наличных, но нужно открыть маршрут? Арендуйте самолёт. Срок 1, 3 или 5 лет. Короткие сроки стоят больше в месяц, но дают гибкость. Лизинги истекают и авто-приостанавливают маршрут, пока вы не продлите, не выкупите или не уйдёте. ИИ-соперники тоже лизингуют, как настоящие бюджетные перевозчики.
Вместе с лизингом пришёл полноценный ангар самолётов. Собственные самолёты теперь сохраняются при снятии с маршрутов, а не растворяются в воздухе. Храните их, используйте снова или продайте по амортизированной рыночной стоимости. Ремонт самолётов позволяет продлить срок службы прибыльного самолёта на 10 лет за 30% его цены.
Мы также выпустили прогрессию эр: более высокие эры заблокированы, пока вы не завершите предыдущую. Освойте Зарю полётов перед тем, как браться за Реактивную эру. Пройдите любую эру в режиме Passengers, и вы разблокируете Cargo. Пройдите Cargo, разблокируйте Combined. Завершите первую эру, и откроется Песочница. Никакого банкротства, никакого давления времени, просто стройте.
Чёрный ящик, Spotify и всё остальное
Быстрый круг всего остального, что делает игру лучше:
Поддержка Epic Games Store. Новая абстракция PlatformManager маршрутизирует достижения, статистики, таблицы лидеров и облачные сохранения в тот магазин, из которого вы вылетаете. Одна кодовая база, несколько терминалов.
Black Box Recorder. Менеджер миграций теперь запускается до подключения Steam, восстанавливая ценности компании из ваших сейв-файлов и очищая плохие данные таблицы лидеров. Каждое сохранение маркирует версию игры. Карьерные статистики навсегда логируют каждое завершение эры. Пожизненные счётчики отслеживают построенные хабы, сделанные инвестиции, закрытые поглощения, сформированные альянсы и пережитые торговые войны.
Spotify авто-подключается при запуске. Если вы уже аутентифицированы, музыкальный плеер продолжает с того места, где вы остановились. Больше не нужно повторно прокатывать посадочный талон каждую сессию.
Слоты сохранений расширены с 5 до 10 с цветными пилл-тегами (сложность, игровой режим, песочница) и реальными таймстемпами. HUD реорганизован: Routes & Fleet, Company и новый выпадающий Rivals с заголовками разделов. Всплывающие уведомления теперь каскадируются вертикально вместо невидимого стекания друг на друга. А 14 новых клавиатурных шорткатов покрывают каждую стратегическую панель.
Даже мелкие детали получили внимание: инвестиции в углеродную компенсацию теперь заблокированы до 2005 года (никто не компенсировал углерод в эпоху пропеллеров), грузовой режим показывает тонны и тарифы вместо «пассажиров», а диалог выхода теперь предлагает авто-сохранение перед уходом.
Разрешено на заход
Мы сейчас на v0.2.32.10. Игра, которая была «завершённой и очень играбельной» на v0.2.17, стала чем-то значительно большим: 496-городовым, 66-самолётным, контроллеро-нативным, доступно-ориентированным симом авиационной империи с экономической войной, корпоративным шпионажем и движком производительности, справляющимся со всем этим на 60 FPS.
Вот что на взлётной полосе:
- Саунд-дизайн: UI-эффекты, фоновые звуки аэропорта, удовлетворяющий клик каждой кнопки
- Туториал: направляемый опыт первого полёта, чтобы новым игрокам не приходилось учиться через банкротство
- Страница в Steam: достижения, облачные сохранения и финальный толчок к релизу
Мы всё ещё строим SkyChart с той же философией: менеджмент-симы заслуживают такой же полировки, какую получают экшен-игры. Каждый тултип, каждая анимация, каждая опция доступности существует, потому что мы спрашивали себя, что заставит нас не хотеть альт-табнуть.
Спасибо, что следите за путешествием. Держите откидные столики поднятыми, а маршрутные сети прибыльными.
Команда Casey Jones Labs
Casey говорит, что хочет повышения и угловой офис. Он уже получил своё имя на заставке и не даёт нам об этом забыть. Он получает больше грецких орехов.
SkyChart: Airline Executive, выходит в Steam для Windows, macOS и Linux. Построен на Godot 4.