Star Citizen | Inside CIG: Siege of Orison на русском

Inside CIG: как Alpha 4.10 доводили до релиза


В новом выпуске Inside CIG разработчики подробно показали, как проходила финальная подготовка Alpha 4.10: Осада Orison, почему инстансы оказались одной из самых сложных технологий обновления и с какими проблемами команда столкнулась во время тестирования на PTU.


Инстансы — один из шагов к Dynamic Server Meshing


Разработчики подчёркивают, что сама идея инстансов давно существует в других MMO. Основная сложность заключалась в том, чтобы встроить её именно в архитектуру Star Citizen, сохранив ощущение единого бесшовного мира. Даже находясь внутри отдельного инстанса, игрок всё ещё остаётся частью общего мира: время суток продолжает идти синхронно с окружающей вселенной, поэтому миссия может начаться ночью и закончиться уже днём, а после возвращения в обычную зону не происходит никакой резкой смены времени или загрузочного перехода.


С технической точки зрения инстансы стали первым практическим применением системы, которая динамически запускает дополнительные игровые серверы под конкретную активность. Разработчики называют это одним из первых шагов к будущему полностью динамическому Server Meshing.


Почему Осада Orison стала инстансовой


Старая версия Осады Orison представляла собой масштабную открытую активность с большим количеством игроков. Это хорошо соответствовало духу Star Citizen, но одновременно создавало много хаоса и непредсказуемых ситуаций. Новая версия изначально проектировалась как более управляемая кооперативная миссия для небольшой группы. Инстанс позволяет разработчикам точно понимать, откуда игроки войдут, как будут двигаться по локации и где происходят ключевые столкновения.


Благодаря этому стало возможно лучше контролировать темп прохождения, усилить постановку, добавить больше сюжетных элементов и заранее размещать противников в конкретных точках. Например, теперь снайперов можно поставить именно туда, где они нужны по дизайну миссии. Раньше размещение ИИ сильнее зависело от стандартных точек появления — так называемых spawn closets. Основной упор новой Осады Orison сделан не на огромное количество противников, а на заранее подготовленные боевые ситуации.


Крис Робертс отдельно затронул вопрос PvE и PvP. По его словам, Star Citizen должна оставаться максимально свободной игрой, где игрок сам решает, чем заниматься: PvE, PvP, добычей, утилизацией, торговлей или просто исследованием мира. Инстансы позволяют создавать PvE-контент, в котором игрокам не приходится опасаться вмешательства других игроков. При этом в игре останутся открытые зоны вроде Contested Zones, где столкновение с другими игроками является частью риска. Робертс также отметил, что в Star Citizen не должно существовать традиционного «состояния победы» — это должна быть вселенная, в которой можно проводить время одному или с друзьями и проходить контент в собственном темпе.


Почему Alpha 4.10 задержалась


Разработчики говорят об этом прямо: патч долго не выпускали потому, что он не был готов. Изначально Осада Orison должна была выйти ещё в Alpha 4.9, однако её убрали из той версии из-за технического состояния. После переноса в 4.10 команда всё равно столкнулась с серьёзными проблемами при масштабировании, а в какой-то момент перед релизом оставалось около 120 ошибок, которые требовалось закрыть или как минимум повторно проверить.


Основная сложность заключалась в том, что внутренние тесты плохо показывают поведение системы под настоящей нагрузкой. Даже PTU зачастую не даёт того количества одновременно подключённых игроков, которое возникает на LIVE. Поэтому одной из главных задач последних этапов тестирования было максимально заполнить шарды и инстансы и посмотреть, как система ведёт себя при высокой нагрузке.


Одной из серьёзных проблем стала работа heartbeat и отслеживания игроков внутри инстансов. В некоторых случаях система ошибочно считала инстанс неактивным, после чего тот мог фактически исчезнуть. Разработчики неоднократно возвращались к этой проблеме, вносили изменения и затем повторно проверяли связанные с ней ошибки.


