Статьи
Horizon Zero Dawn: Начало. Первые четыре года разработки лучшей игры 2017 г.

Horizon Zero Dawn: Начало. Первые четыре года разработки лучшей игры 2017 г.

Horizon Zero Dawn: Начало. Первые четыре года разработки лучшей игры 2017 г.


Пожалуй, самым запоминающимся и интересным докладом прошедшей в начале февраля конференции разработчиков игр DevGAMM Kiyv 2018 стало выступление Лешека Щепаньского из Guerilla Games, посвященное начальным этапам разработки Horizon Zero Dawn. Мы решили познакомить наших читателей с сокращенной версией этой лекции. Но сначала напомним о чем, собственно, идет речь.

Horizon Zero Dawn
Horizon Zero Dawn – аction/RPG с открытым миром для PlayStation 4, действие которой происходит в пост-постапокалиптическом мире, населенном роботами, а остатки человечества живут на уровне общинного строя. Игра собрала огромное количество наград, начиная с многочисленных Выборов редакции и заканчивая десятками призов Лучшая игра 2017 г., один из них от редакции ITC.ua. Согласно статистике сайта VGCharts, на текущий момент игра продалась тиражом 4,4 млн. копий, по прогнозам же за весь срок жизни проекта эта цифра может достигнуть 8 млн. экземпляров.

Guerrilla Games
Голландская игровая студия, входящая в состав SIE Worldwide Studios, подразделения разработки игр Sony Interactive Entertainment. Guerrilla Games создана в 2000 г. в Амстердаме как Lost Boys Games, специализируется на шутерах от первого лица и известна в первую очередь благодаря серии Killzone. Horizon Zero Dawn – первая ролевая игра и первый проект компании с открытым миром. На текущий момент в Guerrilla Games работает около 270 человек.

Лешек Щепаньский
Лешек Щепаньский начал разрабатывать модули для настольных ролевых игр еще в средней школе. Получая степень в Польско-японской академии информационных технологий, параллельно работал профессиональным гейм-мастером/мастером подземелий и разработчиком мобильных игр. На данный момент Лешек — старший геймплей-программист в компании Guerrilla Games. Принимал участие в создании игр Killzone: Shadow Fall и Horizon Zero Dawn.

Разработка Horizon Zero Dawn стартовала еще в 2010 г., за семь лет до релиза игры. Лекция Лешека Щепаньского охватывает период с 2010 по 2014 гг.

Лешек Щепаньский

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

Из более чем 40 идей, которые были поданы сотрудниками, а в обсуждении принимала участие вся студия, на тот момент еще работавшая над Killzone 3, только одна была предложением еще одного шутера, остальные же оказались в той или иной мере ролевыми играми. Из всех этих идей две оказались наиболее многообещающими. Первая – steam-punk action/adventure от третьего лица в мире альтернативной истории. Вторая – постапокалиптическая ролевая игра в открытом мире с буйной зеленой растительностью, та, которая в итоге и стала основой для Horizon Zero Dawn.

При работе над Horizon Zero Dawn студия Guerrilla Games столкнулась сразу с несколькими сложностями. Во-первых, это был новый IP, а вот уже много лет компания работала в рамках одной вселенной – серии Killzone. Во-вторых, это был новый для студии жанр. В-третьих, открытый мир подразумевал совсем иной масштаб во всем – дизайне, программировании, арте и т.д. В-четвертых, игра начала создаваться еще в эру PlayStation 3, но должна была выйти на PlayStation 4, что поднимало еще и вопрос технологий, движка и т.д.

Killzone Shadow Fall

