Вокруг Вселенной - новости из студии в Остине

Вокруг Вселенной - новости из студии в Остине

Вокруг Вселенной - новости из студии в Остине

Первый эпизод обновленного "Вокруг Вселенной" в новом формате

Видео:


Текстовый транскрипт:

Спойлер

Вступление

Сэнди Гардинер (СГ): Привет и добро пожаловать на очередной эпизод Вокруг Вселенной - наш еженедельный взгляд на разработку Star Citizen. Я Сэнди Гардинер.

Крис Робертс (КР): А я Крис Робертс.

СГ: Чтобы предоставить вам более глубокий взгляд на то, чем мы занимаемся, у нас теперь новый формат Вокруг Вселенный, посвященный одной тематике на эпизод. Каждый месяц мы будем переключаться между новостями из одной из наших студий, новой информацией о Постоянной Вселенной Star Citizen, Squadron 42 и выпуском Ship Shape.

КР: Ага, с нетерпением жду этого. Думаю, что это позволит нам сильнее углубиться в некоторые вещи, чем в некоторых из наших прошлогодних AtV. Также в этом году мы представим парочку новых шоу. «Призыв к разработчикам» - новая серия Вопросов-Ответов, эволюционировавшая из Десяток Председателю, Десяток Продюсерам и так далее. А также восставшую из мертвых Reverse the Verse, которая станет еженедельным ток-шоу, где наши разработчики будут обсуждать последние выпуски Вокруг Вселенной и прочие новости о Star Citizen. Думаю, что это будет весело и интересно.

СГ: Да, и первым гостем в Reverse the Verse? которая будет транслироваться завтра в полдень, будет Эрин Робертс.

КР: В дополнение к новым шоу мы переработали бонусы для Подписчиков на основе отзывов сообщества.

СГ: Да, и мы начинаем выдавать бонусы нового года начиная с сегодняшнего дня и серии фигурок для ангаров от Takuetsu. Фигурка января – воин Вандууулов, а для обладателей Императорской подписки доступен особый вариант.

КР: Ага, и они очень крутые. В новостях из студий на этой неделе мы направимся в Остин, Техас, где команда недавно завершила работы по релизу Star Citizen Alpha 3.0.

СГ: Давайте взглянем, что потребовалось для релиза последнего обновления Постоянной Вселенной.

Новости из Остина

Тайлер Уиткин (ТУ): Привет всем, с вами Тайлер Уиткин, ведущий коммьюнити-менеджер, из студии в Остине, Техас. И ко мне присоединился директор Постоянной Вселенной Тони Зуровец. Тони, как поживаешь?

Тони Зуровец (ТЗ): Хорошо.

ТУ: Отлично. Мы завершили 2017 год релизом Star Citizen Alpha 3.0 на лайв сервера, и очень многое просходит за кулисами при совершении чего-то подобного. Так что давай немного поговорим о выпуске 3.0.

ТЗ: Вероятно, все оказалось несколько сложнее, чем нам хотелось бы. Мы бы хотели завершить все на несколько месяцев раньше… И в конечном итоге плавно подойти к концу года. Но в итоге все свелось к тому, что было множество споров о том, стоит ли нам вырезать некоторые важнейшие составляющие из 3.0 и переносить их на 3.1. Но мы действительно хотели убедиться в том, что у нас есть базовый каркас для всех будущих геймплейных улучшений в серии релизов 3.х на квартальной основе в следующем году.

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

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

Это не значит, что это все, к чему мы стремимся, потому что мы всегда нацелены довольно агрессивно в плане того, что мы хотим выпустить, ибо мы хотим все это увидеть в игре как можно скорее так же, как и сообщество. И мы всегда стараемся превозмочь себя несмотря на то, считаем ли мы эту задачу простой или сложной в исполнении, мы всегда хотим идти еще дальше и попробовать что-то. И иногда мы забегаем вперед и раскрываем эти более агрессивные планы сообществу.

Я думаю, что мы будем несколько консервативны в новом году, определённо в плане планирования и прочего, и сама концепция перехода к релизам, привязанным к датам, противопоставленная привязке к контенту, значительно поменяет, думаю, вообще все в новом году. Суть в том, что мы не задержим целую версию из-за одного-двух элементов, которые еще не совсем готовы. Мы выдадим то, что уже имеем. Что в свою очередь сделает игру… каждая из этих итераций будет значительно двигать наполнение игры вперед. И мы сможем выдавать сообществу новейшие и лучшие элементы игры как можно скорее, но, если будут какие-то отклонения, переносить, скажем, с 3.1 на 3.2, так что эти вещи игроки увидят спустя несколько месяцев.

ТУ: Ага, и сообщество действительно радо этому.

