Tooling
Tuning and content plug-ins
How a game brings its own weapons, enemies and numbers to the engine without changing a line of it.
- Sheet
- 17 of 18
- Latest release
- v0.42
- As of
- 2026-10-22
EngineD ships the machinery of a shooter and nothing a player would recognise as a particular game. It has no guns, no monsters, no sounds and no words of its own. A game brings all of that, through sockets the engine leaves open, and tunes it with numbers kept in data files rather than in code.
Sockets
A socket is a place where the engine asks a game for something by number: "what is weapon 7?", "how does body type 12 bleed?", "what does a bullet hitting metal sound like?". The game registers its answers when it starts. Registering nothing is a working state: the engine runs, with plain defaults and empty sockets.
Each kind of content counts from its own fence. The engine keeps a few low numbers for itself, and a game numbers its content from the fence upward. Numbers never move once used, because levels and data files are saved with them in.
When something asks for a number nobody registered, a typo in a level for example, the engine picks whichever failure costs less.
| Answer | Chosen when | For example |
|---|---|---|
| Do the standard thing, and say so once | Refusing would look like a bug | An enemy with an unknown aiming style aims the standard way |
| Do nothing, visibly | A fallback would invent behaviour nobody asked for | A build-up meter on a weapon that nobody defined does nothing at all |
| Do the standard thing, silently | Saying nothing is itself the normal case | No special sound for a bullet hitting tiles: the general hit sound plays |
| Build nothing | A guess would hide a mistake in a level | A lift of an unknown type is not built, so its buttons drive nothing |
Profiles: tuning lives in data
The numbers that make a game feel the way it does, how fast the player runs, how much a shotgun pellet hurts, how far an enemy can see, are never written into engine code. They live in profiles: data files a designer edits, which the engine turns into the settings the simulation runs on. Two enemies pointing at the same profile share one set of settings, and retuning a monster is editing its profile, not rebuilding the game.
- 7
- kinds of profile the engine understands
- 0
- profiles the engine ships: every one is the game's
As of 2026-10-22.
| Profile | What it tunes |
|---|---|
| Movement | How the player runs, jumps and falls; whether crouch, sprint and walk are held or toggled |
| Vitals | The player's health, breath and respawning, and the player's body |
| Weapon | Damage, rate of fire, magazines, spread, alternative fire |
| Projectile type | A round in flight: speed, bounce, fuse, what it breaks into |
| Enemy | Health, speed, attacks, what it drops and how long its corpse stays. How it notices and decides: what wakes it, or whether it starts out hunting or never fights at all; who it treats as an enemy; whether it calls its allies and answers their calls; the range it likes to fight from and how it aims; when it staggers, dodges or flees; how it searches for you, and how long before it gives up; whether several of its kind surround you; and what it does when it has nothing to chase, wander or stand still. |
| Pickup | What lying on the floor gives you: ammunition, armour, a weapon, a power-up |
| Body type | What a body is made of: its size, how it bleeds, what it comes apart into, how it looks, and its senses: how far and how wide it sees, and how far it hears a gunshot |
A game can also hang its own numbers on the engine's settings: a block of tuning the engine carries along with a weapon or an enemy without understanding it, for the game's own rules to read. That keeps a game's ideas out of the engine while still letting them sit next to the thing they tune.
Numbers, or new behaviour
The first question for any new piece of content has a short answer: if it can be described by numbers, it is a profile.
A new set of numbers
A tougher, slower brute. A pistol with a longer magazine. A creature that bleeds green.
Authored as data. No code, no new type, and it can appear twice in one level with different values.
A new behaviour
An enemy that does something no combination of settings can describe.
Written as a small piece of game code that the engine calls at its place in each tick.
The rule is there to stop one mistake, writing code to hold numbers: a "brute" written as code can never be retuned by a designer, never appear twice with different values, and never be edited as data.
Editor tooling
Profiles and other content files are not edited by hand in the editor. They are generated: a game writes its content in code, and a generator produces the data files from it. A retune is an edit and a re-run, never a click someone has to remember, and content that has not changed comes out exactly as it was.
- Content in codeThe game's numbers, in one place
- GeneratorsBuild profiles, models, animations and icons from it
- Data filesWhat the running game actually reads
- Read back and checkedA generated file counts only once it has been read back and found right
The split mirrors the rest of the engine. The engine ships the general tools, such as panels for editing its settings and ways to measure models and check levels; the game ships everything that actually produces its own content. The engine's own test level is built this way too, as its first worked example.
A game built on the sockets
Backdoor Rupture, the first game being built on EngineD, is planned around these sockets. Its weapons, enemies, body types and pickups will be its own content, authored as profiles under its own numbers and generated with its own tools; anything that would be a new system goes to the engine as a request, so the game never grows a second copy of something the engine already does.
- Weapons and projectilesThe firing parts a weapon profile tunes
- What enemies can doThe repertoire an enemy profile draws from
- QualityHow generated content and levels are checked