LLM управляет героем онлайн-RPG: Gemini тянет только каждый 10-й игровой шаг
Автор подключил бесплатный Gemini к своей сетевой RPG: модель не болтает с NPC, а выбирает действия персонажа. Из-за лимита в один запрос раз в 4 секунды при шаге сервера 0,45 с LLM успевает реагировать лишь на каждый 10-й шаг. Агент иногда крафтит сложные вещи, но часто зацикливается и игнорирует подсказки про ресурсы рядом.
AI-обработка оригинала Habr AI; редакция Hamidun News
Большинство игровых проектов с LLM заканчиваются разговорами: нейросеть играет NPC и отвечает на реплики. Автор этого эксперимента пошёл дальше и отдал модели управление персонажем в сетевой RPG. Разница принципиальная: сказать можно что угодно, а сделать можно только то, что разрешают правила мира.
Как это устроено
Игра асинхронная: сервер не ждёт игрока, мимо бегают другие персонажи и гоблины. Поэтому клиент построен на трёх потоках. Первый получает строки с сервера и парсит их в структуру. Второй отправляет запрос в LLM и ждёт ответ. Третий ретранслирует картинку в браузер, чтобы человек мог наблюдать за происходящим.
Промпт собирается на лету из наблюдений: что персонаж видит и слышит, что у него в инвентаре, какие ресурсы нужны для цели, какие действия сейчас доступны. В начале отправляется статичный MASTER-PROMPT с правилами игры и рецептами крафта. Дальше каждый ответ связывается со следующим запросом через идентификатор, как продолжение диалога.
Формат ответа задаётся схемой response_format. Автор сравнил два подхода: числовые поля с вероятностью для каждого действия и одно поле action с enum. Заметной разницы в качестве не нашёл и выбрал enum, потому что его проще парсить. Дополнительно модель возвращает цель, планы, мысли и необязательную реплику.
Где всё упирается в лимиты
На бесплатном тарифе lite-моделям разрешён один запрос раз в 4 секунды. Шаг сервера сделан 0,45 с, так что LLM в лучшем случае видит каждый десятый шаг. Дневной лимит составляет 500 запросов, после чего приходится переключать модель. Есть и неочевидный лимит: цепочка ответов ломается ошибкой про максимальную глубину примерно после 100 итераций. Возможно, он зависит от заполнения контекста.
Память агента пришлось строить вручную: ячейковая память важных объектов, событийная и память о прошлых действиях. Отдельно появилась память о дефиците. Модель уверенно «кладёт в плавильню» предметы, которых у неё нет. Когда парсер замечает несоответствие, недостающий предмет записывается, и действия, которые ему противоречат, отфильтровываются.
Что получилось
Агент ходит, собирает предметы, строит здания и иногда выплавляет металл. Однажды он отлил наконечник кирки, один из самых сложных рецептов, правда, часть ингредиентов нашёл на трупе дварфа. Реплики у него вполне осмысленные, он комментирует свои действия и пытается говорить с NPC.
Но разумным поведение не назовёшь. Агент впадает в мёртвые петли: крафтит ненужное, крутится на месте, застревает в обменах. Подсказку «справа стена с нужными минералами» он может проигнорировать и пройти мимо. Единственная удачная сделка с дварфом оказалась убыточной: он обменял всё олово на медную руду, уголь и глину, то есть редкое на частое.
Практический вывод
Во-первых, скорость решает. Если бы ответ приходил за полсекунды, игру можно было бы вести синхронно и не терять шаги. Автор думает о небольшой локальной модели. Во-вторых, перечень координат в тексте плохо работает как пространственное описание. В-третьих, самый разумный вывод такой: LLM стоит поручать высокоуровневые решения и речь, например «подойди к кузнице», а путь и исполнение отдавать классическим алгоритмам.
Это тот же паттерн, что и в продуктовых агентах: модель планирует, детерминированный код исполняет и проверяет. Ограничение эксперимента в том, что это одиночный наивный прототип без метрик, но набор граблей с лимитами, зацикливанием и памятью знаком любому, кто делает агентов.
- 8 нояб. 2026 г.Google выпустила Gemini Omni 1.2 Flash: видео до 15 секунд по $0,07 за секунду
- 8 нояб. 2026 г.Суцкевер, Сильвер и Лекун ушли из больших лабов: на что ставят неолабы
- 8 нояб. 2026 г.Gemini Omni 1.2 Flash генерирует видео до 15 секунд и стал на 30% дешевле
- 8 нояб. 2026 г.Merge автоматизировал планирование ужинов: с десятков часов до 30 минут на событие
Вопросы и ответы по материалу
Что известно по теме: как это устроено?
Игра асинхронная: сервер не ждёт игрока, мимо бегают другие персонажи и гоблины. Поэтому клиент построен на трёх потоках. Первый получает строки с сервера и парсит их в структуру. Второй отправляет запрос в LLM и ждёт ответ. Третий ретранслирует картинку в браузер, чтобы человек мог наблюдать за происходящим. Промпт собирается на лету из наблюдений: что персонаж видит и слышит, что у него в инвентаре, какие ресурсы нужны для цели, какие действия сейчас доступны.
Что известно по теме: где всё упирается в лимиты?
На бесплатном тарифе lite-моделям разрешён один запрос раз в 4 секунды. Шаг сервера сделан 0,45 с, так что LLM в лучшем случае видит каждый десятый шаг. Дневной лимит составляет 500 запросов, после чего приходится переключать модель. Есть и неочевидный лимит: цепочка ответов ломается ошибкой про максимальную глубину примерно после 100 итераций. Возможно, он зависит от заполнения контекста. Память агента пришлось строить вручную: ячейковая память важных объектов, событийная и память о прошлых действиях.
Что известно по теме: что получилось?
Агент ходит, собирает предметы, строит здания и иногда выплавляет металл. Однажды он отлил наконечник кирки, один из самых сложных рецептов, правда, часть ингредиентов нашёл на трупе дварфа. Реплики у него вполне осмысленные, он комментирует свои действия и пытается говорить с NPC. Но разумным поведение не назовёшь. Агент впадает в мёртвые петли: крафтит ненужное, крутится на месте, застревает в обменах. Подсказку «справа стена с нужными минералами» он может проигнорировать и пройти мимо.
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.