ТЗ: Мы тоже. Очень тяжело с точки зрения разработки, когда слишком много вещей готовятся одновременно. Как я говорил, 3.0 было чем-то вроде аномалии, так как мы действительно хотели получить, как я уже сказал, структурную базу игры. И мы не хотели оставлять за бортом какие-то элементы. И в конце концов мы релизнули это, хотя все еще недостает некоторых важных элементов инфраструктуры, с которыми мы планируем разобраться в 3.1 или 3.2.

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

Итак, теперь у нас есть базовая структура и, определенно, потенциал для внедрения небольших отдельных кусочков тут и там по мере движения от одного релиза 3.х к другому.

ТУ: Но это не остановит поток контент.

ТЗ: Не остановит поток контента и влияние будет более локальным, чем если бы нам не хватало действительно значительного куска системы.

ТУ: Определенно. Ты немного рассказал о релизе 3.0 и насколько это сложно. А с какими трудностями вы столкнулись, скажем, в конце декабря?

ТЗ: Чтож, я уже упомянул парочку. Динамические цены находились в разработки буквально до конца года. Мы проводили некоторые рудиментарные тесты за несколько недель до внедрения в игру, но отставали примерно на две недели до того, как все наконец начало собираться воедино.

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

ТУ: Ага, это никогда не перестает меня удивлять. Все время, когда я находился в студии, я постоянно видел людей, говоривших, практически умолявших: «Можно я останусь? Давайте выпустим это!». И это реальное доказательство того, что мы хотим увидеть эту игру так же, как и наше сообщество.

ТЗ: Да. И это на самом деле интересно, так как под конец все хотят предстать в хорошем свете, все хотят убедиться, что то, над чем они работают, будет максимально тепло встречено сообществом. Но как компания мы стараемся завершить столь много вещей, что реально приходится брать в расчет целые части проекта и говорить: «Окей, хватит, мы не можем больше рисковать подкручиванием этого, так как можем что-то дестабилизировать». И мы собираем эти релизные билды и стараемся сократить до минимума количество значительных проблем.

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

ТУ: Жестко фиксированные даты поквартальных релизов должны действительно помочь с организацией всего процесс.

ТЗ: Да, да. Даты изменят все по сравнению с патчем 3.0, который остается просто колоссальным релизом. Никогда не было сомнений или вопросов на этот счет. Когда речь идет об интеграции множества новых технологий, которые еще не обрели финальной формы.

Все еще остается множество проблем с имплементацией и, определенно, вам довелось увидеть некоторые из побочных эффектов вроде «Чтож, когда вы наконец все собрали воедино, какова будет производительность? Ох, производительность не оптимальна. Окей, у нас есть очень сжатые сроки на то, чтобы заставить все работать как должно». И не то чтобы мы не видим проблем. И не то чтобы мы не хотим их исправлять. Просто к тому времени, как мы наконец заставили все элементы взаимодействовать и работать, смогли их протестировать, времени оставалось все меньше. Очевидно, что на стороне производительности улучшения грядут в 3.1. Фокус этого патча будет сосредоточен на улучшении кадровой частоты, поиску источника самых больших проблем в плане серверной и клиентской кадровой частоты и их решению, чтобы улучшить пользовательский опыт.

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

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

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

ТУ: Что потрясающе. Еще многие люди из сообщества заметили, что у нас выходили некоторые фиксы и изменения во время праздников, когда команда должна была быть вне офиса. Что порождает вопрос: «Как эти изменения происходили?», ибо иногда фиксы и изменения требуют патча, а иногда нет. Как это работает?

ТЗ: Ага. Причина, по которой мы смогли повлиять на некоторые значительные изменения в игре по паре специфических проблем, заключается в том, что эти определенные проблемы контролировались сервисами на стороне бэкенда, а не самой игрок как таковой. Игра отвечает за, я бы сказал, симуляцию высокой точности, но получает много информации от этих сервисов на стороне бекенда. И это вроде того, как… Например, в плане шоппинга: игровой сервер сам по себе не знает, какова цена чего-либо. Он не знает, где должны продаваться определенные товары, в каком магазине. Он не знает, каково должно быть их количество. Он не знает, каков относительный спрос. Он не знает ни о чем из этого, все это целиком контролируется на стороне бэкенда.

