EVEngine — скилл

Скилл EveScript и встроенный MCP игрового движка EVEngine: агент пишет скрипты .nut и сверяется с каталогом API

  • 66 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

Почему такой уровень

  • Движок запускает игровые скрипты, а в отладочном режиме открывает локальный порт MCP
  • SDK скачивается как готовый бинарный архив без сборки из исходников
Все причины и проверки

evengine/evengine

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/evengine

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Движок запускает игровые скрипты, а в отладочном режиме открывает локальный порт MCP
  • SDK скачивается как готовый бинарный архив без сборки из исходников

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

EVEngine — открытый игровой движок на C++20 и Vulkan со скриптами EveScript (совместим с Squirrel). Он рассчитан на быструю работу разработчика вместе с ИИ-агентом: игра начинается с `config.nut` и `main.nut` в обычной папке, а запускается готовым SDK. Для агента движок дает скилл `evescript` и MCP-инструменты. Скилл `evescript` лежит в `.cursor/skills/evescript/SKILL.md` и в распакованном SDK. Он требует не выдумывать API Unity C#, Godot GDScript, Lua или JavaScript: у игр EVEngine один язык `.nut`. Скилл описывает жизненный цикл (`eve_init`, `eve_update(dt)`, `eve_render`), состояние `persist`, подключение модулей через `config.nut`, импорт через `import { x } from "./scripts/foo.nut"` и постепенную типизацию. Справку по API агент получает тремя путями: через MCP-инструменты `eve_api_search` и `eve_api_get` при запуске `bin/eve run --debug --mcp-port=7529`, из файла `share/eve/ai/eve-api.json` в SDK или скриптом `generate_binding_contracts.py` в исходниках. Сам движок включает 2D, HD-2D, трехмерную графику, физику, анимацию, UI, звук, горячую перезагрузку и сеть.

Для кого. Разработчикам игр, которые делают прототипы и небольшие проекты на скриптах вместе с Claude Code, Codex или Cursor.

Подходит, если

  • Агент должен писать игровую логику на `.nut` и не подставлять API чужих движков
  • Нужна сверка вызовов `eve.*` по каталогу через `eve_api_search` и `eve_api_get`
  • Проект делается быстрыми итерациями с горячей перезагрузкой и правкой прямо в рабочей игре
  • Игра смешивает 2D-ассеты и трехмерную сцену, например тайловые карты в HD-2D

Не подходит, если

  • Игра уже сделана на Unity, Godot или Unreal: скилл знает только EveScript
  • Нужен готовый визуальный редактор без скриптов
  • Платформы нет в списке сборок SDK: ее придется собирать из исходников

Пример запроса к агенту

Напиши на EveScript движение игрока по оси X со скоростью 180 единиц в секунду, названия вызовов проверь через `eve_api_search`

Ограничения

Скилл и MCP работают только с EVEngine и языком EveScript, для других движков они бесполезны. Лицензия указана как NOASSERTION, перед коммерческим использованием ее стоит прочитать в репозитории. Движок сложный: сборка из исходников требует инструментов под платформу (Vulkan SDK, MSVC, Xcode, Ninja и подмодули), поэтому для начала берут готовый SDK. Часть документации и заметок для агентов написана по-китайски. Путь `eve_eval` не считается официальным способом писать игровую логику, о чем сказано в `AGENTS.md`. Графические тесты не выполняются на некоторых ветках CI, и на платформах вроде Windows ARM64 движок собирается без них.

Как отключить. Удалите папку `.cursor/skills/evescript/` или SDK целиком. MCP-сервер работает только пока запущен `bin/eve run --debug --mcp-port=...`.

Частые вопросы

Как подключить скилл EVEngine к агенту?

Распакуйте SDK и возьмите `.cursor/skills/evescript/SKILL.md`, для Claude Code скопируйте его в `.claude/skills/evescript/`. В `AGENTS.md` репозитория агентам для игровых скриптов предписано читать этот скилл.

На каком языке пишутся игры?

На EveScript (файлы `.nut`), надстройке над Squirrel с проверками на этапе компиляции. Второго языка выполнения нет, поэтому API Unity, Godot или Lua подставлять нельзя.

Как агент проверяет названия API?

Через MCP-инструменты `eve_api_search` и `eve_api_get`, поднятые командой `bin/eve run --debug --mcp-port=7529`, либо по каталогу `share/eve/ai/eve-api.json` из SDK.

