reckfellENGINE

Основные понятия Reckfell

Entity, дерево, уровень, префаб, ресурс и сигнал — роли и связи без подмены терминов.

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

Что находится в игре

ПонятиеРольПример
EntityОбъект иерархии с именем, родителем, детьми и жизненным цикломКорень персонажа
Entity2D / Entity3DEntity с преобразованием в 2D / 3DОбъект с положением и поворотом
Специализированная EntityГотовое поведение движкаCamera3D, CharacterBody3D, Button
EntityTreeАктивное дерево игрыТекущий уровень и служебные объекты
ResourceДанные, на которые ссылаются объектыМатериал, звук, текстура
PackedEntityСохранённая иерархия, из которой создают экземплярЗагруженный префаб

Entity — иерархический объект с наследованием классов и поведением. Одно название не означает ECS: здесь сущность не является только числовым ID для набора компонентов, обрабатываемых внешними системами.

Уровень, префаб и экземпляр

Уровень .rscene обычно собирает игровое пространство. Префаб .rprefab — повторно используемая часть: персонаж, предмет, интерфейс. Оба формата представлены PackedEntity; роль определяется путём исходного ресурса. .rdata и .rbin используются для отдельно сохраняемых данных ресурсов в текстовом и бинарном виде.

Экземпляр — отдельная живая иерархия. Load() загружает шаблон; Instantiate() создаёт экземпляр; AddChild() присоединяет его. Изменение положения экземпляра во время игры не переписывает исходный префаб. Данные ресурса, например материал, могут оставаться общими для нескольких экземпляров. Например, два экземпляра Player.rprefab имеют отдельные положения своих Entity, но могут ссылаться на один Material. Перемещение одного игрока не перемещает второго; изменение общего материала способно изменить обоих.

Родитель и Owner

Родитель определяет место в дереве и время жизни присоединённых детей. Entity2D и Entity3D по умолчанию наследуют преобразование родителя. Owner определяет включение объекта в сохраняемую иерархию: это один из его предков, но не обязательно непосредственный родитель.

AddChild() назначает родителя, но не Owner. Если создаёте и затем сохраняете иерархию из кода, сначала присоедините объект, затем назначьте нужного предка владельцем. Смена Owner не перемещает объект между родителями. Runtime-объект не сохраняется автоматически только потому, что появился в дереве.

Скрипт и сигнал

Скрипт расширяет поведение Entity. Сигнал сообщает о произошедшем событии другим объектам. Для команды конкретному объекту вызывайте метод; для уведомления заинтересованных слушателей используйте сигнал. Подписка не воспроизводит прошлые события — начальное состояние читают отдельно.

Как проходит запуск

При входе в дерево сначала выполняется _EnterTree() родителя, затем детей. _Ready() вызывается в обратном порядке: дети перед родителем. Повторное добавление той же Entity в дерево само по себе не повторяет _Ready(); для этого есть RequestReady(). Удаление из дерева через RemoveChild() само по себе не освобождает объект: его можно присоединить снова.

Кадровая логика выполняется в _Process(), физическая — по тактам _PhysicsProcess(). Открытие документа в редакторе не означает, что его Entity уже выполняют игровой код в запущенной игре. QueueFree() планирует удаление Entity и её детей. После удаления C#-ссылка может остаться; проверяйте действительность объекта перед дальнейшим использованием.

Дальше по задаче: первый проект, префабы, движение, интерфейс.

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

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

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

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