1. Веб-разработчик, который ни разу не делал игр
В программировании я хоть и давно, но вся моя деятельность в основном была связана с веб-разработкой: сайты, приложения, аккуратные интерфейсы, которые должны работать в любом браузере и не разваливаться от одного неверного клика. Игр я не делал никогда. Хотел, конечно, — наверное, как и любой человек, который провёл детство за монитором. Но между «хочу сделать игру» и реальными действиями всегда стояли C#, C++, Unity, Unreal, Godot: чужая территория, на которую нужно переезжать со всем скарбом и заново учиться ходить. Так что мечта так и продолжала оставаться мечтой.
А потом появились они — великие и ужасные ИИ-модели. ИИ-технологии разогнались настолько, что обещать «сделаю что угодно в сжатые сроки» стало обычным делом — правда, как выяснилось на практике, с минимальными (нет) усилиями. Для меня в этом был простой вопрос: если возможность есть, глупо ею не воспользоваться, чтобы наконец закрыть давнюю мечту. Не однодневку, которая умрёт ещё на этапе создания, а такую игру, в которую самому будет интересно играть, а в идеале — позвать друзей и зарубиться вместе.
Решение, которое я принял почти сразу: не идти учить новый стек. Не потому, что это плохой путь, а потому что у меня уже был свой. Браузер и JavaScript — то, что я знаю и где набита рука, где не нужно думать про основы, а можно думать про саму игру. Я выбрал не самый мощный инструмент в индустрии, а самый понятный мне, и это оказалось правильным первым шагом всей истории.

Так сейчас выглядит моя St. Bedlam’s. А начиналось всё с другой игры.
2. Boonan и первая проба: «Генезис»
Дальше нужно было решить, где именно делать игру. Unity и Unreal отпали вместе с языками, на которых они живут. Мне нужна была среда, где результат можно запустить в браузере и сразу потрогать руками.
Так я и остановился на boonan.io. Там есть браузерный редактор, в котором собирается карта, интерфейс, логика и физика, а готовую сцену можно сразу запустить в том же редакторе и проверить. Логику я сначала собирал на том ограниченном JS-подобном языке, который предоставляет платформа: код превращается в графы, и это довольно наглядно показывает, что происходит в игре. Движок и редактор писал не я, и это важно понимать про всю историю: я делал игру и выстраивал процесс работы агента, а не изобретал платформу.
Первые пробы были именно пробами: маленькие сценки, проверки «а получится ли вообще». Больше всего меня удивило, насколько быстро получается собрать сцену. В редакторе довольно быстро появлялось что-то, что можно запустить. И столь же быстро выяснилось, что «сцена есть» и «играть приятно» — не одно и то же. Приятность управления, физика и внешний вид не появились сами: их приходилось запускать, смотреть и править, и править, и править.
Постепенно из этих проб выкристаллизовалась первая игра, которую не стыдно показать, — «Генезис». Идея пришла из детства: The House of the Dead. Рельсовый тир, где ты не бегаешь по уровню, а едешь по коридору и отстреливаешь всё, что вылезает навстречу. Мне показалось, что такой формат идеально ложится именно на браузер: не нужно строить огромный открытый мир и мучиться с камерой, зато нужно очень плотно работать с тем, что происходит в кадре. Клона делать не хотелось — это было бы скучно и нечестно по отношению к тому, что мне нравилось в оригинале. Поэтому я начал прикидывать, что можно привнести от себя.
Привнести хотелось физику. Мне было интересно, чтобы попадание ощущалось не сменой спрайта на «убитый», а настоящим событием: регдолл, отрыв конечностей, чтобы враг разваливался так, как разваливался бы в реальности. С физикой мы ещё повозились. Я запускал игру, стрелял по врагам и возвращался к агенту с правками. Смотреть на то, как они разлетаются от попаданий, было приятно, но хотелось, чтобы и сами выстрелы ощущались хорошо. Тут уже приходилось играть самому и объяснять, что именно не нравится.

