reckfellENGINE

Карта подсистем движка

Границы подсистем, владение объектами и путь от Entity к серверу.

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

Reckfell разделяет иерархию игры, службы подсистем и платформенные реализации. Это границы кода внутри процесса движка, а не сетевые микросервисы. Для игровой логики начинайте с Entity и Resource; обращайтесь к серверу напрямую, когда нужен его низкоуровневый контракт и вы готовы управлять нужными дескрипторами.

Карта ответственности

ОбластьЗа что отвечаетПуть в текущих исходниках
ЯдроИдентичность объектов, регистрация ClassDB, Variant, подсчёт ссылок, загрузка ресурсов, контейнеры и файлыSource/core/
Иерархия игрыСвязи родитель/потомок Entity, обработка EntityTree, объекты 2D/3D и интерфейсSource/scene/
СерверыИнтерфейсы и реализации рендеринга, звука, физики и навигацииSource/servers/
ДрайверыКод графических и звуковых бэкендов и другие низкоуровневые интеграцииSource/drivers/
ПлатформаИнтеграция с ОС, точки входа и платформенные реализацииSource/platform/
Запуск и координация кадраИнициализация, выбор MainLoop, шаги физики, обработка кадра, синхронизация рендеринга и завершениеSource/main/main.cpp
РедакторИнструменты разработки, инспекторы, интерфейс импорта и плагины редактораSource/editor/
МодулиВозможности, регистрируемые на определённых уровнях инициализации, включая C#Source/modules/

Это карта ответственности, а не строгая цепочка зависимостей в одну сторону. Ядро обслуживает несколько уровней; реализации серверов могут находиться и в модулях. Набор возможностей и доступность бэкендов зависят от сборки.

Entity, Resource и RID

Entity наследует нативный Object, доступный в C# как ReckfellObject, и участвует в иерархии родителей и потомков. EntityTree наследует MainLoop и координирует активную иерархию. Родитель Entity в дереве и родительский класс — разные связи. Название Entity само по себе не превращает эту архитектуру в ECS.

Resource наследует RefCounted. Текстура или материал — повторно используемые данные со своим временем жизни; для них не требуется отдельная Entity в дереве. Несколько объектов могут ссылаться на один ресурс: изменение общего материала способно затронуть всех его потребителей. Подробности: объекты и время жизни, наследование классов.

RID — дескриптор для серверных API. Это не Entity, не ссылка на объект C# и не универсальное свидетельство владения. Не вызывайте FreeRid для дескриптора, полученного от Resource или Entity: владеющий объект может продолжать его использовать. Для дескриптора, созданного напрямую через сервер, выполняйте освобождение по контракту этого API.

Путь одного отображаемого объекта

  1. VisualInstance3D в нативном конструкторе создаёт экземпляр рендеринга через RenderingServer.
  2. Передаёт серверу изменения видимости и трансформации; при входе в World3D связывает экземпляр со сценарием рендеринга.
  3. В деструкторе освобождает экземпляр рендеринга. Поэтому вручную освобождать полученный от него RID опасно.
  4. Главный цикл синхронизирует рендеринг и запрашивает отрисовку, когда это допускают условия активного вывода и цикла.

Объект-обёртка отвечает за интеграцию с иерархией, сервер рендеринга — за представление для отрисовки. Прямой серверный вызов автоматически не создаёт Entity, запись в инспекторе или жизненный цикл игрового скрипта. Устройство конвейера ниже этой границы описано в архитектуре рендеринга.

Запуск и порядок кадра

Main инициализирует ядро, серверы, игровые типы и применимые модули, затем выбирает MainLoop; обычные проекты используют EntityTree. Кадр может содержать несколько фиксированных шагов физики и обновление с переменным интервалом. Main также выполняет отложенную работу в определённых точках и координирует физику, навигацию, рендеринг и звук. Названия каталогов не определяют безопасный поток или порядок обратных вызовов: проверяйте конкретное уведомление, контракт сервера и код синхронизации.

Обзор сверен с текущими исходниками. Существующие проверки Windows runtime подтверждают нативное наследование, отличие родителя класса от родителя в дереве, отложенные вызовы и удаление через очередь. Они не проверяют все бэкенды, платформенные пути инициализации, режимы потоков или сборку C++-модуля. Пути указывают расположение локальной реализации, а не загрузку исходников с сайта.

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

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

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

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