ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания

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

ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания

Это не игрушечная демка в духе «нейросеть выдала сниппет». Под капотом — настоящая 2D MMO RPG, которую я делаю не первый год: авторитарный сервер реального времени, тайловые карты, живой мир, клиент на Unity. ИИ её не придумал и не построил — он встал в мой конвейер и ускорил его так, что в одиночку я держу темп целойкоманды. Дальше — как это устроено и где у фокуса честная граница.

ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания

Сначала я перенёс сервер на Symfony

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

Я переписал серверную часть на Symfony — фреймворк, который «знают» все, включая нейросеть. Уложился в два месяца вместо полугода. Дело не в моде: на знакомом фреймворке ИИ работает не как стажёр, которому всё разжёвываешь, а как инженер, видевший такой код сотни раз. Меньше объяснений — точнее результат.

Потом я дал ИИ руки — в сервере и в клиенте

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

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

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

Фича из одного описания

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

ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания
ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания

Тестирует тоже ИИ, и не «прочитал код — вроде ок». Он поднимает сервер, шлёт команды как настоящий клиент, сверяет ответы, ловит регрессии. Поэтому даже такая махина — авторитарный сервер реального времени плюс клиент на Unity — остаётся управляемой, а не разваливается под собственным весом.

Тот самый инвентарь прошёл этот конвейер целиком:

  • сервер держит предметы и надетое там же, где вся правда мира, и сам решает, можно ли надеть вещь в этот слот;
  • клиент на Unity рисует окно сумки и куклу персонажа с перетаскиванием;
  • автотест гоняет всё насквозь: команды уходят на сервер, ответы сверяются — фича работает, а не «выглядит работающей».

Под капотом — последняя на сегодня модель Claude, Opus от Anthropic. Я отношусь к ней как к инструменту и соавтору: она исполняет, я задаю рамки.

ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания

Где ИИ заканчивается и начинаюсь я

Тут обычно прилетает: «да ИИ генерит мусор». Так и есть — если дать ему пустой холст. Мусор там, где нет архитектора, который заранее закрыл целые классы ошибок.

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

Вся правда о мире живёт только на сервере. Клиент ничего не решает — он показывает то, что посчитал сервер. Что бы ИИ ни написал в клиенте, он физически не может породить рассинхрон или чит: клиент не источник истины, а витрина. Тот самый инвентарь это и подтверждает — предметы рисует клиент, но разрешает или запрещает надеть вещь только сервер. Целый класс читов закрыт не проверками, а самим устройством игры. Для MMO это не мелочь: на этом стоит честность мира.

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

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

Что дальше

Инвентарь, существо, поведение в бою — это я уже отдаю просто описанием. Следующая граница — анимации.

Сейчас, чтобы новый монстр ожил, его анимации всё ещё нужно вручную заводить в клиент. Я хочу довести до них ту же систему патчей, которой уже доставляю в клиент карты: загрузил анимацию в админке — она уехала в игру, готовый плагин её подхватил, и всё это без возни с кодом под каждое существо. Это и проверю в следующей части — и честно покажу, справился ли ИИ.

ч.17 — Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания

Одно предложение — и механика живёт на сервере и в клиенте. Какую бы вы заказали первой? Напишите в комментариях — из заявок соберу темы следующих частей.

История:

2
1
2 комментария