И игра понимает, когда нужно запросить определенные куски этой информации, и знает, когда показать ее игроку, позволяя сделать выбор. А затем она знает, как воплотить последствия этого выбора, отослав их обратно в сервисную инфраструктуру, чтобы там отразился желаемый результат. И если говорить о том, над чем мы работали на кануне/во время Рождества, то там были вещи среди сценариев миссий окружения, которые контролировались через сервис зон вероятности, и проблема заключалась в том, что мы сталкивались с тем, что некоторые из этих сценариев не очищались как должно. Они висели на сервере слишком долго, и все, что нам потребовалось, это подправить вероятности некоторых вещей, что сделало их появление несколько менее вероятным. Ну и, знаете, уменьшили количество кораблей в некоторых сценариях. И в конечном итоге это дало функционалу очистки, работающему на сервере, несколько больше времени перед средним появлением новых сценариев. По сути это несколько выправило очередь спроса в любом заданном промежутке времени. И интересно все это еще и тем, что мы переносим все больше функционала такого рода с серверов на бэкенд-сервисы. Это делает обновление гораздо проще, так как нам фактически не нужно создавать большой, гигантский билд всей игры, прогонять его через QA, проводить более масштабные тесты. Мы просто можем тестировать все гораздо уже, так как версия игры остается прежне, а мы лишь подстраиваем сервер, подправляем данные, которыми оперирует сервер.

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

И в ближайшем будущем мы стремимся к модели, когда есть солнечная система и сотни и сотни различных серверов, каждый из которых знает о ключевых элементах: расположении звезды, планет, расположении ключевых точек, том, что может видеть игрок и с чем может в любом момент взаимодействовать. Но в основном все их (серверов) внимание будет сконцентрировано лишь на небольшой локальной зоне, которая им отведена, что даст нам множество преимуществ в плане производительности, а также в плане еще целого множество прочих вещей. И тогда приходит понимание того, зачем нам все это нужно. Представьте, что есть сервер, и он знает лишь о нескольких ключевых элементах звездной системы, но большая часть данных относится к локальной зоне, которую представляет сервер. Но если внезапно игрок решает отправиться с этого сервера в дальний уголок системы, ему необходимо будет, например, запрашивать все зоны вероятности, разбросанные по гигантскому пространству.

И проблема в том, что сервер не обладает данными об всех этих зонах, а потому нам действительно необходима система более высокого уровня, которая и обладает этими данными, знанием определенной структуры данных до того масштаба, который необходим. И, как я говорил, проблема в том, что то, что нас беспокоит на стороне бекенда обычно отличается от того, чему уделяли внимание на стороне самой игры. Сторона игры, как я говорил, сконцентрирована на симуляции высокой точности, а бэкенд же скорее про макроконцепции.

ТУ: Окей, здорово. Ты все упоминаешь зоны вероятности. Я часто слышал упоминания этого термина. Та что же это такое?

ТЗ: Зона вероятности – это в действительности лишь зона в пространстве, которая отвечает за то, что там может увидеть игрок. Что я имею в виду… Много ли пиратов в округе? Должны ли вы видеть множество транспортных кораблей, снующих туда-сюда? Откуда они должны прилетать и куда направляться? Если они движутся в одну сторону, то должны ли быть загружены? Если в другую – должны ли быть пусты? Если они куда-то движутся и у них есть груз, то какой тип груза должен быть?

Все это продиктовано этими зонами вероятности, и то, как в общих чертах работает поток, это дизайнеры создают так называемые сценарии миссий окружения. Мы называем их просто миссиями. Это не задания, о которых вы бы обычно подумали, когда вы должны принять что-то и существует какая-то определенная награда, которую вы получите. Когда мы говорим про сценарии миссий окружения, то мы имеем в виду просто происшествия в мире вокруг вас. Первый шаг – дизайнеры создают все эти сценарии миссий окружения, а затем присваивают каждому из сценариев разнообразные ключевые метки, чтобы отметить, какой контент они содержат. Они также могут добавлять различные правила и требования для каждого из этих сценариев, а сами сценарии могут быть связаны с каждой из этих зон. И мы можем фактически выставить вероятность срабатывания определенного типа сценария, а также они могут быть скомбинированы. Может быть зона, которая отмечена как для пиратов, так и для перевозчиков груза.

ТУ: То есть, имеет ли смысл встреча с пиратами в этой зоне?

ТЗ: Ага, а затем мы можем логично скомбинировать эти вещи прямо или косвенно. Под этим я имею в виду то, что если есть пираты и грузоперевозчики, то будет вполне естественно, что вы будете видеть множество обломков, так как какие-то пираты взорвали грузовые корабли. А если в этой системе есть силы правопорядка, то тогда, учитывая масштабы космоса, вероятность того, что вы столкнетесь с грузовым кораблем, атакуемым пиратами, знаете, очень и очень мала…

ТУ: Да, было бы не реалистично.

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

ТУ: И открывает возможности для утилизации.

ТЗ: Ох, да, мы можем затеять целую беседу об утилизации.

ТУ: Отложим ее на другой раз.

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

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

ТУ: Очень круто. Но почему мы решили работать с этой технологии? Почему зоны вероятности?

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

