Introduction to Reckfell
Entities, levels, prefabs, resources and C#: what is authored in the editor and what runs in the game.
What Reckfell is
Reckfell is a free, open-source game engine for 2D and 3D projects, with no royalties for using the engine. In the editor, you assemble objects, configure resources and test the game; behavior in this documentation’s examples is written in C#.
You can start with a small game. For a large project, measure your gameplay workload, resource volume and target-platform requirements early. A genre name or world size alone does not determine the workload the engine can handle.
Four core concepts
| Concept | Meaning | Example |
|---|---|---|
| Entity | A tree object with a particular type and behavior | CharacterBody3D for a controlled character |
| Level | A saved tree with the role of a standalone space, .rscene | A world with floor, camera and character |
| Prefab | A saved tree for reuse, .rprefab | A door or enemy instantiated repeatedly |
| Resource | Data referenced by objects; a separate text resource uses .rdata | A material, collision shape or settings |
Levels and prefabs use PackedEntity. Instantiate creates a tree instance; AddChild adds it to the hierarchy. These are distinct operations: loading a file alone does not create an object in the running level. See Entities, levels and prefabs.
How an object is assembled
The Entity type determines its capabilities. Entity3D stores a spatial transform but does not draw a model by itself. MeshInstance3D with a Mesh provides visible geometry. A physics body needs CollisionShape3D with a Shape; a visible model alone does not create collisions. UI uses Control and its subclasses, such as Label and Button.
Objects connect through hierarchy and signals. A script inherits an appropriate class and overrides the methods it needs: for example, _Ready for initial setup or _PhysicsProcess for a physics step. This is an object hierarchy; the Entity name does not imply ECS architecture.
The first 3D game demonstrates this through a character, arena, enemies and UI. For a separate script exercise, open C#.
Distinguish two kinds of path
asset://Props/Door.rprefab addresses a file inside the project. user:// is for user data. Player/Camera3D in GetEntity addresses tree objects relative to the calling Entity. Different names or parents require a different path; a runtime rename does not rewrite a string stored in code.
For parsing and lookup examples, see EntityPath. For object reuse, see instantiation.
Choose the next result
- Need a first run? Follow the beginner route.
- Need a complete small game? Choose 2D or 3D.
- Have a project and a specific task? Open the manual.
Test exports separately on the target platform: working in the editor does not replace launching the distributed build. Export explains package contents and initial checks.