Frost Giant Studios: сотрудничество с Dreamhaven, технические особенности новой RTS, рабочий процесс

Frost Giant Studios: сотрудничество с Dreamhaven, технические особенности новой RTS, рабочий процесс

Разработчики из Frost Giant Studios вновь стали гостями ток-шоу The Pylon Show. Там они рассказали о том, что именно подразумевается под партнерством с Dreamhaven, а также поведали о некоторых технических деталях своей новой RTS: она будет работать быстрее, чем Starcraft 2, и будет поддерживать большее количество юнитов на игровой карте. Также имеется обсуждение плюсов и минусов рабочего процесса в крупной компании вроде Blizzard и в маленькой компании вроде FGS.

https://www.youtube.com/watch?v=LUHwzSQYYPE&ab_channel=ThePylonShow

Ниже представлен перевод отдельных фрагментов интервью, которые показались нам наиболее интересными.

В разговоре участвовали:

  • Artosis – профессиональный комментатор SC2, ведущий The Pylon Show
  • Feardragod – профессиональный комментатор SC2, программист
  • Джеймс Анхальт – главный по технологиям (technical lead)
  • Остин Хаделсон – разработчик сетевой архитектуры
  • Кевин Донг – геймдизайнер

Сотрудничество с Dreamhaven, совместная работа

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

В Dreamhaven работают люди, сделавшие себе солидное имя в RTS. Причем это не только выходцы из Blizzard. Конечно же, Майк (Морхейм) – один из самых уважаемых лидеров в индустрии и большой поклонник RTS. У них в команде вообще много любителей RTS, и это одна из причин, по которым они хотят нам помочь.

news_60b9f9b349ba7.jpg

Майк Морхейм

Помимо Майка есть Крис Сигати, который долгое время был главным в разработке Starcraft. Ну и вообще там много ветеранов индустрии – мы не нарадуемся, что можем с ними работать.

Джеймс Анхальт: Да, Майк действительно большой почитатель Starcraft 2 в частности, RTS в общем и целом. Мне кажется, что ему просто хочется оставаться причастным к разработке подобных игр. Мы будем прислушиваться ко всему, что нам скажут парни из Dreamhaven.

Кевин Донг: Если быть предельно честным, то мы вот только-только оформили партнерство на бумаге, еще даже не работали в офисах. Так что наша коллаборация еще как бы не началась. Но вот уже через две недели мы въезжаем в офис – как я и сказал, мы находимся буквально в паре зданий друг от друга. Вот там, я уверен, взаимодействие между нами станет более плотным.

Frost Giant – это по-прежнему довольно-таки маленькая студия, тогда как в Blizzard у нас было много преимуществ, присущих крупным компаниям. Благодаря Dreamhaven мы как бы получаем "лучшее от двух миров": у нас, как у маленькой студии, есть независимость, а Dreamhaven дает масштаб и опыт работы в индустрии, которым обладают большие компании.

Artosis: Приятно такое слышать. Я за 20 лет работы в игровой индустрии неоднократно видел, как компании вырастают до таких размеров, где их начинает интересовать только прибыль. Но у вас во Frost Giant в первую очередь есть интерес к игре, которую вы делаете, и к жанру. И то же самое можно сказать про Dreamhaven, с которыми вы теперь партнеры. Это очень хорошо для жанра RTS.

news_60b9f9f716637.jpg

Кевинг Донг: Здорово, что мы получаем поддержку не только от нашего сообщества и от Dreamhaven, но и вообще повсеместно в игровой индустрии. Мы работаем также с Epic, и там тоже много людей, которые поддерживают RTS. У них также есть искренняя любовь и истинный интерес к этому жанру, и мы рады работать и вместе с ними тоже!

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

Во Frost Giant мы не можем себе такое позволить, но Dreamhaven организовали аналогичные сессии для нас и вообще для всех студий, которые находятся под их крылом и с которыми у них заключено партнерство.

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

news_60b9fa1dae333.jpg

Старкрафтер TLO в футболке Frost Giant Studios

Джеймс Анхальт: Мне не кажется, что мы конкурируем с кем-то в индустрии, да и даже просто с другими играми жанра RTS. Думаю, чем больше игр такого жанра, тем лучше для всех нас. Когда мы были в Blizzard, то мы просто любили игры, кто бы их ни сделал, и хотели в эти игры играть.

Кто такие Остин Хаделсон и Джеймс Анхальт

Artosis: Как вы начинали работать над Starcraft 2? За что вы отвечали, над чем велась работа и так далее?