«Генезис»: короткий фрагмент первого эпизода.
Посмотреть, что вышло, можно здесь: boonan.io/game/genezis.
3. Смена масштаба: The Bob Boys
После «Генезиса» стало ясно, что рельсовый тир — отличная разминка, но хочется больше. Мне захотелось попробовать выжать максимум из JavaScript, из браузера и из того, что даёт Boonan. И проект, к которому я перешёл, изначально назывался The Bob Boys.
Вдохновлялся я Fall Guys и Party Animals: весёлые болванчики, которые плохо управляются, падают, толкаются и т.д. Именно это даёт приятные эмоции и возможность просто расслабиться с друзьями вечером под пиво. Но снова — я не хотел делать копию. Мне было интересно повторить не игру целиком, а её суть: чтобы физика была главным источником веселья, чтобы персонажи вели себя как живые мешки с конечностями. А сверху добавить что-то своё.
Своим я придумал пульт наблюдения. Идея простая: когда ты выбыл или финишировал, игра для тебя не заканчивается — ты берёшь пульт и продолжаешь участвовать. Можно смотреть, что происходит на карте, а можно и вмешаться: сбросить банан, гирю или бомбу. Мне казалось важным, чтобы человек не выпадал из раунда и не уходил в другую вкладку.
К этому моменту я уже успел напланировать ещё кучу всего: новые карты, режимы, выбор предметов перед раундом, эффекты на всю карту. Всё хотелось попробовать, и от каждой идеи тянулись ещё несколько. Но я довольно быстро понял, что с таким списком в намеченные сроки не уложусь. Буду месяцами что-то добавлять и переделывать, а игра так и останется проектом, который я однажды собираюсь выпустить. Поэтому часть задумок пришлось отложить и заняться тем, что уже было: довести до состояния, когда можно позвать людей играть.
Начинался проект как The Bob Boys, а до публичного выпуска добрался уже под названием St. Bedlam’s.

The Bob Boys в конце октября и St. Bedlam’s сейчас.
4. Как я работал с агентами
Агентов я подключал к редактору через MCP (Model Context Protocol): через это подключение они могли читать и менять проект в Boonan. Доступ нужно настроить отдельно. Работал я с Claude и Codex: ставил задачу, агент лез в проект, что-то менял, я шёл смотреть. Первое время это выглядело как магия. Потом — как переписка с очень уверенным подрядчиком, который не помнит о чем мы трындели с ним вчера.
Самое коварное в подобном подходе — ответ от агента «всё окей, бро, можешь смотреть результат». Агент отчитывается, что всё исправлено, а в игре ничего не изменилось. Он поправил файл, но состояние не дошло до редактора. Или дошло, но при запуске рантайм собрал старую версию. Или поведение есть, но не в том сценарии. Проверять нужно не отчёт, а игру: запустить, воспроизвести ситуацию, посмотреть глазами. Я довольно быстро перестал верить сообщениям и стал верить только тому, что вижу на экране.
Второе открытие: агент не может «почувствовать» игру. Он не заметит, что персонаж вроде бы идёт, но управлять им неприятно, что камера дёргается, что анимация не совпадает с моментом удара. Всё это можно отследить только играя в саму игру, через собственные ощущения.
И третье: чем больше проект, тем важнее не формулировка просьбы, а наличие проверки. Об этом — следующий раздел, но начну я его не с методики, а с того, как меня к ней привели сами баги.
5. Физика, стенд и 2 бага
Мне хотелось чувствовать столкновения в игре. Упираешься в ящик, пытаешься его сдвинуть, получаешь толчок в ответ. Пока же персонаж катил коробку перед собой, будто она ничего не весила. Ящик отъезжал, а кукла продолжала бежать, почти не замечая препятствия.
На основной карте было трудно разобраться, почему так происходит. Там одновременно работали управление, анимации и сеть. Приходилось сначала выяснять, кто из них виноват, и только потом заниматься самим столкновением. Поэтому мы собрали отдельный Boonan-проект с капсулой и коробками. На маленькой сцене можно было спокойно гонять столкновения и смотреть, кто на кого влияет. Коробка получала толчок от персонажа, а он от неё почти ничего не получал. Позже персонажей основной игры перевели на динамические тела встроенной физики Boonan, чтобы воздействие было взаимным.