Мы можем контролировать многое из этого при помощи алгоритмов, а игрок, при правильной реализации, не должен заметить разницы. То, что должен видеть игрок – так это полет из точки А в точку Б через все эти зоны, которые диктуют определенные вероятности определенных вещей, которые варьируются, как я говорил, от дистанции. Вы можете лететь через зону с низкой вероятностью появления пиратов, зачем через зону с высокой вероятностью, потом снова с ниской…

ТУ: Для игрока это происходит незаметно.

ТЗ: Когда вы летите от планеты к планете, на пути может быть 20 различных зон, где вероятность стычек возрастает, а между ними, по какой-либо причине, скажем, если там больше сил безопасности, а может потому, что там нет ничего ценного, по любой причине, вы навряд ли попадете в передрягу.

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

ТУ: Что-то вроде технологии LOD’ов, но для игровых стычек.

ТЗ: Именно так.

ТУ: Это очень здорово. И последний вопрос для тебя: давай заглянем в будущее зон вероятности. Что дальше? Предполагаю, что вы будете расширять эту технологию.

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

ТУ: Чтож, спасибо, Тони, как ты сказал, выпуск 3.0 был сложным и амбициозным процессом, так что давайте уделим время на то, чтобы выслушать других членов команды.

Майк Джонс (МД): Большая часть нашего внимания уделена выпуску бэкенд-систем. Мы занимаемся внедрением PTU и Live релизов, так что все исправления кода, все, что проделывается разработчиками и студиями разработки приходит сюда для интеграции в билды, а затем, после прохода через QA, в конечном итоге публикуется для игроков. Во время подготовки к 3.0 все оказалось довольно напряженным для большей части команды поддержки, которая находится здесь в Остине. Знаю, что команда QA работала в довольно плотном графике, еле поспевая за количество билдов-кандидатов на релиз, которые проходили через систему. И каждый раз находя баг, разработчики действительно быстро посылали фиксы, так что мы собирали множество билдов, множество билдов-кандидатов. Знаете, мы прошли через множество PTU релизов, по несколько релизов в неделю, и все это вело нас к финальному релизу 3.0. Мы надеялись достичь его несколько раньше, но кадый раз при подготовке билда мы говорили, что надо еще немного добавить, еще немного фиксов, еще немного улучшений. И под конец мы действительно нагрузили все наши основные системы, они работали под четырехкратной нагрузкой. И я думаю, что вокруг царила суета, а все действительно неплохо проводили время. Мы работали долгие часы, но все разделяли общий энтузиазм, и мы были счастливы.

Но, конечно, когда вы столь сильно нагружаете системы, частенько все заканчивается небольшим перебором, так что и у нас под конец определенно были сбои систем. По сути, прямо под самый конец, во время работы над последним релиз-кандидатом, мы перегрузили нашу систему хранения до такого состояния, когда некоторые диски перегрелись, а мы потеряли один из наших твердотельных массивов, что произошло в довольно значительное время, так как надвигался наш Live релиз, а мы внезапно столкнулись с перспективой невозможности релиза до рождества. Но, к счастью, члены этой команды привыкли к такому давлению на себя, так что каждый взялся за работу, и мы смогли провести некоторые быстрые изменения в системе билдов и подключить наших IT-шников. Нам пришлось заменить шесть или семь дисков. Не прошло много времени, как все вернулось на круги своя. У нас был уже поздний вечер, но мы наконец добились своего. Я был очень рад тому, что мы достигли своего несмотря на все трудности.

Ахмед – он для нас как армия из одного человека. Как только мы выпустили 3.0, то сразу увидели колоссальный отклик, столь много людей пришло, было действительно здорово видеть всех их через Дельта патчер, и все наши графики буквально светились от количества потребляемого трафика. И, конечно, люди начали заполнять сервера, а мы незамедлительно увидели рост аудитории, превышающий наши ожидания. Мы думали, что неплохо подготовились, но Ахмед нарастил серверные мощности и их вместительность в тех регионах, где необходимо, и я не думаю, что он действительно отдыхал на праздниках. Все говорили: «пока, отличная работа», а Ахмед продолжал и продолжал работать. Думаю, ему реально нравится этим заниматься. Полагаю, это был лучший праздничный подарок для него, так как он мог продолжать работу над серверами.

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

Ахмед Шейкер (АШ): 3.0 – настолько крупный релиз, что с нашей стороны его горячо ожидали, и я уверен, что и бекеры его также ждали, а потому нам пришлось очень и очень постараться. Если вы собираетесь выпустить столь крупный релиз для большой аудитории среди региональных точек в облаке, идет ли речь о серверах в ШСА, Европе или Австралии, вам необходимо координировать все с вашим облачным провайдером, чтобы обеспечить достаточно мощностей под то, что вы собираетесь сделать. И прямо перед релизом 3.0 Amazon анонсировали новое поколение высокоскоростных виртуальных машин под названием C5, и мы, как только получили новости, что они уже доступны, сразу включили их в наш план. Для нас было важно убедиться, что игра будет работать на новейших виртуальных машинах с новейшими оболочками, новейшими процессорами, которые мы только можем достать в Amazon Web Services, но и одновременно мы пытаемся зарезервировать большое количество ресурсов новейшего поколения во всех смыслах.