Остин Хаделсон: В своем время я делал карты для Warcraft 3, плюс мне всегда хотелось разрабатывать игры. Когда выходил Starcraft 2, то мне удалось получить ключ от беты, и я тогда же начал делать карты уже для этой игры. В то же время я решил, что нужно получить образование, связанное с информатикой, и попытаться найти работу в игровой индустрии. Каждый год я пытался получить стажировку в Blizzard, и на последний год учебы мне это наконец-то удалось – мне дали место в команде разработчиков Starcraft 2. Это была практически работа мечты! Я проработал там несколько месяцев и по истечении этого срока получил предложение заключить полноценный контракт.

За время своей работы над Starcraft 2 я прикоснулся практически к каждому аспекту этой игры. Какие-то из функций в открытых лобби, что-то из раздела premium arcade; где-то год я работал с GDPR – это европейский закон о приватности, тут мы обеспечивали сохранность данных пользователей. Потом я много работал в рамках партнерства с DeepMind, добавлял разные механики командирам в коопе (например, престиж). Моя последняя "большая" работа, после которой я уже перешел во Frost Giant, это патч на 10-летие SC2.

news_60b9fa6176925.jpg

Некоторые сотрудники Frost Giant Studios. Второй в верхнем ряду -- Кевин Донг, третий в нижнем ряду -- Остин Хаделсон

Джеймс Анхальт: Я в Blizzard проработал очень долго. Наверное, в общей сложности где-то 20 лет. Трудился над Battle.net как раз в то время, когда только началась разработка SC2 и когда к этой разработке подключали людей, ранее занимавшихся WC3. Нужен был человек, который занялся бы алгоритмом поиска пути, а у меня за плечами был соответствующий опыт. Так вот я и стал программистом этих алгоритмов, ну а потом это эволюционировало в работу с ландшафтом, с коллизией юнитов, с передвижением юнитов. Нужно было сделать так, чтобы все работало хорошо и плавно, чтобы не было такой "блочности". Ну, знаете – вы смотрите на игры, которые вы делали в прошлом, и вам всегда хочется сделать еще лучше.

news_60b9fab446159.jpg

Джеймс Анхальт

В общем, изначально я отвечал только за алгоритм поиска путей, но затем это разрослось до ведущего разработчика геймплея и ведущего программиста. Я так или иначе поработал с большей частью кода, с низкоуровневыми системами... Наверное, в Starcraft 2 я прикоснулся практически ко всему, кроме разве что Battle.net – сферы, из которой я, так сказать, и вышел.

Разработка алгоритма поиска пути

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

В Starcraft 2 в течение секунды проходит от 16 до 20 игровых циклов. При этом в игре могут существовать сотни юнитов. На то, чтобы просчитать путь для каждого из них, тратится меньше миллисекунды. Десятки микросекунд.

У нас есть отдельная демонстрационная программа, которая показывает поиск юнитами пути, их передвижение, туман войны, коллизию. Здесь можно увидеть движение тысячи юнитов, чего не встретишь даже в Starcraft 2. 1700 фреймов в секунду.

news_60b9fb14ec38d.png

В общем, здесь для каждого юнита просчитывается поиск пути, плюс коллизия с другими юнитами, плюс коллизия с "лабиринтом". Симуляция в демке проходит на частоте в 60 Гц, тогда как в Starcraft используется частота всего в 16 Гц. Одна из наших задач – это сделать так, чтобы в нашей игре поддерживалось еще больше юнитов, чем в SC2. Другая – сделать так, чтобы все просчитывалось еще быстрее. Третья цель – карты еще больших размеров. "Карта" в демке в четыре раза больше, чем стандартная карта в Starcraft 2.

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

news_60b9fb3261bf7.jpg

Оптимизация под железо

Feardragon: Starcraft 2 был оптимизирован под одноядерные процессоры, прирост в производительности от добавления дополнительных ядер там не такой уж значительный. Почему так?

Джеймс Анхальт: Во многом это обусловлено тем временем, когда мы начала разработку игры – в начале нулевых. Даже Dual Core тогда еще не был мейнстримом. Поэтому мы решили повесить и просчет действий в игре, и рендеринг на один поток. Впоследствии мы думали о том, чтобы как-то использовать преимущества многоядерных процессоров, но уже были "зажаты" в рамки своего предыдущего решения.

