EVEngine — скилл
Скилл EveScript и встроенный MCP игрового движка EVEngine: агент пишет скрипты .nut и сверяется с каталогом API
- 66 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Движок запускает игровые скрипты, а в отладочном режиме открывает локальный порт MCP
- SDK скачивается как готовый бинарный архив без сборки из исходников
Установка
- Работает в
В терминале, через 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
Пакет summer-engine соединяет агента с игровым движком Summer: MCP-сервер, скиллы по геймдеву и CLI для сборки и публикации игр.
Набор скиллов по геймдеву для AI-агентов с роутером, который сам подбирает нужные под движок и задачу
Python-CLI и MCP-сервер, через которые агент создает акторы, правит блупринты и запускает PIE в Unreal Engine 5
Unreal Engine Skills
Unreal Engine Skills for AI Agents
31 скилл по C++ в Unreal Engine 5.8: GAS, сетевая репликация, Niagara, World Partition, Mass Entity и подсказки об устаревших API
Официальный набор скиллов Unity для агентов: работа с редактором, сборки, 2D и 3D, UI, URP, звук, мультиплеер и монетизация
Коротко о 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)
}