«Каждая механика скрывает тысячу микрорешений»: игровые разработчики — о сложностях своей работы

Тот случай, когда трудности возникают даже с базовыми задачами.

Источник: <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fwww.ign.com%2Farticles%2Fturns-out-hardest-part-making-game-everything&postId=856475" rel="nofollow noreferrer noopener" target="_blank">IGN</a>
Источник: IGN

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

Недавно автор IGN Ребекка Валентайн поговорила с сотней разработчиков и спросила у них, что в разработке самое сложное. Ответы получились разнообразными: респонденты рассказывали о средствах перемещения между локациями, интерфейсе, взаимодействии объектов и многом другом. Выбрали главное из материала.

Перемещение между локациями

Давно известно, что двери своим непредсказуемым поведением добавляют разработчикам головной боли. К примеру, авторам The Last of Us Part II для удобства игроков пришлось сделать так, чтобы двери автоматически закрывались в бою и оставались открытыми при спокойном исследовании локации.

Другие способы перехода между помещениями реализовать тоже сложно. Для креативного директора The Deep End Games (адвенчура Perception) Билла Гарднера это, например, игровые лифты. По его словам, не важно, нужно ли перевезти персонажа на один этаж или соединить две большие локации: проблемы возникнут в обоих случаях.

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

Даже если удастся решить проблему с ИИ, лишив его персонажей в лифте, то как убедиться, что они не выглядят как идиоты? Ведь они будут просто стоять внутри, и, вероятно, им потребуется уникальный паттерн поведения.

Билл Гарднер, креативный директор The Deep End Games

К тому же, когда лифт перемещается между этажами, игрок должен видеть, что он «занят». Это тоже добавляет сложностей.

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

Билл Гарднер, креативный директор The Deep End Games

Авторы VR-игры The Walking Dead: Saints & Sinners столкнулись с классическими дверными проблемами. В одной из сцен они обнаружили баг: ходячий пытался пройти через дверь в тот момент, когда игрок открывал её. Разработчики смогли обратить проблему в свою пользу: они разрушили объект и создали запоминающуюся игровую ситуацию.

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

Билл Феррер, старший ИИ-инженер Skydance Interactive
The Walking Dead: Saints &amp; Sinners
The Walking Dead: Saints & Sinners

Другая проблемная механика — подвижные платформы. Программист студии Serenity Forge Кайл Доннелли говорит, что разработчикам, прежде чем добавить их на уровень, нужно ответить на десятки вопросов.

К примеру, как поступить, если платформа толкает персонажа в потолок? Стоит ли в этом случае протолкнуть его через платформу, раздавить его или остановить саму платформу? А что делать с другой платформой, которая движется на игрока сверху?

Можно добавить несколько движущихся платформ. Что, если игрок стоит на двух сразу, и они движутся в разные стороны? Стоит ли разделить персонажа на две части? Пересадить его на более быструю платформу? Оставить на платформе, на которой игрок проводит больше времени? А когда вы решите, как они должны двигаться, то столкнётесь с набором других проблем, связанных с физикой.

Кайл Доннели, программист Serenity Forge

Учитывать надо даже ходьбу персонажа. По словам Анди, программиста студии Unknown Worlds, команде потребовалось время для настройки ходьбы, ускорения и перемещения предметов в Subnautica, чтобы все механики работали. Но проблемы возникали даже когда, казалось бы, всё было предусмотрено.

Несколько недель назад я обнаружил интересный баг: иногда игрок замирал при прыжке. Оказалось, что часть нашего кода для ходьбы, который мы использовали больше семи лет, скрывала проблему, которая проявлялась при разгоне оборудования. Всё было хорошо, пока вы не достигали 200 FPS.

Анди, программист Unknown Worlds

Взаимодействие объектов

Многие разработчики отметили, что даже простая сцена с поднятием предмета персонажем способна доставить проблемы. Дизайнер студии The Wandering Band (градостроительный симулятор Airborne Kingdom) Бен Уондер рассказал, что авторам приходится рисовать разные анимации даже когда герой держит схожие объекты. По-другому добиться нужного результата невозможно.

Объекты сами по себе нереальны, у них нет плотности или физических границ. И если вы хотите, чтобы герой держал, к примеру, яблоко, художник должен настроить расположение его пальцев: они должны идеально обхватывать фрукт. Хотите заменить яблоко на киви или грейпфрут? Сделайте другую анимацию! Именно поэтому вы часто видите, как персонажи передают уникальные квестовые предметы под камерой, а их руки проходят сквозь дверную ручку.

Бен Уондер, дизайнер The Wandering Band

Разумеется, со взаимодействием нескольких персонажей всё ещё сложнее. Одри Лепренс, сооснователь студии The Game Bakers, рассказала, что работа над движениями героев Haven была настоящим кошмаром.

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

Haven
Haven

Художник ещё не вышедшей игры No Place for Bravery Жуан Эссе поделился подробностями её создания. По его словам, авторы нарисовали для протагониста 142 уникальные анимации, что немало для инди-проекта. Дело в том, что герой носит на спине сына, и каждое движение должно учитывать не только положение ребёнка, но и его отсутствие.