Что такое persist в EveScript?

Ключевое слово `persist имя = значение` хранит состояние, которое переживает горячую перезагрузку скриптов. Поля из C# и `static` для этого не подходят.

Нужно ли собирать движок из исходников?

Нет, для начала хватит готового SDK-архива вида `eve-sdk-<платформа>-<версия>.zip`. Сборка нужна для правки самого движка и платформ без SDK.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Около 76 скиллов по Unreal Engine 5.8: C++, Blueprints, GAS, анимация, материалы, MetaHuman и пакеты Ultra Dynamic

СкиллМинимальный доступ99Звезды репозитория
Официальный

Пакет summer-engine соединяет агента с игровым движком Summer: MCP-сервер, скиллы по геймдеву и CLI для сборки и публикации игр.

MCP-серверШирокий доступ103Звезды репозитория

Набор скиллов по геймдеву для AI-агентов с роутером, который сам подбирает нужные под движок и задачу

СкиллМинимальный доступ8,4 тыс.Звезды репозитория

Python-CLI и MCP-сервер, через которые агент создает акторы, правит блупринты и запускает PIE в Unreal Engine 5

CLIШирокий доступ216Звезды репозитория

Unreal Engine Skills

Unreal Engine Skills for AI Agents

31 скилл по C++ в Unreal Engine 5.8: GAS, сетевая репликация, Niagara, World Partition, Mass Entity и подсказки об устаревших API

СкиллМинимальный доступ449Звезды репозитория
Выбор редакции

Официальный набор скиллов Unity для агентов: работа с редактором, сборки, 2D и 3D, UI, URP, звук, мультиплеер и монетизация

СкиллРасширенный доступ1,2 тыс.Звезды репозитория

Коротко о README

В английском README описаны цели движка, ключевые возможности, встроенные системы, документация и сборки под разные платформы, включая нативные сборки для Intel Mac и ARM64. Отдельные заметки для агентов лежат в `AGENTS.md` и в скилле.

Бейдж для README

Исходный SKILL.md

---
name: evescript
description: Write EveScript (.nut) for EVEngine. Use when editing game scripts, calling eve.* APIs, or driving the engine from an AI agent.
---

# EveScript / EVEngine for agents

Do not invent Unity C#, Godot GDScript, Lua, or JavaScript APIs. EVEngine games are `.nut` (EveScript = Squirrel + compile-time extensions). There is no second runtime language.

Lookup before writing (do not guess Unity/Godot names):

1. Live MCP: `eve_api_search` / `eve_api_get` on `bin/eve run --debug --mcp-port=7529 …`
2. **SDK zip** (no engine source): `share/eve/ai/eve-api.json` (same catalog as this `eve` binary)
3. Engine git tree only: `python3 scripts/generate_binding_contracts.py --json-output eve-api.json`

Cursor skill copy in an unzipped SDK: `.cursor/skills/evescript/SKILL.md`. Human tutorial: `docs/usr/EVESCRIPT.md` in the source tree / online docs. Longer engine-maintainer note: `docs/dev/AI知识补偿.md`.

## Language (differences from JS/C#)

- Lifecycle: `eve_init`, `eve_update(dt)`, `eve_render`, optional `eve_reload` / `eve_asset_reload`.
- Hot-reload-safe state: `persist name = init` (not C# fields, not `static`).
- Slot assign: `eve_update <- function(dt) { ... }` or `eve_update = function(dt) { ... }`.
- Modules: `config.nut` lists `modules` / `optionalModules` by **root slot** (`gfx`, not CMake `graphics`).
- Do not use `"Graphics" in eve` — `in` does not trigger lazy binding. Use `eve.moduleList` / `has_module("gfx")` / `ensure_module("audio")`.
- `switch` is a Squirrel keyword. UI factory: `ui["switch"]`.
- Import: `import { x } from "./scripts/foo.nut"` then `export function`.
- Types are gradual (`float`, `int`, `->`). They erase at runtime; they help the compiler/LSP.

Minimal game:

```squirrel
persist playerX: float = 100.0

eve_init <- function() {
    gfx.setBackgroundColor(0.08, 0.10, 0.16, 1.0)
}

eve_update <- function(dt: float) {
    playerX += 180.0 * dt
}

eve_render <- function() {
    gfx.clear()
    gfx.drawSolidRect(playerX, 220.0, 48.0, 48.0, 0.3, 0.75, 1.0, 1.0)
}

Сообщить о проблеме