reckfellENGINE

Extending the engine: choosing an API

When to use C#, an editor plugin, a native library or an engine module.

On this page

Choose an extension mechanism by the task and available API. Having C++ source does not mean every feature requires a custom engine build.

TaskStarting pointRequirements
Game logic, custom components and dataC# Entity/ResourceBuild the C# project with the available managed SDK
Custom data formatResourceFormatLoader/ResourceFormatSaverFormat callbacks and handler registration
Synthesis or queued PCMAudioStreamGeneratorConsistent rates, buffer filling and underrun monitoring
Editor toolEditorPlugin, or EditorImportPlugin when neededEditor lifecycle and registration cleanup
Native library through the available ABIReckfellExtensionPer-OS/architecture libraries and suitable interfaces
Internal systems unavailable through an APIC++ module or Source changeEngine and required export-template builds
New platform backendPlatform portWindow, input, rendering, audio and target-build integration

Start with an observable result

  1. Find the required type and method in the SDK reference. An internal C++ method is not automatically available in C# or the extension ABI.
  2. Implement one complete scenario: create an object, call the function, obtain a result and release owned resources.
  3. Assign ownership of registrations and subscriptions. Remove them when disabling a plugin or shutting down its service; disposing a wrapper does not replace unregistration.
  4. If the code must run for players, test an exported game. A successful editor run does not establish that a native library, dependencies or custom files are present in an export.

Working examples: custom resource formats, streaming audio. For editor tools, start with EditorPlugin and EditorImportPlugin.

When native builds are needed

ReckfellExtension loads a separate native library described by .reckfellextension. Library selection depends on target platform and architecture features; a single library file does not automatically run on every system. Access is limited to the extension interface: using C++ does not expose arbitrary private Source classes and functions.

A C++ module is part of the engine build. Its registration is divided into Core, Servers, Scene and Editor initialization levels. Editor-level code must not be assumed to exist in the game. Changing a module requires rebuilding the relevant executables; distributing a game needs matching templates for its target platforms.

Neither an extension nor a module guarantees a speed improvement. First measure the scenario: computation, API crossings, data copies, waiting or GPU work. Moving small calls across a language boundary may leave the real bottleneck intact.

Continue with native extensions, C++ modules, platform ports.

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.