Когда нейросети играют в морской бой
Представьте: вы даете языковой модели задание "Напиши бота для игры в морской бой". Что получится? Хаотичный код, который даже не компилируется? Или рабочая стратегия, способная обыграть человека?
Ответ дает Game Agent Coding League — открытый бенчмарк, который появился в январе 2026 и сразу стал стандартом для оценки кодинговых способностей AI-моделей в игровой сфере. GACL не тестирует абстрактные знания, а заставляет модели писать реальный код для реальной игры.
GACL работает на GitHub как open-source проект. Весь код — от игрового движка до ботов, сгенерированных моделями — доступен для изучения и форков. Это не синтетический тест, а живая лаборатория.
Что такое GACL на самом деле
Game Agent Coding League — это не просто очередной рейтинг моделей. Это полноценная платформа для оценки способности AI писать игровых агентов. Правила просты:
- Игра — классический морской бой (Battleship) на поле 10×10
- Каждая модель получает одинаковое описание API игры
- Задача — написать Python-класс с логикой бота
- Боты сражаются в турнире на 1000+ партий
- Побеждает стратегия с лучшим win rate
Звучит просто? Пока не увидишь, как модели справляются с этим. Главная сложность — не написать код стрельбы по клеткам, а создать стратегию. Бот должен запоминать попадания, определять направление кораблей, адаптироваться к поведению противника.
GLM-5 против DeepSeek: кто пишет лучше ботов
К февралю 2026 в GACL участвовали 12 моделей. Самые интересные результаты показали именно те модели, которые позиционируют себя как "агентские" — GLM-5 и DeepSeek-Coder-V2.5.
| Модель | Win Rate | Средний ход до победы | Код проходит компиляцию |
|---|---|---|---|
| GLM-5 Agent (янв 2026) | 74.3% | 42 | Да (с предупреждениями) |
| DeepSeek-Coder-V2.5 | 71.8% | 45 | Да |
| Claude 4.5 Sonnet | 68.2% | 47 | Да |
| GPT-4.5 Turbo | 65.7% | 49 | Да |
| Qwen3-Coder-32B | 62.1% | 51 | Нет (синтаксические ошибки) |
GLM-5 взял первое место не случайно. Его агентские возможности, о которых мы писали в разборе агентских войн, здесь проявились в полной мере. Модель не просто сгенерировала код — она разбила задачу на подзадачи: "сначала напиши базовый алгоритм стрельбы, потом добавь логику поиска кораблей, потом оптимизируй стратегию".
Как выглядит код от GLM-5
Заглянем в исходники бота, который сгенерировала GLM-5. Не весь код, конечно — он занимает 180 строк. Но ключевые фрагменты показывают, как модель думает:
class GLM5BattleshipAgent:
def __init__(self):
self.board_size = 10
self.hits = [] # список попаданий
self.misses = [] # список промахов
self.ship_patterns = self._generate_ship_patterns()
self.hunting_mode = False
self.current_target_ship = None
def _generate_ship_patterns(self):
# GLM-5 самостоятельно сгенерировала шаблоны кораблей
# вместо использования стандартных
patterns = []
for length in [5, 4, 3, 3, 2]:
for orientation in ['horizontal', 'vertical']:
base_patterns = self._create_ship_base(length, orientation)
patterns.extend(base_patterns)
return patterns
def make_shot(self, game_state):
if not self.hunting_mode:
# Фаза поиска: стреляем по стратегической сетке
return self._search_pattern_shot()
else:
# Фаза охоты: добиваем найденный корабль
return self._hunt_ship()
Что здесь интересно? GLM-5 не просто скопировала готовую стратегию из интернета. Модель создала свою систему шаблонов кораблей и реализовала двухфазный алгоритм: сначала поиск, потом охота. Это показывает понимание игры, а не просто умение генерировать код.
Но есть и проблемы. Код GLM-5 содержит несколько предупреждений linter'а о неиспользуемых переменных. Модель иногда генерирует избыточный код — видимо, пытаясь быть "более полной".
А что с DeepSeek?
DeepSeek-Coder-V2.5 показал результат чуть хуже, но его код чище. Модель использовала более математический подход:
class DeepSeekBattleshipAgent:
def __init__(self):
self.probability_map = np.zeros((10, 10))
self.update_probability_map()
def update_probability_map(self):
# Вычисляет вероятность нахождения корабля в каждой клетке
# на основе известных попаданий и промахов
for x in range(10):
for y in range(10):
if (x, y) in self.hits:
self.probability_map[x][y] = 0
else:
# Сложная формула, сгенерированная DeepSeek
prob = self._calculate_cell_probability(x, y)
self.probability_map[x][y] = prob
DeepSeek пошел путем вероятностного моделирования — подход, который часто используют в серьезных AI для игр. Но здесь есть загвоздка: вычисления вероятностей требуют времени, и в условиях ограничения на время хода (100 мс) это создает проблемы.
Интересно, что DeepSeek явно обучался на математических задачах — его подход напоминает то, что мы видели в обзоре DeepMath. Но в играх чистая математика не всегда побеждает.
Типичные ошибки AI-кодеров
Изучая код от разных моделей в GACL, можно составить целый каталог типичных ошибок:
- Забывают про границы поля. Бот пытается выстрелить в клетку (10, 10) при размере поля 10×10 (индексы 0-9).
- Не учитывают время выполнения. Сложные алгоритмы не укладываются в лимит 100 мс на ход.
- Пишут неоптимальные циклы. Вместо O(n) получается O(n²) на небольших данных.
- Дублируют логику. Одна и та же проверка появляется в трех разных местах.
- Не обрабатывают edge cases. Что делать, если корабль стоит в углу? Многие модели не думают об этом.
Qwen3-Coder-32B вообще не прошел компиляцию — синтаксическая ошибка в условном операторе. И это модель, специально обученная для кодинга!
Зачем нужен GACL, если есть HumanEval и другие бенчмарки?
HumanEval проверяет, может ли модель решить изолированную задачу. GACL проверяет, может ли модель создать систему. Разница фундаментальная.
В игровом агенте нужно:
- Спроектировать архитектуру (классы, методы, состояния)
- Реализовать несколько взаимодействующих компонентов
- Учесть ограничения производительности
- Создать стратегию, а не просто алгоритм
Это ближе к реальной разработке. Как раз то, о чем мы говорили в разборе архитектуры AI-кодинг агентов.
GACL также показывает разницу между "знанием синтаксиса" и "пониманием задачи". Многие модели прекрасно пишут код на Python, но не могут создать рабочую игровую стратегию.
Кому пригодится GACL в 2026
Если вы:
- Выбираете модель для автоматизации кодинга — смотрите не на синтетические тесты, а на GACL. GLM-5 показал лучший результат именно потому, что его агентские возможности реально работают.
- Разрабатываете игровых ботов — используйте код из GACL как стартовую точку. Зачем писать с нуля, если можно взять работающего бота от GLM-5 и доработать?
- Обучаете свою модель — GACL предоставляет отличный датасет: задание + правильные решения + неправильные решения с ошибками.
- Исследуете возможности AI-агентов — наблюдайте, как разные подходы (агентский у GLM-5, математический у DeepSeek) дают разные результаты.
Особенно интересно GACL для тех, кто работает с фреймворками для AI-агентов. Можно интегрировать ботов из GACL в Autogen или LangChain и посмотреть, как они работают в составе более сложных систем.
Что будет дальше с игровыми агентами
GACL — только начало. Уже анонсированы расширения для других игр: покер (с неполной информацией), шахматы (с ограничением времени), даже простые RTS. К концу 2026 мы увидим, как модели будут писать ботов для Dota или StarCraft.
Но главный тренд — не сложность игр, а качество кода. Судя по результатам GACL, модели научились писать работающий код. Следующий шаг — писать оптимальный, чистый, сопровождаемый код. GLM-5 уже на пути к этому со своими агентскими итерациями.
Мой прогноз: к середине 2027 мы увидим модель, которая не просто напишет бота для морского боя, но и:
- Напишет тесты для этого бота
- Создаст документацию
- Оптимизирует производительность
- Предложит несколько альтернативных стратегий с анализом плюсов и минусов
И все это — в одном запросе. Агентские войны, о которых мы писали, перейдут на новый уровень. GLM-5 и DeepSeek уже показали, что способны на большее, чем просто генерация кода. Они начинают думать как разработчики.
Пока GLM-5 лидирует в GACL, но гонка только начинается. DeepSeek уже анонсировал версию 3.0 с улучшенными агентскими возможностями. Claude и GPT тоже не стоят на месте. Кто напишет лучшего бота к концу 2026 — вопрос открытый.
Одно ясно точно: оценка AI-моделей перестала быть абстрактной. Теперь мы можем сказать "Эта модель пишет игровых ботов на 74% эффективнее". И это куда информативнее, чем "86 баллов на MMLU".