И нам нужно было многое с ними согласовать, вроде увеличения лимитов, а также убедиться, что мощностей будет достаточно. Нам также нужны были планы по резервному копированию. Если мы будем иметь мощности в Ирландии, я не могу полагаться на то, что получу все мои мощности оттуда, но могу иметь запасные в Париже. То же касается и США. Основной регион будет в Северной Вирджинии, а запасной в Орегоне. И даже внутри самих регионов всегда есть способы распределить запросы и сеть таким образом, чтобы максимизировать доступность и преодолеть любые причуды при развертывании сети.

Это был определенно непростой релиз, но, думаю, над этим релизом работали больше всего. Думаю, что я повидал достаточно релизов, так как работал над Live релизами, кажется, с 1.2 или 1.3, полагаю, что с 1.2, и с того времени играл в них значимую роль. И последний релиз был самым тщательным, получил наибольшее количество срочных фиксов, да и по количеству изменений, производимых на лету, причем мы старались элегантно их проводить. ВО многих случаях при применении фиксов мы прилагали дополнительные усилия, чтобы фикс мог быть применен без необходимости кикать всех игроков, при этом сохраняя максимально возможную стабильность. И со стартом релиза мы зарезервировали большое число виртуальных машин, так как ожидали множество игроков благодаря Дельта патчеру, а многие игроки уже были на PTU с прошлого вечера, и мы знали, что открыв сервера, получим две-три-пять тысяч игроков, и эти числа будут достигнуты с лёгкостью благодаря большому количеству игроков, игравших на PTU. И весь день по возможности продолжали выделять больше ресурсов, поднимать больше инстансов, и все шло относительно хорошо. Мы старались уделять внимание производительности из-за поведения игроков. Толпа, перешедшая с PTU, а также игроки, прошедшие через Evocati или более ранние волны PTU, все они начинали привыкать к обыкновенным вещам, вроде хождения в игре, осмотру всего вокруг, что нормально для игрока, который 3.0 еще не видел, и вели себя иначе. И затем получалось 50 таких людей на инстанс, всячески экспериментирующих… И спустя несколько часов мы начали осознавать, что существует зависание маршрутизации, когда выделенный игровой сервер застревал на чем-то, а игроки в итоге вылетали, за чем следовало падение сервера. И просмотрев безумную кучу логов, которую генерирует окружение столь внушительных масштабов, примерно, представьте шестьдесят-семьдесят тысяч сообщений каждые 30 секунд. Такой объем логов обрабатывается и индексируется каждые 30 секунд, так что приходится просматривать эти логи очень быстро, чтобы понять, что происходит. Должен быть какой-то общий фактор, что-то общее, из-за чего все падает. А может все крашится по причине, которую мы никогда раньше не встречали? А затем мы осознали, что одна из миссий вызывает некую ошибку с физикой, приводящую к зависанию маршрутизации. И буквально сразу, а мы говорим о 23 декабря, когда многие люди уже разошлись по домам, собираясь насладиться праздником, но это было не важно… буквально сразу вся команда по бэкенду собралась со мной, Тони Зуровец был здесь, и мы сделали некоторые правки, которые вошли в хотификс. Мы нивелировали этот вылет, разобрались с ним, игра запустилась, а затем… Джефри Пиз сказал бы, что тут как с луком. Вы очищаете его, вскрыв слой с нестабильностью или слой с проблемой, затем видите еще один. И мы начали понимать, что перехваты очень и очень часты, что влияет на игровой процесс, игроков часто перехватывают, что влияет на количество ИИ в инстансе, и нам пришлось делать изменения таким образом, чтобы учитывалось количество игроков в инстансе, а также нам пришлось подправить еще несколько аспектов сервиса зон вероятности, ответственного за управление этой логикой. И в данном случае раскрылась польза от использований сервисов, модели, при которой не все хранится на сервере, а много логики находится вне сервера, что позволило нам сделать множество исправлений. Если вкратце, то это заняло всего три или четыре дня. Полагаю, 23, 25, 26 – в эти дни мы наблюдали за эффектом от изменений, за производительностью, пытались проследить разницу, и при этом все находились в офисе. С нами были QA, Тони Зуровец работал с нами, даже сам Крис Робертс был там, практически каждый раз осведомляясь о положении дел, принимая решения, корректируя нашу стратегию работы с проблемами, наш взгляд на них, и все это было здорово. Нам понравились праздники с игроками, когда мы все эти часы смотрели длинные видео геймплея, наблюдали за людьми, которые были рады поиграть в 3.0 до конца 2017… Это был непростой релиз, но не думаю, что что-либо в скором времени переплюнет его.