Оба героя крутятся, что создаёт иллюзию удара
А здесь заметно, что авторам пришлось перерисовывать положение щита из-за отсутствия ребёнка

Однако персонажи могут действовать по-разному: к примеру, когда протагонист сражается, его сын может указывать на какой-то предмет. Поэтому авторы потратили много времени на создание независимых анимаций.

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

Жуан Эссе, художник No Place for Bravery

Другой проблемный аспект — вода. Сооснователь Unknown Worlds Макс МакГуайр поблагодарил игроков за то, что они понимают, насколько трудно её делать в видеоиграх. В то же время он считает, что многие даже не представляют, как сложно заставить её находится в нужном месте.

Subnautica
Subnautica

МакГуайр проводит параллели с реальностью: вода занимает определённый объём, и в играх он обычно представлен в виде простых форм.

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

Как только вы добавляете лодки, субмарины, подводные базы или пещеры, вы сталкиваетесь с проблемой. Пространство, которое занимают объекты, не должно содержать воды (если, конечно, у вас нет протечки!), поэтому его следует отрезать от водного массива. С точки зрения кода геймплея это делается серией проверок, которые определяют, сможет ли игрок дышать в этой конкретной точке. Находится ли игрок в океане? Находится ли он на лодке? Тонет ли лодка? Ответ на вопрос «в воде ли игрок» в Subnautica представляет собой удивительно сложный кусок кода.

Макс МакГуайр, сооснователь Unknown Worlds

Связное повествование и локализация

Бывший QA-специалист BioWare Арон Ле Брей рассказал о сложностях работы над Mass Effect. По его словам, студии пришлось внимательно отслеживать, чтобы игра правильно реагировала на решения геймера.

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

Mass Effect
Mass Effect

А вот проблему с Тали в Mass Effect 3 авторам пришлось исправлять патчем. Если игрок развивал с героиней роман во второй и третьей части, и она умирала в миссии по примирению кварианцев и гетов, то персонаж всё равно являлся игроку перед финальной миссией с напутственной речью. Разработчики в шутку называли этот баг «проблемой с Тали-зомби».

Mass Effect
Mass Effect

Авторы The Elder Scrolls Online тоже пытались исправить один баг целый год после релиза. В игре геймеру встречаются деревни, которые атакуют враги, и он может пройти мимо или помочь жителям отбиться. В первом случае поселение продолжает гореть, а во втором оно возвращается в мирный вид.

Разработчики сделали две модели деревни: для тех, кто помог, и для тех, кто прошёл мимо. Проблема проявилась только после релиза. Если напарник игрока ещё не выполнил квест с деревней, то он исчезал, когда они проходили мимо неё. Его переносило к модели горящего поселения, в то время как второй геймер оставался рядом с невредимой деревней.

Игроки, закончившие квест, даже не могли помочь друзьям. Хуже того, мы использовали метод с разными моделями для квестов и точек интереса по всей игре: в каждой зоне их было больше десятка. Вместо того, чтобы менять мир, как было заявлено, игрок постоянно спрашивал: «Почему мои друзья исчезают?».

Мэтт Фирор, директор ZeniMax Online Studios

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

The Elder Scrolls Online
The Elder Scrolls Online

Трудности возникают и с оформлением символов. Продюсер студии Harebrained Schemes (Shadowrun Returns) Джи Си Лау рассказала, что на экран тяжело перенести даже одну строчку текста. К примеру, однажды она столкнулась с проблемой из-за размера букв в шрифтах.

Буквы в русских шрифтах, которые мы использовали во время работы над Battletech, почему-то оказались на два пикселя выше латинского алфавита. Этого было достаточно, чтобы текст ломал поля и попросту не рендерился. Мы не могли понять, почему это происходит, пока разработчики интерфейса не посмотрели и не сказали, типа, «да, всё из-за того, что этот шрифт немного выше английского, потому что… да потому».

Джи Си Лау, продюсер Harebrained Schemes

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

Microsoft представила список друзей, когда я работала над локализацией Xbox. Однажды на экране выскакивало небольшое уведомление с сообщением «Socialize with your friends» («Общайтесь со своими друзьями»). В польском это почему-то оказалось переведено, как «Support socialism with your friends» («Поддерживайте социализм с друзьями»). К счастью, мы заметили эту ошибку.

Джи Си Лау, продюсер Harebrained Schemes

С Лау согласился директор студии Terrible Posture Games Джо Мирабелло. Он сказал, что проблемы особенно часто возникают с немецким языком: в нём существует множество слов, которые обозначают конкретные ситуации и вещи. Поэтому его команде сложно работать над немецким переводом даже при наличии специалистов из Германии в штате.

Навигация и пожелания игроков

Разработчикам всегда сложно заставить геймеров выполнить определённое действие. По словам креативного директора студии Young Horses (адвенчура Bugsnax) Кевина Зуна, авторы игр не любят говорить игрокам, что делать: они предпочитают лишь намекать на нужные действия. Поэтому разработчики проводят много времени за тестированием, пытаясь понять, где геймеры застревают чаще всего.

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