К тому же игры Blizzard традиционно работают на самом разном железе, включая и не очень производительное. Сейчас нам очень интересно работать с движком Unreal Engine 5. Там есть новые возможности для рендеринга, можно использовать преимущества нескольких ядер процессора, есть возможность быстрее проводить игровую симуляцию, есть возможность отделить рендеринг от симуляции и так далее.

news_60b9fb3aa9cea.jpg

Unreal Engine

Остин Хаделстон: UE – это крутейший движок, который дает нам множество инструментов, которые мы сразу же можем использовать. Если выделить что-то одно, то я бы сказал, что мы уже можем проводить итерации различных игровых идей. Особенно важно это для геймдизайна – можно очень быстро перейти от идеи к чему-то, что уже можно попробовать непосредственно в игре. Это самое главное преимущество, которое дает нам Unreal Engine.

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

Кевин Донг: Unreal Engine считается одним из лучших готовых игровых движков для ААА-игр в индустрии (если не самым лучшим). Как дизайнер, который ранее работал с движком Starcraft 2, я могу сказать, что разобраться в UE мне было гораздо проще. Хотя бы просто потому, что в интернете есть огромное количество различных руководств по этому движку и по тому, как в нем работать. В случае с движком SC2 такого не было – там приходилось либо расспрашивать какого-то конкретного человека, либо разбираться во всем самому.

news_60b9fbb06fe90.png

Сетевая архитектура

Feardragon: А с какими сложностями связано создание RTS на движке Unreal Engine?

Остин Хаделсон: Если говорить про мою сторону работы, то здесь самая большая сложность – это сетевая архитектура. В Unreal Engine сразу есть хорошие инструменты для создания игры в архитектуре, которая называется "клиент – сервер". Эта архитектура хорошо подходит для игр от первого лица, где не так много игроков на ограниченном пространстве и нужна хорошая отзывчивость.

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

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

https://www.youtube.com/watch?v=XGYd1nQNXQI&ab_channel=VideoAccountVideoAccount

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

Feardragon: Если объяснять разницу между client-server и lockstep на примере шахмат, то в первом случае каждый раз делается снимок доски, который рассылается всем игрокам, а во втором случае просто дается информация о движении фигур. И если какой-то кусочек этой информации потеряется (например, один из игроков не получит информацию о ходе), то у игроков будут уже разные состояния шахматной доски и они не смогут продолжать игру.

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

Feardragon: Есть ли какие-то ограничения, связанные со скоростью обмена информацией между двумя клиентами?

Остин Хаделсон: Если говорить про refresh rate и сетевую архитектуру, то эти вещи достаточно легко отделить друг от друга. Симуляцию можно проводить на такой скорости, которая доступна игроку, а информацию о действиях отправлять уже независимо это этой симуляции. В таком случае информация будет приходить к пользователю в определенный момент (refresh turn). В общем, более высокая частота симуляции не приводит к тому, что нужно отправлять большее количество данных, но при этом она сильнее грузит процессор.

Джеймс Анхальт: Штука в том, чтобы делать как бы меньше работы за такт, но при этом за счет увеличения количества тактов в промежуток времени увеличить и количество осуществляемой работы.

Artosis: Это как-то связано со временем отклика в игре? Я правильно понимаю? Или нет?

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

news_60b9fc64e3b74.jpg

Повышение скорости "обновления" игры

Feardragon: Так какие преимущества мы в итоге получаем за счет увеличения "частоты обновления игры"?

Джеймс Анхальт: Если не вдаваться в подробности, то мы (при условии, что симуляции происходят очень быстро) можем провести повторную симуляцию. Мы можем, скажем так, предсказать, что должно произойти, и сделать это наперед. А если что-то пошло не так – мы можем откатить ситуацию назад и сделать все заново, на этот раз правильно.

Допустим, игра у нас обрабатывается один раз за 50 миллисекунд при частоте 20 Гц. В таком случае у нас не остается времени на исправление ошибок в случае, если действия предсказаны неправильно. Но если повысить скорость – тогда, возможно, за такой же промежуток времени игра сможет обрабатывать информацию дважды, и мы сможем корректировать ошибки.

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

Остин Хаделсон: Также можно будет очень быстро переподключаться к игре в случае дисконнекта. В старкрафте такое тоже возможно, но там это связано с определенными сложностями.

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

news_60b9fccca1ae0.png

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

Feardragon: И по этой причине это не так просто сделать в Starcraft 2? Информация о состоянии игры занимает большой объем?

Джеймс Анхальт: Да. С самого начала не было акцента на том, чтобы ужать объем информации о состоянии игры до минимальных размеров. Поэтому вот так.