Джастин Бинфорд (ДБ): Все дело в расстановке приоритетов, и одним из главных вызовов здесь в Остине было справиться с выпуском релиза. Мы начали выпускать билды в начале октября, причем практически ежедневно, а потому нам нужно было соблюдать баланс с остальными тестовыми задачами, так что, думаю, это и было одной из главных трудностей. Иэто привело нас к действительно плотной совместной работе с главами разработки, чтобы мы могли выявлять задачи с высоким приоритетом, чтобы мы могли быть уверены в том, что тестируем то, что нужно, одно за другим.

И когда мы обнаруживаем проблему, мы стараемся подойти к этому серьезно, заносим ее в наше программное обеспечение для ведения проекта, мы используем Jira, а затем отправляем ее руководству команды, а затем они выносят проблему на повестку и совместно с другими вырабатывают решение о том, приостановить ли релиз, или если в данном случае об этом речи нет, то совместно прорабатывают решение проблемы.

У нас есть система запроса тестов, разработанная Крисом Эккерсли, главой QA в Соединенном Королевстве, и по мере приближения к дедлайну 3.0, разработчики стали все больше прибегать к этому процессу, так как по мере приближения к дедлайну все более важной становилась стабильность билда, а мы не могли рисковать потерей стабильности 3.0 в столь критичный момент, так что разработчики активней использовали систему запросов QA-тестирования. И каждый отдельный элемент, относящийся к релизным, должен был быть протестирован должным образом, что невероятно увеличило нагрузку на нас, при чем в то же время нам нужно было продолжать работу с билдами.

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

АШ: Одна из интересных вещей, которую мы наблюдаем в этом релизе – это увлечение игроков, когда они хотят продолжать играть, и теперь каждый раз мы сталкиваемся с проблемой с одним из сервисов, которая может выкинуть из игры шесть-семь сотен игроков. В большинстве индустрий, например, в вэбе, откуда я пришел, вы знаете, что если страница начала грузиться на полсекунды или секунду дольше, то это сказывается на времязатратах пользователей. Люди просто идут делать что-то еще, читают что-то иное. Но здесь дело не в этом, а в том, что можно выкинуть с вылетом четыре сотни игроков, а обратно заходило уже шестьсот. Игроки просто знали, что игра уже доступна, но в то же время они могут выявить баги, которые мы не смогли без такого количества одновременных пользователей. Благодаря новому Дельта патчеру мы смогли запустить игроков за очень короткие сроки. Без разницы, качал ли человек патч для PTU день назад или играл со времен Эвокати, все могли скачать новый патч. Многие пытались выяснить, как работает система торговли, строили торговые маршруты, а многие пытались воспроизвести баги друг друга. Когда бы я не взглянул на сервера в течение праздников, наблюдал за серверной статистикой, разнообразными показателями, я всегда поглядывал на форумы или чат, но разнообразные соцсети, и очень часто черпал от туда информацию о чем-то, на что наткнулись игроки, о чем они знают. И они знают, что это не просто какая-то игра, в которой просто можно провести время и поделать какие-то миссии, но что они тоже часть игры. И то, что они делают в этой игре, так это создают ее вместе с нами. Так что они начинают тестить все, что возможно, и оставляют отзывы вроде; «ох, если сделать то-то и то-то, как я и сделал, то выясняется, что вот этот корабль виноват в плохой производительности или сбое, который мы наблюдаем.

Брюс Бентон (ББ): Мы посвятили много времени слежению за PTU и поиску серьезных вылетов и вещей, с которыми сталкивались игроки и которые делали игру неиграбельной. Мы действительно усердно работали над их выявлением, и в субботу решили, что мы готовы, а потому выпустили 3.0.

Так что в субботу вечером мы с Ахмедом готовили различные сервера для Arena Commander и Star Marine, а также дополнительные инстансы для PU, и мы увидели, что у множаства людей проблемы со входом, а многие сервера падали, так что нам нужно было работать вместе с Тони Зуровецем над выяснением причин. Мы обнаружили, что игрокам удавалось заспавнить астероиды вблизи Олисара, что и вызывало множество вылетов, так что мы продублировали проблему на серверах QA и протестировали фиксы. На каком-то этапе на пришлось проводить глобальные рестарты, но мы выпустили где-то 3-4 срочных фикса в период между субботой и окончанием праздников. Джастин, я и еще несколько человек подключались из дома и проверяли сервера QA, чтобы проверить, вызывают ли фиксы новые проблемы, а затем внедряли фикс и на игровые сервера вместе с Ахмедом.

