
Сделать игру с помощью AI сегодня несложно. Сложнее получить проект, который не развалится после второго изменения. Один большой промпт почти всегда создаёт эффектную демонстрацию: кнопки нажимаются, цифры меняются, враги появляются. Затем вы просите добавить сохранение или новый ресурс — и выясняется, что вся логика живёт в одном обработчике на несколько сотен строк.
В этом руководстве мы соберём небольшую браузерную стратегию с GPT-5.6 Sol в Codex CLI. Без игрового движка, изображений и внешних ассетов: HTML, CSS и JavaScript. Такой формат удобен для проверки coding agent — результат можно открыть локально, механику легко увидеть, а ошибки нельзя спрятать за красивой графикой.
Для доступа к модели используем OdiRouter.ai. Codex CLI поддерживает собственного провайдера Responses API, поэтому GPT-5.6 Sol подключается через Base URL и API-ключ без изменения самого агента.
Что мы будем создавать
Задача — не очередная кнопка «добыть золото», а маленькая законченная игра. Игрок развивает поселение, добывает ресурсы, строит казарму, нанимает воинов и переживает набеги.
Система | Минимальная механика | Что проверяем у модели |
Ресурсы | Золото, древесина, население | Единый источник состояния и корректные расчёты |
Постройки | Лесопилка, шахта, дом, казарма | Зависимости и рост стоимости |
Армия | Найм воинов только после казармы | Проверка условий до изменения состояния |
Набеги | Сила врага растёт по раундам | Баланс и отсутствие безвыходных сценариев |
Сохранение | LocalStorage | Версионирование и безопасное восстановление |
Интерфейс | Панель ресурсов, действия и журнал | Связь UI с состоянием без дублирования логики |
Почему GPT-5.6 Sol
GPT-5.6 Sol в каталоге OdiRouter.ai позиционируется как флагманский маршрут для сложных задач с рассуждением, планированием и выполнением кода. Для игры важен не отдельный удачный HTML-файл, а способность держать несколько зависимых систем и изменять их поэтапно.
По состоянию на 6 августа 2026 года цена в OdiRouter.ai составляет $0,49 за миллион входных и $2,94 за миллион выходных токенов при входном контексте до 272K. Для большего входа действует повышенный тариф. Цены динамические, поэтому перед большим запуском стоит проверить актуальную страницу OdiRouter.ai.
Важнее цены токена — цена принятого изменения. Если модель с первого раза создаёт понятную структуру и исправляет ошибку локальным diff, она может быть выгоднее дешёвого маршрута, который приходится постоянно направлять вручную.
Подключаем GPT-5.6 Sol к Codex CLI
1. Устанавливаем Codex
На macOS, Linux и WSL можно использовать официальный установщик:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Или установить CLI через npm:
npm install --global @openai/codex
codex --version
2. Настраиваем провайдера
В пользовательском файле ~/.codex/config.toml указываем модель и Responses API OdiRouter:
model = "gpt-5.6-sol"
model_provider = "odirouter"
model_reasoning_effort = "high"
[model_providers.odirouter]
name = "OdiRouter"
base_url = "https://api.odirouter.ai/v1"
env_key = "ODIROUTER_API_KEY"
wire_api = "responses"
Блок провайдера должен находиться именно в пользовательской конфигурации. Проектный файл не должен перенаправлять учётные данные.
3. Передаём API-ключ
export ODIROUTER_API_KEY="YOUR_API_KEY"
На Windows PowerShell:
$env:ODIROUTER_API_KEY="YOUR_API_KEY"
Создаём проект, а не просим «сделать игру»
Сначала подготовим пустой каталог:
mkdir frontier-settlement
cd frontier-settlement
git init
codex
Первая ошибка вайб-кодинга — сразу просить готовый продукт. Тогда агент одновременно придумывает правила, архитектуру, интерфейс и реализацию. Проверить четыре решения в одном diff почти невозможно.
Первый запрос должен создать технический контракт:
Мы создаём браузерную стратегию без фреймворков и внешних ассетов.
Пока не пиши код.
Подготовь GAME_SPEC.md со следующими разделами:
1. Игровой цикл.
2. Ресурсы и начальные значения.
3. Постройки, стоимость и эффект.
4. Армия и правила боя.
5. Формула роста сложности набегов.
6. Условия победы и поражения.
7. Формат сохранения.
8. Структура файлов проекта.
Все числовые значения вынеси в отдельную таблицу баланса.
Если требования противоречат друг другу, сначала задай вопросы.
Эта пауза экономит больше времени, чем кажется. Модель вынуждена зафиксировать правила до того, как правила превратятся в код.
Второй промпт: рабочий вертикальный срез
После проверки спецификации просим реализовать не всю игру, а один полный игровой цикл:
Реализуй первый вертикальный срез по GAME_SPEC.md.
Требования:
- index.html, styles.css и отдельные JS-модули;
- состояние игры не хранится в DOM;
- все изменения ресурсов проходят через функции доменной логики;
- доступны лесопилка, шахта, дом и казарма;
- воинов нельзя нанимать без казармы;
- один тестовый набег запускается вручную;
- каждое действие записывается в журнал;
- интерфейс работает на экране шириной от 360 px;
- никаких CDN, изображений и внешних библиотек.
После изменений перечисли созданные файлы, объясни архитектуру
и укажи, как запустить игру локально.
Слово «вертикальный» здесь важно. Мы хотим пройти путь от интерфейса до расчёта результата, но оставить объём небольшим.
Какая структура должна получиться
frontier-settlement/
├── index.html
├── styles.css
├── GAME_SPEC.md
├── README.md
└── src/
├── config.js
├── state.js
├── economy.js
├── buildings.js
├── combat.js
├── storage.js
├── ui.js
└── main.js
Название файлов может отличаться. Важен принцип: числовой баланс, состояние, бой, сохранение и отображение не должны смешиваться в одном сценарии. Иначе любое последующее изменение превращается в переписывание.
Первый запуск: что проверять вручную
Открыть HTML и увидеть работающие кнопки недостаточно. Я бы прошёл пять коротких сценариев:
1. Попытаться нанять воина до строительства казармы.
2. Потратить почти все ресурсы и проверить, не уходит ли баланс в минус.
3. Построить несколько одинаковых зданий и проверить рост стоимости.
4. Проиграть набег и убедиться, что штраф применяется один раз.
5. Перезагрузить страницу и проверить восстановление состояния.
Ошибку нужно отдавать агенту вместе с наблюдаемым результатом, а не словами «игра сломалась».
После перезагрузки число воинов восстанавливается, но стоимость следующего
найма возвращается к начальному значению. Найди источник рассинхронизации.
Сначала объясни причину, затем внеси минимальное исправление.
Не меняй баланс и интерфейс. Добавь регрессионную проверку.
Добавляем автоматические проверки
Браузерная игра без сборщика всё равно может иметь тестируемое ядро. Экономику и бой стоит оформить как чистые функции, которые получают состояние и возвращают результат.
Вынеси расчёты экономики и боя в чистые функции без DOM и LocalStorage.
Добавь тесты на встроенном node:test:
- ресурсы не становятся отрицательными;
- найм без казармы отклоняется;
- сила набега растёт монотонно;
- одинаковый seed даёт одинаковый результат боя;
- загрузка старой версии сохранения использует миграцию.
Запусти тесты и покажи итоговую команду.
Если агент не может проверить собственное изменение, мы получаем код, который выглядит правдоподобно, но не имеет подтверждённого поведения.
Баланс нельзя поручить одному промпту
В первой версии стратегия почти наверняка окажется либо слишком лёгкой, либо безвыходной. Это нормально. Баланс — не генерация чисел, а цикл наблюдений.
Попросите агента сначала добавить телеметрию игровой сессии:
· время до первой казармы;
· ресурсы перед каждым набегом;
· силу армии и противника;
· причину поражения;
· число раундов до победы.
После нескольких ручных прохождений передайте значения модели и попросите изменить не более двух параметров. Если одновременно поменять добычу, цены зданий, силу врага и штрафы, понять эффект будет невозможно.
Сколько стоит такая сессия
Codex многократно читает файлы, планирует изменения и возвращает код, поэтому стоимость зависит не от одного сообщения, а от всей траектории. Для ориентира возьмём сессию с 50 000 входных и 12 000 выходных токенов.
Часть | Расчёт | Стоимость |
Вход | 0,05 × $0,49 | $0,0245 |
Выход | 0,012 × $2,94 | $0,03528 |
Итого | Без Cache Write и повторных вызовов | Около $0,0598 |
Это не обещание цены готовой игры. Длинный контекст, повторные попытки и крупные ответы увеличат сумму. Поэтому полезно считать стоимость принятой итерации: сколько API-расходов потребовалось до diff, который прошёл тесты и не нуждается в ручном переписывании.
Что GPT-5.6 Sol сделает хорошо, а что останется разработчику
Можно делегировать | Нужно контролировать |
Первичную структуру проекта | Правила и границы задачи |
Реализацию повторяющихся механик | Игровой баланс и интерес |
Рефакторинг модулей | Безопасность сохранений и миграций |
Подготовку тестов | Полноту тестовых сценариев |
Объяснение существующего кода | Приёмку diff и архитектурные решения |
Итог
GPT-5.6 Sol способен быстро собрать браузерную игру, но качество результата определяется не длиной первого промпта. Рабочий процесс начинается со спецификации, продолжается небольшим вертикальным срезом и заканчивается тестами, наблюдением баланса и короткими изменениями.
Codex CLI даёт модели доступ к реальному проекту, а OdiRouter.ai позволяет использовать GPT-5.6 Sol через единый API и при необходимости сравнить результат с другими моделями. Но ни агент, ни роутер не решают, какая игра интересна. Они сокращают путь от решения до проверяемого кода — если человек не отдаёт им право незаметно придумывать правила на ходу.