Artosis: А рандом в игре влияет на объем информации? И какие планы у вас насчет рандома в вашей новой RTS? Потому что в SC2, я знаю, есть определенный рандом – в том числе, например, в момент выстрела, чтобы юниты не стреляли абсолютно одновременно.

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

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

news_60b9fd0100094.jpg

Еще немного про Unreal Engine

Джеймс Анхальт: Пока что мы используем UE4, но мы очень рады тому уровню графики, которого нам позволит достичь UE5. Ну, и опять же повторюсь: мы можем очень быстро обкатывать игровые идеи в деле, используя этот движок.

Кевин Донг: Сейчас Unreal Engine 5 находится в стадии этакого бета-теста. В доступе есть ранняя версия, которую разработчики пробуют в деле. Игр, которые работает на UE5, еще не существует.

Мы сейчас занимаемся созданием прототипов, работаем при этом на UE4. Но для работы непосредственно над игрой мы переключимся на UE5.

Джеймс Анхальт: Нам помогает опыт, который у нас есть благодаря работе над Starcraft 2. Для игры нужно много чего создать с нуля, но мы уже знаем, что нам нужно – например, все тот же алгоритм поиска пути, коллизия юнитов и так далее. И мы также понимаем, как хотели бы расширить те возможности, которые были в SC2.

news_60b9fd6471138.jpg

Как выглядит повседневный рабочий процесс

Джеймс Анхальт: Работается интересно и весело. Я вновь работаю в небольшой компании, и в каком-то смысле здесь у тебя больше свободы. С другой стороны, иногда бывают моменты, когда ты такой: "Ох, а у меня же нет вот этого инструмента, и вот этого, и вот того". Но потом вспоминаешь, что есть Unreal Engine. Дизайнерам не нужно ждать, пока кто-то из программистов что-то там для них создаст. Это очень хорошо.

А повседневная работа... Мы можем расписать планы на неделю, но в итоге все равно каждый день все меняется.

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

Кевин Донг: Да. Я вот могу сказать, что очень многое из того, что есть в SC2, воспринимал как данность. Например, та же команда "Stop". Думаешь, что ну команда и команда, ничего особенного. Но она завязана на сотнях каких-то функциональных элементов, о которых люди даже и не думают. Или команда атаки – там и анимация, и запуск команды, и эффект попадания, и просчет попадания. Ну и так далее.

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

Джеймс Анхальт: RTS от Blizzard – это очень хорошо отлаженные продукты. В одну-единственную внутриигровую команду там вложено невообразимо много. У нас даже шутка была: дескать, как вообще какие-то другие компании умудряются доделывать свои RTS? Здесь очень много чего нужно принять во внимание: что происходит по команде "стоп", что происходит, если юнит теряет вижен, что происходит если... В Starcraft 2 все это предельно отработано. И SC2 – это, наверное, моя любимая игра за все время. Я рад, что у меня есть возможность сделать новую RTS, которая будет на таком же уровне качества.

news_60b9fd9060fbf.jpg

Структура Frost Giant и структура Blizzard

Джеймс Анхальт: У нас в компании нет отдела QA, а между тем в Blizzard это очень важное подразделение, которое играет значительную роль в разработке игр. Пока что у нас нет QA, но в будущем такая структура появится.

Кевин Донг: Преимущество работы в крупной компании вроде Blizzard заключается в том, что там есть реально большие подразделения, которые занимаются очень конкретными вещами. Например, есть отдел по маркетингу, есть отдел по работе с сообществом, есть отдел киберспорта, финансовый отдел, отдел кадров, отдел синематиков, поддержка клиентов, отдел контроля качества, отдел Battle.net... Я тут бесконечно могу продолжать.

Во Frost Giant у нас такое разделение по ролям во многом отсутствует. Поэтому мы постоянно как бы меняемся ролями – чего в Blizzard обычно не происходило. Например, я прямо перед этим интервью оформлял посты в наших социальных сетях.

При этом у работы в компании, где много разных отделов, есть свои недостатки. Один из них – это обширная и запутанная электронная переписка. В той же Blizzard есть такая политика, как "каждый голос важен", и иногда мне кажется, что этих голосов, которые важны и что-то значат, очень уж много. Из-за этого принятие даже простых решений может сильно затянуться. Во Frost Giant с этим проще: если нужно снять какой-то вопрос, то просто поворачиваешься в кресле и говоришь с кем нужно.

Что по срокам

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

Источник

Читайте также