Эксперимент · Работает

Магистр неопределённости

Маленькая автобиографическая игра о магистратуре Digital Humanities: пять комнат — от пары по программированию до гаража в Слободском, — самодельная ИИ-кошкодевочка, приглашение в метавселенную и пять концовок с одним и тем же выводом

Маленькая автобиографическая игра о магистратуре Digital Humanities, метавселенных, современном искусстве и невозможности получить окончательный ответ. Собрана при помощи ИИ, с оглядкой на экспериментальный геймдизайн Пиппина Барра.

Переехав в Петербург учиться в магистратуре ИТМО, я обнаружил, что искать смысл происходящего гораздо сложнее, когда живёшь в хостеле на троих, работаешь с верхней полки двухъярусной кровати и пытаешься запускать Unity на ThinkPad с 16 ГБ оперативной памяти.

Из этого получилась небольшая игра «Магистр неопределённости» (Master of Uncertainty). Её герой Стэнли немного напоминает Фауста, но вместо кабинета учёного у него узкий коридор хостела, вместо Мефистофеля — самодельная голубоволосая ИИ-кошкодевочка, а вместо философского камня — надежда однажды собрать собственную метавселенную.

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

Как пространство рассказывает историю

Мне хотелось, чтобы игра рассказывала о происходящем не только диалогами. Вдохновением стала The Artist Is Present Пиппина Барра, в которую мы играли на Game Studies. Там ожидание в очереди становится самой игровой механикой. Игроку приходится заниматься тем, что обычно стараются убрать из игр ради удобства.

Я попробовал перенести этот подход на собственные обстоятельства.

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

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

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

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

Последняя комната — гараж в Слободском. Здесь ждут самодельный робопёс, портал в XR и несколько возможных продолжений жизни Стэнли.

Во всех пяти концовках вывод одинаковый.

СМЫСЛ НЕ НАЙДЕН.

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

Что внутри технически

Первоначально всё строилось вокруг ограничений Bitsy. Это маленький движок для игр с комнатами, персонажами и диалогами. Его простота здесь оказалась полезной. Вместо нескольких месяцев моделирования окружения в Unity можно сосредоточиться на том, куда идёт игрок, что ему говорят и как устроен выбор.

Каждая комната имеет сетку 16 × 16 клеток. Графика состоит из нарисованных по сетке 8 × 8 пикселей тайлов и спрайтов.

В текущих данных игры находятся пять комнат, 22 типа тайлов, 17 спрайтов вместе с аватаром Стэнли, пять подбираемых предметов и 30 записей диалогов, включая переходы и финалы.

У комнат собственные цветовые палитры и мелодии. У NPC задана позиция, внешний вид и идентификатор диалога. Если игрок пытается перейти на занятую персонажем клетку, вместо движения запускается разговор.

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

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

Почему появилась отдельная HTML-версия

С редактором Bitsy возникли проблемы, о которых тоже стоит рассказать.

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

Поэтому браузерный вариант получил отдельный небольшой движок на JavaScript.

Он работает через HTML Canvas размером 256 × 256 пикселей. JavaScript рисует карту, проверяет столкновения со стенами и NPC, обрабатывает подбор предметов, выводит диалоги и переносит персонажа между комнатами.

Игровые данные хранятся в JSON-подобной структуре, которая содержит описания комнат, палитры, спрайты, диалоги и музыку. Русская и английская версии включены в один HTML-файл. При переключении языка прохождение начинается заново.

Внешний сервер для этого не нужен. Готовый HTML работает локально, без API и подключения к интернету.

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

Пять мелодий без аудиофайлов

Музыка тоже генерируется программно. Для каждого уровня предусмотрена короткая зацикленная тема.

В браузерной версии используется Web Audio API. Звуки создаются осцилляторами с прямоугольной и треугольной волной. Последовательности нот, их высота и темп записаны в игровых данных. Поэтому не требуется загружать MP3 или подключать звуковую библиотеку.

Есть любопытная разница между движками. Оригинальный Bitsy приостанавливает мелодию на время диалога и возобновляет после него. В самостоятельной HTML-версии я оставил музыку звучать во время разговора, чтобы атмосфера комнаты не исчезала каждый раз, когда персонаж произносит реплику.

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

Где здесь искусственный интеллект

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

И это оказалось отдельным источником проблем.

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

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

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

Для короткой истории это даже полезно. Игроку не нужно ждать генерации текста, а каждый разговор работает на определённую тему. Настоящий LLM-компаньон потребовал бы совсем другого устройства игры, состояния персонажа и работы с памятью.

Немного Digital Humanities

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

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

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

Из этого возникает вполне реальный исследовательский вопрос, который герой подбирает во второй комнате.

Как совместное присутствие в XR влияет на переживание близости и одиночества?

Именно тут гуманитарные методы начинают дополнять технические навыки, а не конкурировать с ними.

Что получилось

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

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

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

Смысл магистратуры я пока не нашёл. Зато теперь про его поиски есть маленькая игра, которую можно открыть даже на старом ThinkPad.

И в ней, к счастью, Unity выдаёт больше полутора FPS. Потому что Unity там вообще нет.


Технологии: Bitsy, JavaScript, HTML Canvas, Web Audio API, JSON, AI-assisted development.

Платформы: браузер на компьютере и телефоне.

Языки: русский и английский.

Формат: экспериментальная нарративная микроигра, автобиографическая игровая зарисовка.