reckfellENGINE

Engine subsystem map

Subsystem boundaries, object ownership and the path from Entity to server.

On this page

Reckfell separates the game hierarchy, subsystem services and platform implementations. These are code boundaries inside the engine process, not network microservices. Start with Entity and Resource for gameplay; use a server directly when you need its lower-level contract and can manage the required handles.

Map of responsibilities

AreaResponsibilityCurrent source location
CoreObject identity, ClassDB registration, Variant, reference counting, resource loading, containers and file accessSource/core/
Game hierarchyEntity parent/child relationships, EntityTree processing, 2D/3D objects and UISource/scene/
ServersRendering, audio, physics and navigation interfaces and implementationsSource/servers/
DriversGraphics/audio backend code and other low-level integrationsSource/drivers/
PlatformOperating-system integration, entry points and platform-specific implementationsSource/platform/
Startup and frame coordinationInitialization, MainLoop selection, physics steps, frame processing, rendering synchronization and shutdownSource/main/main.cpp
EditorAuthoring tools, inspectors, import UI and editor pluginsSource/editor/
ModulesFeatures registered at defined initialization levels, including C# supportSource/modules/

This is a responsibility map, not a strict one-way dependency graph. Core supports multiple layers; server implementations can also live in modules. Enabled features and backend availability depend on the build.

Entity, Resource and RID

Entity inherits the native Object base exposed to C# as ReckfellObject. It participates in a parent/child hierarchy. EntityTree inherits MainLoop and coordinates the active hierarchy. The tree parent of an Entity is separate from its class inheritance parent. Renaming the hierarchy objects Entity does not make this an ECS storage model.

Resource inherits RefCounted. A texture or material is reusable data with its own lifetime, rather than a required Entity in the tree. Multiple objects can reference the same resource; changing a shared material can affect all its consumers. See objects and lifetime and class inheritance.

RID is a handle used by server APIs. It is not an Entity, a C# object reference or a universal ownership token. Do not call FreeRid on a handle borrowed from a Resource or Entity; the owning wrapper may still use it. A handle created directly through a server needs the cleanup prescribed by that API.

Follow one rendered object

  1. A VisualInstance3D creates a rendering instance through RenderingServer in its native constructor.
  2. It forwards visibility and transform changes to that server; entering a World3D associates the instance with a rendering scenario.
  3. Its destructor releases the rendering instance. This is why manually freeing its borrowed instance RID is unsafe.
  4. The main frame loop synchronizes rendering and requests a draw when the active output and loop conditions allow it.

The wrapper owns hierarchy integration; the rendering server owns its rendering representation. Using server calls directly does not automatically create a corresponding Entity, inspector entry or game script lifecycle. See rendering internals for the pipeline below that boundary.

Startup and frame order

Main initializes core, servers, game types and applicable modules, then selects a MainLoop; ordinary projects use EntityTree. A frame can contain multiple fixed physics steps and a variable frame update. Main also flushes deferred work at defined points and coordinates physics, navigation, rendering and audio. Do not infer a safe thread or callback order from directory names: follow the relevant notification, server contract and synchronization code.

This overview is checked against the current source. Existing Windows runtime checks confirm native ancestry, the distinction between class/tree parents, deferred calls and queued deletion. They do not validate every backend, platform initialization path, threading mode or C++ module build. Source paths identify local implementation locations, not hosted source downloads.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.