Hella World: фрустрация на интерфейсах
Когда-то деятельность иммиграционных служб настолько вдохновила Лукаса Поупа, что он придумал Papers, Please. Молодой геймдизайнер из Новосибирска Алексей Кравченко пошел дальше и перенес рутинную работу графического дизайнера в игру Hella World, где основной геймплей целиком построен на интерфейсах UE4. В этом материале Алексей расскажет о тонкостях разработки проекта “не для всех” и о том, что в итоге у него получилось, а также поделится своими размышлениями о гейм-дизайне и индустрии в целом.
Как придумать самый скучный симулятор дизайнера
Алексей долгое время работал в области 3D-моделирования и анимации, а затем стал осваивать программирование. Когда почувствовал уверенность в своих навыках, начал делать игры в качестве хобби. В 2018 году он основал небольшой коллектив единомышленников под названием Iron Games. Первой игрой была Whack 'em All — симулятор сотрудника Роскомнадзора, который отчаянно бил по кнопкам автомата банхаммером, чтобы заблокировать неугодный Telegram. Злободневная тема сыграла начинающей команде на руку — проект получил отклик у игроков, несмотря на плохую оптимизацию. Но продолжать разработку хайповых мини-игр не тянуло: больше хотелось необычных историй и интересного геймплея. В начале 2019 года Алексей просматривал на reddit гифки с фрустрирующими интерфейсами и его посетила мысль: убогие дизайны могут стать основой для отличной игровой механики. Так родилась идея Hella World.
Игрок в роли графического дизайнера выполняет рутинные заказы на визитки, флаеры, вывески и другую рекламную продукцию. В его распоряжении — виртуальный рабочий стол, по дизайну схожий с ОС Windows, а в качестве устройств ввода — мышь (клавиатура залита кофе и восстановлению не подлежит). Выполнять задания только мышкой — одна из особенностей игры. Время идет, пользователь отчаянно копается в интерфейсах и пытается найти нужную опцию, а клиенты нервничают и постоянно торопят. А когда, наконец, получают заказ, часто просят переделать.
Концептуальная безысходность
Очевидно, что Hella World — проект не для всех. Целевая аудитория этой аутичной игры — люди, которым нравится методичный, вдумчивый геймплей. Алексей посчитал, что большую роль сыграет нарастающая сложность игры. Например, с нескрываемым раздражением игроку удалось выполнить задание. На следующей рабочей “сессии” его ждет сюрприз: производитель ПО внезапно выкатил новое обновление для операционной системы. Интерфейс поменялся, к нему снова надо привыкать. У каждого ли найдется терпение одним курсором набирать дату или слова в строке? А если в новом апдейте появится набор чисел наподобие дискового телефона?
Идеи крутились в голове у Алексея одна за другой. Наверное, поэтому придумывать игровые механики намного приятнее, чем делать саму игру. Как собрать из всего вышеперечисленного полноценную игровую систему? Вставлять единичные вариации каких-то кусков интерфейса неправильно и неинтересно. Их бы объединить в системы и категории. Например, в какой-то день произошло глобальное событие, и программа обновилась до 2.0, а на следующий день случился откат: кнопки + -, с помощью которых игрок подбирал нужный номер телефона, поменялись на только +.
Алексей обратился за помощью к знакомым: ему нарисовали концепты, интерфейс и написали музыку. На этой основе команда сделала первый билд на 20-30 минут геймплея. Этого достаточно, чтобы понять, кому игра понравится. Через какое-то время задумка стала глубже: появилась внешняя оболочка в виде мини-игр с нарративной составляющей.
Алексей Кравченко: "Однажды я как обычно ехал на нелюбимую работу, сидел в телефоне. Когда экран смартфона погас, я увидел в нем свое отражение. Критично оценив свой усталый вид и мешки под глазами, я понял, что так жить нельзя. А уже в метро, когда поезд въехал в темный тоннель, опять появилось отражение моего лица, побитого жизнью. Я подумал, что это состояние найдет отголосок в душе многих людей и неплохо ляжет на игровую систему, где рутина и постоянные апдейты сводят человека с ума. Денег платят мало — времени тратишь много. Уныние, тлен, безысходность. Если мы сможем правильно реализовать это в игре — получится немой диалог игрового персонажа с отражением. Более того, появится некая спираль: игрок глазами персонажа вглядывается в его отражение. А если игрок в этот момент сам выйдет из игры, то в отражении выключенного монитора он увидит себя настоящего. В задумке все сошлось идеально. И этот второй слой игры в “реальном” мире мне тоже захотелось развивать."
Чем занять игрока, когда персонаж покидает рабочее место? Можно почистить зубы, гладить рубашку, резать стейк ножом, нажимать на кнопки аппарата с газировкой, цеплять вилкой горошинки на тарелке, в конце концов. Управление мышью в “реальном” мире оставили, чтобы игрок как можно меньше отвлекался на разные схемы управления и оставался внутри игры, переключаясь между интерфейсной работой и бытом. Например, игрок просто смотрит на “себя” в отражении зеркала и мышкой проводит по зубам щеткой. Действие продолжается 5-10 секунд, в это время взгляд игрока – на курсоре и кончике зубной щетки. Затем сцена меняется и его взгляд падает на другой объект, но он все еще видит свое отражение. Алексей сравнивает этот прием с монтажом на лету по заветам Эдгара Райта.
Алексей Кравченко: "Это круто работает с точки зрения нарратива и режиссуры. Для персонажа каждый день одинаковый. Все происходящее для него как слайд-шоу. Вот он чистит зубы, моргнул — и вот уже едет в метро. Задумался о чём-то: бам! И он уже за компом сидит. Все эти сцены, в которых игрок видит свое отражение, отлично совмещаются. Общая система управления, монтаж на лету — все вместе работает в симбиозе, чтобы передать идею уставшего, выгоревшего работника, который весь день смотрит на себя в отражении и не очень этому рад. Видит щетину, мешки под глазами, и в целом выглядит нездорово."
Windows на UMG
По скриншотам очевидно, что графика в Hella World не играет большой роли. Зачем делать такую игру на Unreal? Так как программиста в Iron Games на фултайме не было, а Алексей больше занимается гейм-дизайном, ему комфортнее работать на блупринтах. Опыт с визуальным программированием помогает сейчас и на основной работе: он может сам отработать какие-то вещи, не дожидаясь, пока к делу подключатся кодеры.
Также в UE есть инструмент Unreal Motion Graphics UI Designer (UMG). Он помогает делать HUD для отображения параметров персонажа и настроек. Его широко применяют в мобильных проектах для интеграции внутриигровых меню.
Почему бы не создать аналог Windows на UMG и не сделать его основой геймплея? Алексей старался сделать интерфейс максимально неудобным, например, превратить ползунок громкости в номер телефона от 000-000-000 до 999-999-999.
Не все удалось реализовать с помощью блюпринтов. Система хранения файлов и папок вымышленной ОС и ее функционал (перемещение, удаление и восстановление из корзины) сделаны на C++ программистом. На коде работает и запись шаблонов с дизайнами, а также реакция “заказчика” на них. Реакция клиента может быть абстрактной: например, он попросит игрока “сделать что-нибудь поярче”. Остальные вещи — выпадающие списки и окна — сделаны на блюпринтах.
На этом трудности не кончаются. Оказалось, что в UE нет никаких инструментов, чтобы игрок мог схватиться за заголовок окна и перетащить его курсором на другое место “рабочего стола”. Неоднократно случалось так, что при перемещении окно “улетало” в другое место. Проблема в том, что формально экран игры и монитора отдельны. Соответственно, систем координат несколько: для окна, для рабочего стола, для OC; их конвертация показалась Алексею сложной для понимания. Часто приходилось тыкать пальцем в небо.
Чтобы передвижение окна мышкой заработало, Алексей попробовал вариант с полупрозрачной копией: то, что часто видит пользователь при переносе файлов. Оригинальное окно сворачивается, а под зажатым курсором появляется копия. Когда кнопка мыши отпускалась, первое окно передвигалось в нужную сторону. Это работало, пока Алексей не проверил передвижение в оконном режиме. Выяснилось, что эта функция не ограничена рамками игры и распространяется на все мониторы. Например, в браузерной версии Hella World окно вылезало за область виртуального рабочего стола. Помог метод проб и ошибок.
Реалистичная чистка зубов
Мини-игры с отражениями — отдельный процесс разработки. Пока весь мир не перешел на RTX, отражения до сих пор ставят разработчиков в тупик. К счастью, в Hella World они планарные и изображение отзеркаливается от плоских поверхностей: компьютерного экрана, тарелки, зеркала, поэтому их можно аккуратно передать.
Как уже говорилось выше, сцены переключаются, и курсор вместе с направлением камеры находится примерно в одной позиции. Важно дать правильный ракурс. В сцене с тарелкой это легко: там рука с вилкой размещается по 3D-координате курсора. С отражением в зеркале хитрее: при виде от первого лица не совсем понятно, куда разместить зубную щетку. Из камеры от первого лица направляется луч в курсор, отражается обратно и летит в “лицо” персонажа, и только туда, где на “лице” оказалось отражение, ставится зубная щетка.
Алексей Кравченко: "Это обычный Ray casting, который используют во всех играх. Благодаря тому, как планарное отражение работает в движке, в Hella World это выглядит достаточно правдиво. Я перепроверял замеры и выяснилось, что точность не 100%, но визуально то место, куда должна попасть щетка и отражение идентичны."
Победа на фестивале
Задумки в течение года постепенно воплощались в жизнь, но демонстрировать результаты было пока рано. Трехнедельный онлайн-фестиваль Keep Calm, Do Games замотивировал команду не только продвинуться в разработке, но и собрать презентабельный билд в двух вариантах: на десктопе и в HTML-версии. К концу фестиваля разработчики сделали 3 уровня-дня с возрастающей сложностью.
С портированием игры в браузер проблем практически не возникло. Современные движки способны экспортировать готовый билд на любую платформу, в том числе HTML. Однако браузеры не очень дружат с 3D-графикой: ее обрабатывает отдельный процесс. Поэтому “тяжелый” проект на UE перенести в web-версию не получится. В итоге Iron Games портировали в браузер только интерфейсную часть Hella World, без сцен с отражениями.
Совмещение двух игр в одной — идея не очень, с точки зрения разработки. Но жюри разглядели в игре потенциал, и Hella World победила в номинации “Лучший нарративный дизайн”. За один из лучших дневников разработки Алексей получил билет на майскую конференцию DevGAMM Online. Он решил воспользоваться шансом показать свой проект издателям и найти инвестора.
Реакция издателей и дальнейшая судьба проекта
С билдом ознакомились более 20 издателей. По подсчетам Алексея, он получил семь отказов. Десять издателей никак не отреагировали. Пять компаний перестали отвечать на сообщения. Стало очевидно, что несмотря на приветливость паблишеров в общении, их главная цель — найти прибыльный продукт, и Hella World под это определение не подходит.
Сам Алексей считает, что ему не удалось достичь желаемого результата из-за трудного прототипа. Игрок вряд ли сочтет его веселым. Hella World не дотягивает до уровня Papers, Please, где есть сбалансированный рутинный процесс и “залипание”. Доказать, что у такой нишевой игры есть потенциал тоже не вышло. Единственный выход — самиздат или такой же “отбитый” издатель.
Алексей Кравченко: "Когда я питчил игру на DevGAMM, я ссылался на успех Papers, Please, но издатели сомневались в том, что Hella World будет такой же “жизовой”. Ведь практически каждый человек в своей жизни обязательно контактировал с пограничниками, и это надолго сохраняется в памяти. Кого-то не пропустили на таможне, кого-то долго мурыжили. А кто-то прошел контроль без проблем, но все равно испытывал страх. Что же касается графического дизайна, то он особо никому не интересен, кроме ниши людей, которые занимаются им профессионально. Я подумал над этим замечанием, но не согласен. Возможно, в сам графический дизайн мало кто вовлечен, но с результатами работы дизайнеров мы сталкиваемся каждый день: флаеры, футболки, вывески, баннеры... В “реальном” мире Hella World я тоже хотел показать результат прогресса игрока. И он бы заключался не просто в том, что игрок мог тратить деньги, но и видеть свои работы в повседневности: майки на прохожих, баннеры в метро и т.д. Подобной “жизы” в Hella World могло быть не меньше, чем в Papers Please, а то и больше."
Из-за недостатка средств проект заморозили. Но финал этой истории не так печален: умение работать с UE4 и геймдизайнерские навыки помогли Алексею устроиться в Tiny Build. Сейчас он работает над дизайном уровней в альфа-версии Hello Neighbor 2 и считает, что нашел работу мечты. Кто знает, может, когда-нибудь он вернется к Hella World с новыми идеями и решениями, которые изменят взгляд игрока на быт графического дизайнера? Или придумает что-то новое? Это вопрос времени.
Вместо заключения: пара рекомендаций разработчикам
Алексей усвоил два важных принципа, которые помогают в работе.
Разговаривайте со своими игроками. За каждой игрой стоят обычные живые люди. Чем больше они закрываются от своих потенциальных фанатов, тем больше к ним начинают относиться как к безликой корпоративной машине, которую можно обвинять во всех грехах. Закрытость приводит к тому, что все изъяны раскрываются в самый неподходящий момент.
С другой стороны — это огромный риск. Личный профиль сотрудника сразу становится мишенью для нападок и угроз. Если бы CDPR работали с аудиторией не от лица комьюнити-менеджера, а от конкретных сотрудников, работающих над игрой — это была бы катастрофа. Но и среди AAA-студий встречаются такие, где авторы готовы защищать свое видение и вести диалог с аудиторией. Например, Нил Дракманн из Naughty Dog.
Алексей Кравченко: "Мы часто видим как игры переносят, не объясняя реальную причину. Все студии говорят одно и то же: “Мы хотим, чтобы наш продукт соответствовал нашим стандартам качества”. При этом всем понятно, что игра, скорее всего, просто не до конца отполирована и нестабильна. Но когда диалога нет, фанаты начинают сами выдумывать мифы о халтуре в работе, о жадности разработчиков... Те, кто в геймдеве, понимают, что ситуация обычно чуть сложнее. Абсолютно точно оценить, сколько потребуется времени и денег на создание игры невозможно. Допустим, на этапе препродакшена, когда образ того, как должна выглядеть игра, только-только зарождается, игрокам кажется, что добавить мультиплеер в вашу условную игру с процедурной симуляцией животных, ландшафта и целых солнечных систем — хорошая идея. А через пять лет оказывается, что ваши расчёты были неверны и к релизу мультиплеер добавить не получится. Ты стыдливо сообщаешь это издателю, которому теперь придется в последний момент лепить на коробки с дисками стикер “Одиночная игра”. Почему разработчики прикрываются маркетинговыми кампаниями и до последнего скрывают от фанатов важные изменения, мне решительно непонятно. Кому от этого хорошо?"
Вопреки сложившемуся стереотипу, геймдизайнер — не царь на троне, который дает указы сотрудникам и принимает от них челобитные на подпись. И не гений, который воплощает концепции. Это человек, который ищет идеи из любых источников: от фанатов, сотрудников, семьи, из других игр — откуда угодно. В Hella World нет инновационных идей. Интерфейс виртуальной ОС — Papers, Please, помноженный на гифки с reddit. Концепция интерактивных сцен позаимствована из What Remains of Edith Finch. За счет переосмысления и компоновки этих идей, появились новые механики, которые заложили фундамент для необычного проекта. Таким образом, игра “эволюционирует”, а это значит, что геймдизайнер справился со своей задачей.