Отдельный класс проблем возникал из-за возможности квантового перелёта к участнику группы, который уже находился внутри инстанса. Игрок мог выбрать такого товарища как цель маршрута и попытаться прыгнуть к нему напрямую. В итоге систему изменили: теперь при попытке квантового перелёта к игроку внутри инстанса цель считается недоступной. Чтобы присоединиться к миссии, необходимо пройти обычный путь — добраться до нужной точки и войти через предусмотренный переход.


Десинхронизация, ИИ и постоянное тестирование


Во время массового тестирования разработчики получили довольно тревожные данные по производительности и синхронизации. Особенно часто игроки сообщали о проблемах с NPC: противник мог стрелять в игрока, визуально смотря совершенно в другую сторону. Изначально такие случаи воспринимались как обычный десинк ИИ, но часть тестов проходила на серверах с очень высокой частотой кадров, поэтому стало понятно, что проблема сложнее обычной нехватки серверной производительности. Тестирование не только подтвердило уже известные ошибки, но и выявило множество новых, что серьёзно усложнило финальную подготовку патча.


Отдельно тестировался финальный противник Осады Orison — Mendo Ren. В одной из сборок он оказался практически стопроцентно точным, что вызвало много проблем при прохождении. Разработчики изменили его параметры, после чего QA отдельно проводила тесты группой из четырёх человек, вдвоём и в одиночку. После внутренних проверок изменения снова отправлялись игрокам на PTU, поскольку именно массовое тестирование должно было показать, насколько хорошо работает финальный баланс.


Во время финальной стадии Alpha 4.10 QA иногда приходилось проверять шесть–семь сборок за один день. Разработчик вносил исправление, QA сразу проверяла его, возвращала результат, после чего могла появиться ещё одна версия. При крупных изменениях движка иногда приходилось заново проверять большое количество уже известных ошибок, потому что одно изменение могло повлиять сразу на несколько систем. В выпуске этот процесс фактически описывают как постоянный цикл: сборка → наблюдение → обсуждение → расстановка приоритетов → исправление → новая сборка. Именно этим во многом объясняется ощущение «два шага вперёд, один назад» во время PTU.


Производительность Alpha 4.10


Отдельное внимание уделялось производительности клиента. Команда ежедневно собирала телеметрию и сравнивала результаты каждой новой сборки с предыдущей, поэтому даже небольшие оптимизации можно было увидеть в цифрах и понять, дали ли они реальный эффект.


Одним из примеров стала работа с графическими материалами Осады Orison. Разработчики находили объекты, использовавшие дорогие эффекты прозрачности и преломления там, где это было совершенно не нужно. После изменения материала визуально объект мог выглядеть практически идентично, но вычислительная нагрузка заметно снижалась. Перед релизом также отключили часть внутренних инструментов диагностики, которые используются разработчиками для анализа памяти и многопоточности. Эти инструменты сами по себе потребляют ресурсы, поэтому их отключение перед финальной сборкой дало дополнительный прирост производительности.


Рекко Батталья и будущее инстансов


Офис Рекко Баттальи стал ещё одним применением новой технологии. Игрок проходит через переход и попадает в отдельный инстанс, где может спокойно взаимодействовать с персонажем без толпы других игроков вокруг. По словам разработчиков, это позволило сделать встречу более контролируемой и сюжетной. В будущем они рассматривают возможность создавать и более крупные социальные инстансы, чтобы подобные пространства не всегда ощущались полностью изолированными. Рекко также стала первым за долгое время полноценным физическим персонажем, выдающим задания, и позволила глубже раскрыть историю Nyx.


При этом нынешняя Осада Orison — лишь один из первых вариантов использования технологии. Сейчас игрок входит в инстанс, после чего автоматически получает находящуюся внутри него миссию. В дальнейшем разработчики хотят сделать обратную схему: игрок сначала принимает контракт, а уже этот контракт определяет содержимое создаваемого инстанса. Например, миссия сможет влиять на планировку локации, состав противников и другие параметры. По сути, речь идёт о возможности создавать динамические сценарии, содержание которых зависит от конкретного задания.