Тот самый отдельный стенд: капсула, коробки и ничего лишнего.
С захватом обнаружился способ выиграть раунд, повиснув над пропастью. Один игрок хватал другого и падал с ним с карты. Сам выбывал, а удерживаемая кукла оставалась в воздухе. Остальные ещё прыгали по платформам, а ей достаточно было дождаться, пока все проиграют. При выбывании игрока захват не сбрасывался. Исправили освобождение, чтобы кукла падала, и сохранили этот случай в проверках.
Параллельно шла совсем другая возня с внешностью. Варежку я сгенерировал в Meshy, примерил на куклу — маленькая. Увеличили, теперь из неё торчит рука. Подбирали масштаб, двигали крепление ближе к локтю. Стоящая на месте кукла уже выглядела нормально, но стоило ей побежать или вытянуть руку, и снова было видно, что варежка сидит не так. Поэтому после правок я возвращался в игру и проверял её в движении.
6. Как появился SDD Boonan
Для веб-приложений я уже разрабатывал свой sdd-workflow. В основе — SDD (Spec-Driven Development): агент сначала фиксирует, что нужно получить и как это проверить, а потом берётся за реализацию. Захотелось перенести этот подход в Boonan, чтобы агент работал с игрой по тому же понятному порядку: сначала подготовка, потом реализация и проверка результата.
На практике моя часть работы выглядела довольно просто: я замечал проблему и сообщал о ней агенту. Дальше он сам разбирался в нужных файлах проекта, оформлял изменение и составлял план. Затем выполнял работу по этапам и проверял результат принятым в проекте способом. Мне не приходилось вручную расписывать, как чинить каждый баг, какие документы создать и что проверить после правки. Эти действия уже были заложены в workflow, и агент следовал им.

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

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

Первый кадр — референс «Падающего пола», второй — собранная сцена в редакторе.
Для меня главный результат был в том, что работа стала предсказуемой. При хорошо подготовленной задаче я получал то, о чём мы договорились, а следующую задачу можно было провести через тот же процесс. Агент сам оформлял и выполнял работу, у него оставался контекст принятых решений и понятный способ проверить себя. Я мог заниматься тем, какой должна получиться игра, и принимать решения по ней.
Игровую версию этого подхода я собрал в SDD Boonan и выложил отдельно. Там лежат процедуры, шаблоны и инструкции для агента, которые можно взять для своего проекта. После настройки доступа к редактору Boonan их можно попробовать на небольшой задаче и посмотреть, как агент проходит весь путь от вашего описания до проверенного результата.
7. В это уже можно играть
Теперь St. Bedlam’s можно просто открыть в браузере и сыграть.
Можно зайти одному с ботами или собрать друзей в комнате по коду. Нужен компьютер, клавиатура и мышь. А если выбили из раунда, остаётся пульт: пока остальные ещё бегают по карте, можно немного усложнить им жизнь.

«Падающий пол» в публичной St. Bedlam’s. Играю с ботами.
В публичной версии пока две карты, остальные испытания ещё в работе. Если интересно посмотреть, с чего я начинал, вот «Генезис», мой первый опубликованный тир.
8. Если у вас тоже есть такая идея
Я долго откладывал свою игру, потому что она казалась слишком большой затеей для человека без опыта в геймдеве. В итоге начал со знакомого браузера и желания проверить, получится ли вообще что-нибудь играбельное. Теперь у меня есть две игры и ещё целый список того, что хочется попробовать дальше.
Если у вас тоже давно лежит идея своей игры, попробуйте дать ей шанс. Заведите проект на boonan.io, настройте агенту доступ к редактору и расскажите, что хотите сделать. Свой SDD Boonan я выложил в открытый доступ, чтобы вы могли взять уже собранный пайплайн и попробовать его на своей задумке.
Будет здорово зайти и поиграть в то, что началось с такой же когда-то давно отложенной, но желанной идеи — сделать свою игру. Поэтому обязательно приносите в комментарии ссылки на то, что получится, если всё-таки решитесь попробовать =).

Комментарии 0