Несколько лет один разработчик строит авторитарный сервер реального времени для 2D MMO RPG: тайловые карты, бой в реальном времени, клиент на Unity. Семнадцатая часть его публичного дневника посвящена не новой игровой механике, а изменению самого процесса разработки — тому, как ИИ превратился из инструмента для генерации сниппетов в полноценного участника цикла от описания фичи до работающего кода.

Отправной точкой стало решение переписать серверную часть с самописного PHP на Symfony. Причина прагматичная: собственный фреймворк не знает никто, кроме автора, — ни человек-разработчик, ни языковая модель. Symfony, напротив, входит в обучающие данные всех крупных моделей: его паттерны, жизненный цикл запроса, способ организации кода по бандлам — всё это модель «знает» без дополнительных объяснений. Переписывание заняло два месяца; по оценке автора, без ИИ ушло бы полгода. Бандловая структура при этом сохранена: каждая крупная часть системы — отдельный модуль со своими миграциями базы данных, таблицами, конфигами и зоной ответственности.

Но переписанный сервер решал только половину задачи. Игра живёт на двух берегах: сервер считает состояние мира, клиент на Unity его отображает. Пока ИИ мог работать только с одной стороной, разработчик оставался узким местом на другой. Решением стала пара MCP-мостов. MCP (Model Context Protocol) — протокол, позволяющий языковой модели вызывать внешние инструменты и получать данные из реальных систем, а не только из текста в контексте. Первый мост — собственный MCP-сервер проекта: через него ИИ создаёт и редактирует карты, расставляет врагов, меняет баланс, читает серверные логи и может подключиться к игре как обычный клиент. Второй — MCP-плагин для Unity: ИИ работает внутри редактора, создаёт объекты на сцене, пишет C#-скрипты, запускает игру и делает скриншоты. Плагин автор планирует выложить в Unity Asset Store отдельно.

Собственный MCP-сервер даёт ИИ доступ к картам, балансу, логам и возможности войти в игру как клиент.

Поверх этих мостов собран слой ИИ-агентов, заточенных под конкретный проект. Один агент отвечает за серверные механики, другой — за клиент на Unity, третий занимается тестированием. Знания о проекте — правила механик, ограничения, соглашения по коду — хранятся в так называемых skill'ах и подгружаются агентом под конкретную задачу. Это позволяет не объяснять контекст заново при каждом запросе.

Тестирование устроено без имитации: агент поднимает сервер, отправляет команды как игровой клиент, сверяет ответы с ожидаемыми и фиксирует регрессии. Разница с простой проверкой кода принципиальная — система проверяет поведение, а не синтаксис.

Конкретный пример, который автор разбирает подробно, — инвентарь с экипировкой: ячейки под предметы, слоты под надетое, перетаскивание. Из одного текстового описания агенты последовательно создали справочник инвентаря через MCP, серверную логику валидации слотов и дропа лишних предметов, окно инвентаря и куклу персонажа в Unity, а затем прогнали тест с реальными командами. Приведённый в статье PHP-код компонента инвентаря показывает уровень детализации: партиальные обновления слотов, проверка допустимых полей, валидация prefab-ссылок, защита от дублирования count в компонентах.

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