Почему новые функции ломают старые


Разработчики отдельно объяснили понятие «стоимости поддержки LIVE». Любая новая технология, функция или контент создаёт цепную реакцию по всему проекту. Даже если какая-то система до этого работала нормально, новая функция может неожиданно сломать её из-за большого количества взаимосвязей.


Именно поэтому работа над Star Citizen не ограничивается тестированием нового контента. QA, Production и LIVE-команды должны постоянно проверять уже существующие системы и следить, чтобы новая версия не стала хуже предыдущей. Один из разработчиков поясняет: если взять одну конкретную сборку и больше никогда её не менять, существующие ошибки в ней останутся, но новые уже не появятся. Однако каждый новый элемент проекта неизбежно затрагивает другие части игры.


Игроки фактически участвуют в QA


Команда активно следит не только за Issue Council. Разработчики читают Spectrum, Reddit и Discord, смотрят Twitch и YouTube и наблюдают за прохождением новой версии практически в реальном времени. Если стример во время трансляции сталкивается с новой проблемой, разработчики могут сразу увидеть её и оценить, насколько широко она распространяется.


Issue Council при этом остаётся ключевым источником подробной технической информации. QA берёт отчёты игроков, добавляет к ним внутренние логи, данные отладки и технический контекст, а затем передаёт разработчикам уже более полный пакет информации.


QA отдельно подчёркивает, что главная проблема внутреннего тестирования — невозможность полностью воспроизвести настоящий LIVE. Одно дело запустить систему внутри студии, другое — дать её серверу с сотнями игроков и тысячами одновременно выполняющихся процессов. Именно поэтому разработчики сознательно помещают большое количество контента на новые технологии уже на раннем этапе: если в фундаменте системы есть серьёзная проблема, лучше обнаружить её сразу, а не спустя несколько обновлений.


Финальное решение о релизе


После успешного тестирования на выходных разработчики пришли к выводу, что технология инстансов стабилизировалась. Критические и блокирующие ошибки, которые мешали релизу, больше не воспроизводились. Оставалось несколько отдельных проблем, но основное состояние Alpha 4.10 команда уже считала лучше Alpha 4.9.


Во время одного из последних совещаний разработчики отмечают, что патчноуты получились огромными и в обновление вошло очень много исправлений. После проверки последней важной правки было принято решение выпускать сборку на LIVE. По словам команды, к этому моменту PTU на выходных прошёл успешно, технология стабилизировалась, а критические и блокирующие проблемы больше не проявлялись.


Открытая разработка и конечная цель Star Citizen


В заключительной части выпуска команда говорит о том, насколько сильно разработка Star Citizen отличается от традиционной разработки игр. Обычная игра может годами создаваться внутри студии и выйти только после завершения основной работы. Star Citizen постоянно находится перед игроками, а каждая новая система должна не только разрабатываться, но и сразу интегрироваться в существующий работающий мир. Разработчики признают, что такой подход создаёт дополнительное давление и усложняет работу, но одновременно позволяет получать огромное количество обратной связи непосредственно от игроков.


Крис Робертс возвращается к первоначальной идее открытой разработки, с которой проект стартовал ещё в 2012 году: не закрывать двери студии до релиза, а показывать сообществу сам процесс создания игры. Главной целью Star Citizen он по-прежнему называет свободу — бесшовную вселенную, где игрок может от первого лица сесть в полностью интерактивный корабль, взлететь, увидеть в небе луну, долететь до неё и приземлиться без загрузочного экрана, а затем заниматься тем, чем хочет.


По словам Робертса, именно такая степень свободы, детализации и связности требует огромного количества специализированных технологий и объясняет сложность разработки. Команда признаёт, что впереди остаётся ещё много работы, но Alpha 4.10 рассматривается как ещё один важный шаг к конечной цели — большой, бесшовной и полностью погружающей вселенной Star Citizen на пути к версии 1.0.