reckfellENGINE

JSON и C-заголовок нативного интерфейса

Проверенные команды выгрузки, структура данных и границы ABI-проверки.

На этой странице

Эти файлы нужны авторам нативных привязок и генераторов кода. Для обычной игровой логики C# используйте управляемый SDK и его справочник; JSON интерфейса не является библиотекой C#.

Получите данные от нужной сборки

Откройте PowerShell в отдельной рабочей папке проекта: команды записывают файлы в текущий каталог и могут заменить одноимённые. В переменной editor укажите путь к установленному редактору с поддержкой этих инструментов.

PowerShell
$editor = "C:\Tools\Reckfell\Reckfell Engine.console.exe"
& $editor --headless --path . --dump-reckfellextension-interface-json --dump-reckfellextension-interface --dump-extension-api

Ожидаются три файла:

ФайлСодержимое
reckfellextension_interface.jsonНизкоуровневые C-типы и функции интерфейса
reckfellextension_interface.hC-заголовок того же интерфейса
extension_api.jsonКлассы, методы, встроенные типы и их метаданные для привязок

Используйте набор от одного целевого бинарника. Номер продукта 1.0.0 сам по себе не идентифицирует конкретную сборку: сохраните хеш исполняемого файла и полученных данных. Успех команды и наличие JSON не доказывают корректность всех ABI-вызовов.

Структура JSON интерфейса

Верхний уровень содержит format_version, $schema, types и interface. _copyright хранит исходные сведения об авторских правах и лицензии; не удаляйте их при распространении производных файлов.

format_version описывает формат JSON, не версию движка и не ABI-пакет. В проверенном дампе он равен 1. $schema задаёт относительный путь ./reckfellextension_interface.schema.json; выгрузка интерфейса не создаёт рядом сам файл схемы. Для полной проверки нужна соответствующая локальная схема, а не только открывающийся JSON.

kind в typesЧто должен сохранить генератор
enumИмена и числовые значения; is_bitfield отличает маску флагов
handleНепрозрачный указатель, признаки const/неинициализированного значения и связь parent
aliasУказанный базовый C-тип с модификаторами
structПорядок полей, C-выравнивание и размеры для целевого ABI
functionТип возвращаемого значения и упорядоченные типы аргументов указателя на функцию

У аргументов function обязательным для генерации является type; name может отсутствовать. Генератор должен уметь создать локальное имя параметра. Отсутствующий return_value означает отсутствие возвращаемого значения, а не неизвестный тип.

Нельзя объявлять все handles владеющими объектами или считать указатель готовым значением: учитывайте const, uninitialized и конкретный контракт функции. size_t и указатели зависят от архитектуры. Типы char, char16_t, char32_t и wchar_t не взаимозаменяемы; длина/кодировка определяются конкретной функцией.

Функции и разрешение адресов

Массив interface перечисляет функции, доступные через ReckfellExtensionInterfaceGetProcAddress. Разрешайте имена точно как в дампе; проверяйте отсутствующий адрес до вызова. Сигнатура указателя, порядок аргументов и calling convention должны соответствовать заголовку целевой сборки.

since и deprecated — метаданные истории интерфейса; не подменяйте ими версию продукта и проверку наличия функции. В deprecated ключ замены называется replace_with, не replacement. Не меняйте идентификаторы, числовые enum и имена функций для перевода или собственной косметики.

extension_api.json решает другую задачу: он описывает высокоуровневые классы/методы. Его header содержит версию продукта и precision. Для генерации вызовов классов нужны оба уровня данных; один список C-функций не содержит полного API классов.

Обнаруженные ограничения проверки

Установленный редактор создал все три файла, однако выгрузка API классов выдала 17 предупреждений вида mapped to non-existent hash из таблицы сопоставления хешей. Они сохранены в техническом отчёте и не исправлены в движке. Наличие дампа не позволяет объявить эту таблицу или все нативные вызовы исправными.

При такой диагностике проверьте согласованность сборки и SDK, конкретный требуемый метод и нативный тест его вызова. Не подавляйте предупреждения как доказательство успеха и не переписывайте хеши вручную в сгенерированном JSON.

Проверены реальные команды, выбранные поля и имена текущего дампа. Полная JSON Schema-валидация, генерация стороннего binding, выравнивание всех структур и все платформы этим не подтверждаются.

Далее: описание расширения, рабочая нативная сборка.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.