АШ: Это просто иной опыт, то, как близки мы с игроками. Обычно я занимался своей работой, особо не контактируя или даже не зная конечного пользователя. Если я обслуживаю веб-сервер, обслуживающий миллионы пользователей в день, то никто и не будет знать меня, знать мое имя, им не придется со мной взаимодействовать. А в Star Citizen ситуация иная, так как ощущается то, как каждый из этих людей выделяет часы своего дня на то, чтобы поиграть в игру, протестировать игру и попробовать получить удовольствие. Абсолютно иные личные отношения между тобой и конечным пользователем. Ты узнаешь людей, это другие впечатления. И в случае с 3.0 это усилилось, так как мы знали, что идут праздники, игроки проводят время с семьями, но в то же время нам хотелось видеть многих в игре. Каждый раз с выпуском релиза хочется увидеть, чего он может достичь, сколько одновременных игроков собрать, какие проблемы возникнут при таком масштабе, а в данном случае у нас оказались просто невероятные масштабы. Люди играют в игру, и это было здорово.

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

Эрик Грин (ЭГ): Изначальный релиз для Эвокати был нашим первым шагом к выпуску 3.0, и в первый вечер, когда мы его выпускали, у нас была шестичасовая конференция в Skype с командой по инфраструктуре, чтобы убедиться, что все шло по плану. Причина, по которой все заняло столько времени, заключается в том, что мы не сразу подготовили новый лаунчер и несколько бэкенд сервисов, а потому хотели убедиться, что все готово, мы обновили свой чеклист и могли мониторить сервера по мере поступления игроков. В 3.0 столько нововведений, по сути вся игра изменилась, а все бэкенд сервисы были переписаны, а также использовался абсолютно новый лаунчер, так что мы хотели быть уверены во всем, тестировали все с QA многие и многие недели, готовясь к релизу для Эвокати, но никогда нельзя все предугадать. Билд может попасть к одному бекеру со странной конфигурацией компьютера, и вся система просто упадет, или он просто столкнётся с какой-то странной проблемой, так что мы хотели обеспечить наиболее нормальное функционирование.

После первого релиза для Эвокати мы прошли через дюжины выпусков. Сейчас, когда у нас есть Дельта патчер, мы можем с легкостью выпускать билды хоть каждый день, следуя отзывам от Эвокати, а затем и от участников PTU, и просто выпуская билды с максимально возможной скорости и с максимально возможным количеством фиксов и расширений функционала.

Когда мы достигли публичного релиза, все несколько изменилось, так как процесс выпуска обновлений для Эвокати довольно прост, мы проводили гораздо более скоротечные проверки ради скорейшего релиза билда. Но если билд предназначался для публичного релиза, то проверочный лист для QA оказывался несколько больше, чтобы обеспечить лучшее тестирование некоторых вещей, а по мере продвижения к концу декабря мы начали стремиться к релизу на Live, а потому начали проводить все больше и больше проверок, а иногда нам приходилосьв се перепроверять некоторые старые системы, про которые могли забыть на некоторое время из-за количества фиксов и новых элементов, добавленных в билд. Нужно было проверять все дважды, а получалось вроде: «эй, Arena Commander работала пару недель назад, давайте еще раз углубимся в это, что снова ничего не сломалось»… И в конечном итоге мы так дотянули до субботы, 23 декабря, когда небольшая команда пришла в студию в Остине для запуска на Live.

Релиз произошел где-то в полтретьего по местному времени, 23 декабря, в ту субботу, а затем мы мониторили все ключевые сервисы и игровые сервера, общались с игроками, чтобы убедиться, что все ОК. Была парочка проблем с некоторыми миссиями или перехватами, которые были сразу же обнаружены. И в работе Тони Зуровеца замечательно то, что все эти сервисы на стороне бэкенда работают вне серверов, а потому мы можем делать изменения в коде, миссиях, времени перехватов и их частоте, и мы можем внедрять эти срочные фиксы на нашей стороне, а затем мягко перезапускать все сервера, так что игроки даже не знают об изменениях, но много заметно улучшается. И в общем мы внедряли исправления практически каждый день рождественских каникул, начиная с 24 декабря и вплоть, думаю, до 2 января.

ББ: Рождественский вечер был довольно интересен, так как по большей части инстансы были в порядке весь день, а затем, внезапно, всякое начало происходит, и некоторым из нас пришлось удаленно подключаться, при чем мы специально никого не обзванивали, а просто сидели в Skype и пытались понять, что происходило. Кажется, было 3 часа ночи, когда некоторые вспомнили, что им нужно разложить подарки под рождественским деревом, но все были заняты мониторингом серверов и предоставлении информации о производительности Крису и Тони, а также предоставляя прочие графики, показывающие какие фиксы и каким образом улучшили геймплей.