Чтобы снизить риски разработки, Guerrilla Games решила уделить больше времени этапу прототипирования Horizon Zero Dawn, заниматься которым должна была небольшая независимая команда внутри студии. Как раз тогда Guerrilla Games работала над шутером Killzone Shadow Fall, который должен был стать игрой стартовой линейки готовящейся к выходу PlayStation 4. Поэтому было решено, что Horizon будет использовать движок и программный код Killzone Shadow Fall так долго, как это возможно. По сути, вначале Horizon разрабатывался как мод для Killzone. Кроме того, Killzone Shadow Fall использовалась как своеобразный трамплин для новой игры. Если вы посмотрите на скриншоты из Killzone 3 и Shadow Fall, то поймете, что это даже визуально два очень разных проекта. Shadow Fall во многих аспектах находится где-то между Killzone 3 и Horizon Zero Dawn.

Killzone Shadow Fall

Лешек Щепаньский присоединился к команде Guerrilla Games в 2012 г. Студия искала опытного программиста, одержимого RPG, а Лешек как раз и занимался ролевыми настольными играми в качестве Мастера подземелий, и кроме того, имел пятилетний опыт разработки мобильных игр, выпустив около 20 проектов на 10 разных платформах. Опыт создания маленьких игр в небольших студиях пригодился Лешеку, ведь на начальных этапах Horizon Zero Dawn разрабатывалась командой из всего лишь 12 человек, почти как инди-проект внутри Guerrilla Games. На этом этапе команда обходилась без долгих больших совещаний, все идеи обговаривались и внедрялись буквально моментально, и это действительно было больше похоже на работу инди-студии.

Лешек Щепаньский

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

Учиться пришлось буквально всему, например, тому, как создаются квесты, ведь в той же Killzone Shadow Fall была лишь очень простая система задач. Разработчики играли и смотрели на многие RPG – Fallout, Morrowind, The Witcher и т.д., видели много различных подходов и пытались понять, как описываются квесты, как отслеживается их прогресс, какая информация имеется у игрока в процессе и т.д. Кроме того, необходимо было разработать систему разблокируемых умений, древо развития персонажа, чего тоже не было в Killzone, в которой по ходу игры менялось только оружие, но не умения. Здесь стояла задача понять, как в подобных играх умения разблокируются, как они взаимодействуют друг с другом, как меняются со временем. Еще одна новая для разработчика шутеров особенность – интерактивные диалоги. В Killzone, конечно, были видеовставки, но в шутере игрок редко имеет возможность встрять в видеоролик. Здесь нужно было оценить, как должна вести себя камера в подобных сценках, какие опции можно предоставить игроку, как может развиваться диалог.

Horizon Zero Dawn

Еще одна важная для RPG составляющая – инвентарь. В Killzone все было очень просто – есть только оружие и ресурсы, в смысле патроны, аптечки и т.д. Для Horizon Zero Dawn нужен был полноценный инвентарь, ведь лут – это важная часть любой ролевой игры. Опять-таки, разработчикам нужно было решить, какие типы предметов могут быть в игре, какие функции им доступны, как они должны складироваться и т.д. Необходимо было уделить внимание и крафтингу.

И, самое главное, команде Horizon позарез нужны были новые инструменты. Того, что уже имелось для работы над Killzone, катастрофически не хватало для проекта с открытым миром. После просмотра имеющихся в публичном доступе инструментов наиболее подходящими для задач Horizon были признаны Aurora Toolkit из The Neverwinter Nights, REDkit, который использовался в The Witcher, и UnrealEd из Unreal Engine – именно они стали источником вдохновения для собственных редакторов Guerrilla Games.

Дальше команда игры прошла через процесс, который можно назвать intrinsic ideation. Ideation – это процесс генерации и совершенствования идей. Для группы Horizon он в первую очередь заключался в создании прототипов, огромного количества прототипов. Для каждой идеи, для всего, что хотелось реализовать в игре, создавались прототипы – для теста технологий, нового дизайна, подсистем, всего. Вначале делались простые прототипы, если они оказывались интересными, их совершенствовали, если нет — отбрасывали. Intrinsic же в данном выражении означает, что каждая идея должна была соответствовать фундаментальному видению того, каким Horizon должен в итоге стать, ведь не каждая крутая фишка подходит для вашей игры, многие приходилось отбрасывать.