Кевин Зун, креативный директор Young Horses

Нарративный директор Александр Хорн рассказал, что при работе над обучением в Kingdoms of Amalur: Reckoning его коллегам пришлось поменять расположение квестового предмета, потому что друг разработчика не мог его найти на небольшой локации.

В первой локации изначально требовалось снять меч с мёртвого тела. Мой друг, вполне опытный игрок, немного потестил игру, проведя в нужном помещении десять минут. Ему не удалось найти меч, даже когда он исследовал каждый уголок подземелья. Смотреть на это было невыносимо, хотелось закричать: «Ну вот же он!». Но это был бесценный опыт. В итоге мы переместили меч в дверь, чтобы игрок мог сразу покинуть локацию.

Александр Хорн, нарративный директор студии Impulse Gear

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

В идеале клик должен без проблем выполнять нужное игроку действие. Всё это должно «просто работать». За кулисами же мы пытаемся понять, что обозначает намерение, сортируя разные возможности и проводя расчёты. Да, вы кликнули на врага, но есть ли рядом предмет, который игрок мог захотеть подобрать? Вы хотели атаковать противника или просто приблизиться к нему? Находитесь ли вы в зоне его видимости?

Манс Ольсон,

геймдиректор Minecraft Dungeons

Пол-Эмиль, ведущий FX-художник игры Absolver, рассказал, что однажды фанаты попросили команду добавить в неё прыжок. Но разработчики лишь нервно посмеялись над просьбой.

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

Пол-Эмиль, ведущий FX-художник Absolver
Absolver
Absolver

Базовые функции

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

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

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

Фернандо Реско, инженер Armature Studio

Люди даже не представляют, как тяжело оживлять убитых противников или откатывать действия игрока. Перед тем, как вернуть всё на свои места, надо провести уйму предварительной работы. Именно поэтому в старых играх не было сохранений.

Squidly,

разработчик игры Renaine

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

Мы копались в коде, пока один из программистов не понял, что скрипты сохраняли точку восстановления под названием «Research» при быстром перемещении в Сектор исследований после Лабиринта. А все наши сэйвы, сделанные в этом секторе, по умолчанию попадали в раздел для сохранений под названием «research».

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

Арто Суоминен, QA-менеджер Remedy
Ещё авторам Control пришлось ответить на множество вопросов о механике стрельбы. Даже самые базовые вещи вроде прицела приходилось обсуждать и долго тестировать
Ещё авторам Control пришлось ответить на множество вопросов о механике стрельбы. Даже самые базовые вещи вроде прицела приходилось обсуждать и долго тестировать

Старший программист студии Phoenix Labs (экшен-RPG Dauntless) Крис Поллок рассказал о трудностях с подключением в мультиплеерных играх. По его словам, большинство игроков считают, что проблему можно решить дополнительными серверами. Но на деле всё намного сложнее.

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

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

Крис Поллок,

старший программист Phoenix Labs

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

Важно помнить об универсальном языке игр и не путать публику необычными решениями. Если вы не используете слова «играть», «настройки» или «опции», то геймеры не смогут даже начать игру! А теперь представьте, что будет, если вы решите привязать прокрутку меню на клавиши Y и B вместо стика или крестовины. Такие странные решения могут «сломать» того, кто просто хочет начать играть.

Лиам Эдвардс, независимый разработчик

Технический дизайнер независимой студии Firesprite Фред Хорган рассказал, на какие вопросы нужно ответить при разработке инвентаря и его содержимого.

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

Сценарист студии Downpour Interactive (шутер Onward) Митч Дайер подвёл итог дискуссии, рассказав историю из будней разработчиков. Если авторы решают создать сцену разговора между двумя героями в кафе, то у команды могут возникнуть проблемы сразу на нескольких этапах: начиная с симуляции жидкости в чашках (если она отсутствует в игре в целом) и заканчивая оформлением стола. Подобная сцена может потребовать создания уникальных объектов и механик, что не так-то просто для разработчиков.

Дайер посоветовал обдумывать любое решение, чтобы избежать подобных ситуаций.

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

Митч Дайер, сценарист Downpour Interactive

С коллегой согласилась Габриэла Сальваторе, соосновательница игровой студии Beans.

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

Габриэла Сальваторе,

соосновательница игровой студии Beans

227227
124 комментария

Бред.
Игры делаются очень легко, а «разработчик» это не работа. Я в комментариях на игровом ресурсе DTF читал.

105
Ответить

Комментарий недоступен

44
Ответить

И правильно, что читал)

7
Ответить

Как сказать. Я вот тоже почитал ДТФ решил сделать свою игру.
Открыл юнити. Открыл анреал энджин.
А там СиПлюсПлюс, питон, какие-то массивы данных, текстуры, спрайты.
Короче сделал все что смог:

3
Ответить

Вот именно. А еще пока эти "разработчики" спокойно себе спят, стоимость разработки с каждым днём дорожает! Пассивный доход, короче!

1
Ответить

Комментарий недоступен

Ответить

Комментарий недоступен

52
Ответить