Есть вещи, которые могут проделать игроки, и которые иногда вызывают проблемы с инстансом, мы можем видеть это на графиках и как бы предсказать это и исправить до того, как мы перезапустим инстанс, таким образом никто новый к нему не подключится, а как только все выйдут, он сам перезапустится. Мы делаем множество вещей, чтобы обеспечить минимальное воздействие на игроков.

ЭГ: И что происходило, так это то, что мы определяли проблемы, например, ту, которая была 23 декабря, когда появлялись астероиды, связанная с миссией окружения, вызывающейся в местах, в которых она вызываться не должна, приводя ко всяким странностям в физической сетке, что приводило к значительным падениям производительности, так что Тони решил просто убрать эту миссию из действующего сервиса, так что мы просто перезагрузили все. При этом у нас есть способ, когда, вместо того, чтобы грубо выкинуть всех с серверов, прикрыть все и перезагрузить, у нас есть вариант аккуратно перезагрузить сервера. При этом алгоритм смотрит, на каких серверах снижается количество игроков, и когда их количество достигает нуля, он просто перезагружает этот сервер. Таким образом некоторые игроки играли в несколько другую версию игры одновременно с другими, так как не каждый инстанс перезагружается, но в течение 24 часов перезагружаются все сервера, используя улучшенный код.

Я бы сказал, что на данный момент одной из наибольших трудностей является соединение нашей базы данных и кэша постоянства, которое может падать, а когда это происходит, вызывать всевозможные жуткие несоответствия данных, что частенько приводит к поломке аккаунта игрока. Из-за этого приходится через службу поддержки игры говорить, что мы можем это исправить, сбросив данные, но, к сожалению, это значит, что многие игроки теряют прогресс в миссиях или свои грузы, что печально, но мы уже обнаружили большую часть этих проблем и работаем над исправлением.

 Джефф Дейли (ДД): Мы делаем то, чего не делали ни для одной игры, над которыми я работал. Это смесь ММО и летного симулятора с шутером в рамках огромной бесшовной вселенной. С точки зрения игрока создание этого просто невероятно. С точки зрения QA я хочу понять, как они собираются это сделать, так что я получаю очень много знания и опыта, а также веселья.

ДБ: Команда проделала столь потрясающую работу, и я столь горд ей. У нас столь способная команда руководителей, и от менеджеров до тестеров QA, все члены команды просто звезды в своей сфере, а все вместе они успешно поддерживают разработку, и я действительно горд.

МД: думаю, что множество людей осознали, по крайней мере в определенном кругу, что особенно важно для нас, что все эти процессы выдны, когда подходит время публикации финального билда, но что люди не понимают, так это то, что наша команда занимается этим постоянно. Каждый билд для PTU проходит через схожий процесс, различаются лишь сервера и протоколы безопасности. Так что по большей части все это команда проделывает каждый день. Вы можете видеть лишь два-три обновления в неделю, но на самом деле мы работаем над билдами-кандидатами каждый день. И так до последнего дня, когда QA говорят, можем ли мы выпускать эту версию, или есть какие-то критичные исправления, которых они ожидают, но к тому моменту работа уже была завершена, так что мы все время что-то готовим, испытываем системы, что действительно помогает нам срезать углы и облегчить работу, когда дело доходит до значимого релиза вроде 3.0, и все идет практически как по часам.

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

ТУ: И это все на сегодня, надеюсь вам понравился наш апдейт, увидимся в следующий раз.

 

Заключение

Крис Робертс (КР): Команде в Остине будет чем заняться в этом году, так как мы планируем выпускать обновления и улучшения контента в соответствии с квартальным графиком релизов, что, как я считаю, будет довольно здорово. Чтобы получить углубленный обзор того, что происходило во всех наших студиях, непременно посетите сайт RSI на этих выходных, где вы сможете прочитать наш месячный отчет за декабрь.

Сэнди Гардинер (СГ): Да, и это все на сегодня. Также не забудьте проверить страничку Squadron 42 и подписаться на получение новостных писем. Иначе вы не получите их.

КР: Да, так что обязательно подпишитесь. И спасибо всем нашим подписчикам, ваша поддержка и отзывы позволяют нам делать вещи вроде этого шоу, «Вокруг Вселенной», а также будущие выпуски вроде «Вселенной наизнанку».

СГ: Не забудьте присоединиться завтра в полдень на премьерный показ, а также помните, что концепт Tumbril Nova остается в продаже вплоть до 15 января, так что все еще есть время добавить этого здоровяка в свою коллекцию.

КР: Именно. И, конечно, спасибо всем нашим бекерам, делающим возможной разработку Star Citizen и Squadron 42, мы не смогли бы делать это без вас, так что спасибо вам огромное.

СГ: Да, не смогли бы. До следующей недели и увидимся…

Во Вселенной!

[свернуть]

Обсудить новость на нашем форуме

H1rurg editor