AI for Games
AI for Games / Игры

CODECRAFT

Стратегия, в которой роботами управляет ваш код. Напишите программу, запустите симуляцию, посмотрите, что вышло, и исправьте.

Плейтест идёт · сборка 13 от 13 октября 2026
3миссии кампании из 9
3робота: рабочий, штурмовик, стрелок
8построек
3ресурса: руда, золото, силикат
v13сборка на плейтесте
RU · ENпереключаются без перезапуска
Об игре

Код вместо кликов

Вы восстанавливаете колонию роботов, но не отдаёте им приказы мышью. Каждому роботу пишется короткая программа на CraftScript — небольшом языке с синтаксисом, похожим на Python.

После запуска робот сам добывает ресурсы, строит здания, разведывает карту и вступает в бой. Если результат не тот, ставите паузу, правите код и запускаете снова.

Это стратегия, где код — основной способ управления, а не формальный урок программирования. В плейтесте доступны три первые миссии кампании «Протокол наследования».

Штурмовик · разведка и атакаcraftscript
def engage(data):
    attack(data.enemy)

listen(event.enemy_spotted, engage)

while True:
    attack_nearest()
    explore()
Рабочий · приоритетыcraftscript
limit = 40

while True:
    if has_blueprints() and construction_available():
        construct_nearest()
    elif silicate() < limit:
        gather(entity.silicate)
    else:
        gather(entity.gold)
Что есть в игре

Особенности

  • Своя программа у каждого роботаКнопки «Запустить», «Пауза», «Стоп» и «Редактор» у выбранного робота.
  • Редактор, который помогаетПодсветка, автодополнение по Tab, подсказки аргументов, ошибки прямо во время набора.
  • Отладка как у взрослыхТочки останова, значение переменной при наведении, подсветка текущей строки и строки ожидания.
  • Журнал роботаprint(), последние 40 записей, число рейсов добычи, рейсы в минуту и время ожидания.
  • Настоящая логистикаРуда копится в экстракторе, рабочий её возит; нейтральную золотую шахту надо захватить и починить.
  • Событияevent.attacked и event.enemy_spotted подключаются через listen.
  • Библиотека скриптовСохраняйте свои программы и подключайте их друг к другу через import.
  • Стройка по чертежамРабочие подвозят материалы и собирают здание по этапам; чертёж можно отменить, постройку снести.
  • ОборонаСтены с соединениями секций, ворота, которые сами пропускают своих, башни с поворотной турелью.
  • БойШтурмовики с огнемётами и стрелки с лазерами, прямая стрельба fire и moveAndFire.
  • Живой противникВ третьей миссии враг ведёт свою экономику: добывает ресурсы и строит ограду.
  • Туман войныОбщая видимость стороны и мини-карта; скорость игры ×2 и ×5.
Кампания «Протокол наследования»

Три миссии в плейтесте

Старт миссии «Первый сигнал»
Миссия 1 · карта 136 × 136

Первый сигнал

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

Учит основам в 13 шагах: от одной команды construct_nearest() до цикла while True, разведки и события enemy_spotted.

Подготовка обороны базы
Миссия 2 · карта 90 × 90

Оборона базы

База уже есть. Укрепите два северных прохода стенами, воротами и башнями: после третьей башни через 30 секунд с двух сторон идут 12 врагов.

Учит строить укрепления и готовить программы к обороне.

Первый штурм: дорога к базе противника
Миссия 3 · карта 112 × 112

Первый штурм

У противника такая же база со своей экономикой и защитниками. Найдите её в тумане войны и уничтожьте все здания и роботов.

Учит наступлению: разведке и атаке в цикле. Помогает кнопка «Последний контакт».

Видео

Первые программы

Начало миссии «Первый сигнал»: рабочий получает программу construct_nearest() и строит экстрактор, а потом с gather("ore") возит руду на базу. Ожидание ускорено кнопкой ×5, звука нет.

Язык CraftScript

Что умеют роботы

Программа выполняется один раз сверху вниз, повторение задаётся явно через while. Это не настоящий Python: у интерпретатора нет доступа к файлам и сети.

Действияgather(entity.ore)construct_nearest()explore()attack_nearest()attack(target)fire(angle, count)moveAndFire(…)
Движениеmove_to(point(x, y))retreat_to(point(x, y))patrol(area(x, y, w, h))stop_movement()
Запросыore()gold()silicate()health()enemy_count()find_nearest(kind)has_blueprints()
Событияlisten(event.attacked, f)listen(event.enemy_spotted, f)

