reckfellENGINE

Принципы архитектуры Reckfell

Родитель и базовый класс, композиция Entity, общие ресурсы, префабы и код редактора.

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

Два разных вида связи

Иерархия Entity и наследование C# решают разные задачи.

СвязьЧто определяетЧего не делает
Родитель и ребёнок в деревеСтруктуру объекта, совместимые преобразования, вход и выход из дереваНе делает ребёнка наследником C#-класса родителя
Наследование типаДоступные свойства, методы и поведение классаНе добавляет объект в дерево
OwnerКакие объекты входят в сохраняемое деревоНе заменяет Parent и не задаёт базовый C#-класс

Если Player находится внутри World, это не означает class Player : World. Тип CharacterBody3D наследует возможности физических и пространственных базовых классов независимо от имени его родителя. См. Entity, уровни и префабы.

Собирать объект из подходящих Entity

Начните с корня, который отвечает за основное поведение. Для управляемого персонажа это может быть CharacterBody3D. Его дочерние MeshInstance3D и CollisionShape3D задают вид и форму столкновения; Camera3D может быть отдельным объектом уровня или частью иерархии персонажа.

Добавление дочерней Entity не равнозначно добавлению ECS-компонента. В Reckfell это объект типизированной иерархии с собственным жизненным циклом. Не переносите предположения о плоских ID сущностей и пакетной обработке ECS без проверки реальной архитектуры.

В 3D-примере визуальная часть и физическое тело разделены: анимация вида не должна случайно менять форму столкновения. Для поведения во времени выбирайте подходящий метод — _Process или _PhysicsProcess; основные понятия объясняют порядок событий.

Переиспользовать дерево и учитывать общие данные

Уровень .rscene и префаб .rprefab имеют разные роли, но оба представлены PackedEntity. Файл хранит описание дерева; Instantiate создаёт экземпляр, AddChild добавляет его в иерархию. Создание экземпляров показывает полный порядок.

Изменение источника и локальное переопределение свойства экземпляра — разные правки. При проверке новой версии префаба учитывайте сохранённые переопределения: нельзя обещать, что любое изменение источника заменит любое значение в каждом экземпляре.

Ресурсы могут быть общими. Если два объекта используют один Material, изменение этого ресурса может затронуть оба. Для самостоятельной вариации создайте копию и назначьте её нужному объекту; вложенные ресурсы проверяйте отдельно. Копия внешнего контейнера не всегда означает независимую копию всего содержимого.

Скрипт игры и код редактора

Игровые примеры используют C#. Редактор предоставляет собственные инструменты и допускает расширение, но его C++-исходники не являются обычным игровым проектом с project.reckfell.

В C# атрибут [Tool] разрешает выполнение скрипта в редакторе. Такой код способен менять редактируемые данные, поэтому отделяйте действия для редактора от игровой логики. Подробности и рабочие примеры — выполнение кода в редакторе.

Как принимать архитектурное решение

Выберите один игровой объект и проверьте его создание, повторное использование, удаление и повторный запуск уровня. Сначала подтвердите корректность, затем измеряйте нагрузку в целевом проекте. Производительность помогает искать конкретную причину медленного кадра; размер иерархии или название жанра сами по себе не заменяют измерение.

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

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

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

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