Hella World: Диалоги о дизайне

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

Hella World: Диалоги о дизайне

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

Напомню для тех, кто к нам только присоединился: Hella World — это болезненно скучная игра, происходящая в мире, который вас ненавидит. В Hella World игрок берёт на себя роль графического дизайнера, задача которого — создавать для клиентов разного рода полиграфию: визитки, открытки, флаеры, и т.д., борясь при этом с отвратительным интерфейсом, который явно не помогает игроку делать работу быстро.

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

Hella Clients

Наша квестовая система и система диалогов совмещены в одном окне, представляющим собой таск-менеджер, наподобие Jira или Trello.

во 1) что ты мне сделаешь вовторых мне нужна визитка
во 1) что ты мне сделаешь вовторых мне нужна визитка

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

Добрый день! Я представитель магазина Better World Inc.™, и в эту пятницу у нас стартует недельная акция: «Всё за полцены». Пожалуйста, сделайте клёвый флаер, чтобы он выглядел серьёзно и презентабельно. Заранее спасибо!

Типичный клиент

Из этого письма игрок вычленяет всю нужную информацию: сегодня 7е мая, а значит, распродажа идёт с 8.05 до 15.05, «полцены» -- это скидка 50%, а «серьёзный и презентабельный» стиль будет, скорее всего, строгим: без рюшек и ярких цветов. После этого игрок открывает редактор, выбирает нужный шаблон, и заполняет все поля на основе письма клиента.

Hella World: Диалоги о дизайне

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

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

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

Алгоритм генерации ответа от клиента
Алгоритм генерации ответа от клиента

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

  • Клиент адекватный (в дикой природе не встречается)
    - Отправляет всю инфу чётко и по пунктам
    - Отвечает чётко и по теме
  • Клиент обычный
    - Всю нужную инфу отправляет вразнобой
    - Даты пишет в формате «послезавтра», «следующая пятница», «до Хэллоуина»
    - Вносит правки в стиле «мне не нравится»
  • Клиент нервозный
    - Нервничает, часто пингует игрока «ну чё там»?
  • Клиент забывчивый
    - Отправляет инфу несколькими письмами
    - «ой я забыл вам логотип отправить», «ой у нас сайт поменялся»
    - Отвечает раз в тысячу лет, «ой простите я забыл ответить», вот это всё
  • Клиент неуверенный
    - Вечно недоволен дизайном, но не может сформулировать, почему.
    - «Ощущения не те, понимаете? Может, что-то ещё попробуете?»
    - Вынесет тебе все мозги бесконечными правками, в итоге согласится на самую первую итерацию дизайна
  • Заботливый родитель
    - «У меня сын тоже дизайнер»
    - Имеет ребёнка, который на бумажке накалякал дизайн визитки, требует сделать точь-в-точь как ребёнок сделал, но красиво
  • Клиент разговорчивый
    - Отвечает аудиосообщениями
    - Половину сообщения бормочет что-то не по теме, мычит, чото мямлит, забывает о чём хотел сказать вообще
  • И так далее

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

Hella World: Диалоги о дизайне

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

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

Время ссылок

Если вам понравилась эта статья, можете оценить прерыдущие статьи из цикла разработки Hella World:

Hella World: A Tidy Build — играбельное демо

Также подписывайте на нашу группу vk, чтобы следить за проектом после фестиваля

77
1 комментарий