В обработчик приходят data.attacker, data.enemy и data.position.

Синтаксисwhileif / elif / elseand / or / notdef f(x):import

Пока нет for, списков и классов.

История сборок

13 сборок с 20 сентября

Почти каждая сборка отвечает на отчёты плейтестеров, такие правки отмечены пометкой «из отчётов». Где дата или состав известны неточно, стоит знак ≈.

  1. Сборка 1313.10.2026на плейтесте

    Понятный запуск программ и подсказки, к которым можно вернуться

    Добавлено
    • В руководствах миссий всегда видны кнопки «Предыдущий шаг» и «Все шаги», перечитывание не сбрасывает прогресс. из отчётов
    • ≈ Огнемёты у штурмовиков и лазеры у стрелков со своими звуками, промах 1/3 у команд атаки, fire, moveAndFire и команды движения.
    Изменено
    • Справка объясняет, что команды выполняются по очереди, а цикл повторяет весь блок; уточнены статьи об атаке и разведке. из отчётов
    Исправлено
    • После правки кода «Запустить» и «Продолжить» запускают новую программу, а не старую; код с ошибкой не запускается. из отчётов
  2. Сборка 1207.10.2026

    Редактор, который помогает понять своего робота

    Добавлено
    • Автодополнение по Tab, подсказки аргументов, значения переменных при наведении, точки останова, print() и статистика рейсов.
    • Константы entity.ore и event.attacked вместо строк; старый код по-прежнему работает.
    • Арифметика со скобками, проверка ошибок во время набора, подробные ошибки выполнения.
    Изменено
    • Новый главный экран с артом колонии и пунктом «Обучение», настройки в том же стиле.
    • Библиотека скриптов в кампании открывается с миссии 7.
  3. Сборка 1105.10.2026по первым плейтестам

    Сначала одна доставка, потом цикл

    Изменено
    • Обучение первой миссии разбито на 13 шагов: сначала одна стройка и одна доставка, затем while True. из отчётов
    • Подсказка места для первого экстрактора; камера на старте дальше, обзор зданий больше.
    Добавлено
    • Кнопка «Скопировать код» и меню «Копировать / Вставить» в редакторе. из отчётов
    • Предпросмотр соединений стен, отмена чертежа с возвратом материалов, снос своей постройки. из отчётов
    Исправлено
    • Программа без цикла выполняется один раз и останавливается; перевозчик не застревает у точки разгрузки.
  4. Сборка 1004.10.2026CodeCraft за три дня

    Оборона базы и первый штурм

    Добавлено
    • Миссии «Оборона базы» и «Первый штурм», экономика противника, кнопка «Последний контакт».
    • Стены, ворота и башни; журнал робота; объяснение, почему здание нельзя построить; координатные линейки.
    Изменено
    • Иллюстрированный ландшафт, большие карты, гусеничные и колёсные шасси, тени, повреждения, поэтапная стройка.
    • Выбор робота щелчком больше не останавливает его программу.
    Исправлено
    • Просадки FPS во время волн; архив уменьшен с 274,5 до 114,3 МБ.
Сборки 1–9
  1. Сборка 9≈ 02.10.2026
    Добавлено
    • Английский язык, выбор языка в настройках и автоопределение.
  2. Сборки 1–820.09–01.10.2026плейтест концепции
    Добавлено
    • Первая миссия «Первый сигнал» и пошаговое обучение (к сборке 8 — 12 шагов).
    • ≈ Перетаскиваемые окна кода и справки, иконка игры и загрузочный экран.
Планы

Что будет дальше

Это планы из дизайн-документа, а не обещания.

  • Ещё 6 миссийРазведка маршрутов, несколько событий и приоритеты, группы роботов, координация.
  • Новые уровни языкаПоэтапные команды доставки и сборки, программы для зданий и новые события.
  • Новые эпохиСтальная и титановая, артиллерия, авиационный и корабельный заводы.
  • ПесочницаИспытательный полигон на картах кампании и PvP-аренах.
  • PvP и турнирыИгрок отправляет программу, сервер проводит плей-офф и сохраняет записи матчей.

Напишите своего первого робота

Плейтест бесплатный, игра ставится через OnlyLauncher на Windows. После игры заполните анкету: по ней собирается следующая сборка.