При работе над прототипами разных идей в Horizon не создавался огромный открытый мир. Брался участок примерно 1 на 1 км и насыщался самыми разными новыми фишками, так плотно, как только возможно. Прототипы могли быть самыми разными, например, первый вариант Thunderjaw был похож на набор кубиков лего, но уже на этом этапе он имел отстреливаемые части. В прототипе леса испытывалась не только правильность расстановки деревьев и травы, но и эффект трассировки лучей, а также производительность, которая не должна была падать ниже 50 fps. В первом прототипе города Meridian авторы экспериментировали с количеством людей, зданий, торговцами, ездовыми животными, на которых можно было бы въезжать в город, и т.д. Для того же процесса охоты и боевой системы было создано несколько десятков прототипов, ведь это одна из основных игровых механик Horizon.

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

Horizon Zero Dawn

Одна из необычных вещей, которую практиковали в группе Horizon для того, чтобы генерировать новые идеи, так называемая Friday Fun Factory – это внутренний Game Jam, который проходил каждую пятницу. Правила были очень простые – ты можешь делать все, что тебе хочется, если сможешь сделать это в течение дня и поместить в Horizon. Совершенно безумное оружие, странные ездовые животные, все – самонаводящиеся стрелы, роботы-жуки, взрывающиеся при приближении, ховербайки из Звездных войн и т.д. Мало что в итоге вошло в финальную игру, но эти пятницы позволили команде подстегивать свою креативность.

В конце концов, все прототипы, которые создавались группой, необходимо было собрать вместе в одно демо, которое показало бы, чем может стать Horizon. Где-то в 2013 г. было решено сделать вертикальный срез игры. Сама концепция вертикальных срезов достаточно спорная и многие разработчики ее не любят. Создать такой срез, по сути фрагмент игры, отполированный до финального качества, совсем непросто, это требует ресурсов и усилий. В случае Horizon Zero Dawn команда скомпоновала все имеющиеся прототипы в 20-минутную игру, довела ее до играбельной, но не до финальной кондиции, чтобы понять, насколько жизнеспособно и весело это может быть.

Horizon Zero Dawn

В итоге у них получилось, концепт понравился всем. Но одновременно с этим демо показало ограничение текущих технологий, процессов и инструментов Guerrilla Games. Примерно в это же время Killzone Shadow Fall подошел к релизу, и Horizon Zero Dawn перестал быть модом к Killzone, было принято решение внести серьезные изменения в игровой движок. Часть из необходимых нововведений подсказал как раз вертикальный срез.

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

Horizon Zero Dawn

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

Horizon Zero Dawn

И наконец, еще один важный аспект, который нуждался в улучшении – скриптинг. В Killzone для скриптинга использовалась LUA. Эта система популярна у разработчиков игр, но она медленная и ужасна в отладке. Любая опечатка в идентификаторе объекта приводит к тому, что найти ошибку можно только в процессе выполнения, а учитывая количество объектов и размер игрового мира – это настоящая проблема. В итоге был создан собственный визуальный скриптовый язык, представляемый в виде графов и узлов, причем каждый узел в этом графе – функция C++. Теперь каждый объект можно было залинковать, так что никаких опечаток и ошибок подобного рода. Благодаря же использованию C++ скрипты получились очень быстрыми. Ну и, в конце концов, графы преобразовывались в текст и компилировались с помощью Clang в динамические библиотеки, то есть большинство ошибок можно было выявить еще в процессе компиляции, без поиска их в самом игровом мире. Это серьезно ускорило процесс отладки скриптов.

После завершения Killzone Shadow Fall и DLC Intercept, добавляющего в Shadow Fall кооперативный режим, начался процесс переключения сотрудников Guerrilla Games с одного проекта на другой. Команда Horizon начала быстро расти. Увеличилось и общее количество сотрудников студии, были наняты новые специалисты, например, дизайнеры квестов. В 2014 г., после четырех лет прототипирования, Horizon Zero Dawn перешел в стадию производства. Но это уже другая история.


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: