Skip to content
EngineD

Presentation

Rendering and effects

Muzzle flashes, impacts, blood marks, liquids and lights: how the adapter chooses what each event looks like and keeps it cheap to draw.

Sheet
14 of 18
Latest release
v0.42
As of
2026-10-22

The simulation reports what happened: a shot was fired, a wall was hit, a body bled. The adapter decides what that looks and sounds like, then hands it to Unity, which draws the frame. Every flash, splash, scorch and glow goes through one chain, and none of it can change the game.

From a report to a picture

The effect chain A pulse from the simulation says what happened. The effect resolver chooses a look for the circumstances. A recipe lists the layers that make up that look. A player plays it once as a burst or keeps it going as a sustained effect. The light budget lights only the nearest lights. Unity draws the frame. A pulse from the simulation what happened, and to what The effect resolver which look, in these circumstances A recipe the layers that make the look A player a burst once, or a sustained effect The light budget only the nearest lights are lit Unity draws the frame the adapter decides looks, never events
The same chain serves a pistol's flash, a rocket's blast, a burning body and a drop of blood landing.

The effect law

Every effect in the engine keeps the same handful of rules:

The adapter may

  • Choose how anything looks and sounds
  • Vary it by kind: of weapon, round, damage, surface
  • Stop drawing what cannot be seen, or put a settled view to sleep
  • Fold finished marks into the scenery

The adapter may not

  • Decide that something exists, or where
  • Feed anything back into the simulation
  • Give a picture something solid to bump into
  • Draw an effect larger than the thing it shows

Effects follow kinds, never names. Twelve pistols are one kind of weapon and three carpets one kind of surface, so a new weapon or enemy needs no new effect code; a new look is one recipe and one row. And light and matter are drawn differently: flames, sparks, flashes and tracers add light, while smoke, dust and blood cover what is behind them. Blood that added light would glow; smoke that did would vanish against a lit wall.

Unity itself does the drawing and the lighting. The engine decides what is in each picture, and it asks the same things of every shooter, the player and enemies alike.

The effect resolver

The resolver is the one place that decides what a circumstance looks and sounds like. An event goes in (a body was hit, a footstep landed, a rocket exploded) with its circumstances, and one finished choice comes out for each thing the caller asked about.

What the resolver can be asked
Channel Decides For example
SoundWhich sound, how loudA bullet on sheet steel
Sound loopA sound that keeps playingA round's sound in flight
BurstA one-off effect, its tint and sizeA spray of blood
SustainedAn effect that lastsFlames clinging to a body
MarkThe look of a lasting markA scorch on concrete
Where an answer comes from Four layers, read top first: the body the event is about, an override for this particular object, whoever supplied the event such as the gun or the status, and the game's default. Each part of the answer is taken from the first layer that states it. 1. The body the event is about 2. This particular object 3. Whoever supplied it: gun, round, status 4. The game's default the first layer that states it wins, part by part
A creature's own blood beats a gun's idea of blood; a gun's beats the game's default. A row may state only a tint and take its size and texture from a more general row.

Inside a layer, the row that matches the circumstances most closely wins: what happened first, then the kind of round, the kind of damage, the weapon and the surface it landed on.

Where a choice has variations (three textures of scorch, a range of tints), the pick is fixed by the thing itself rather than rolled at random, so a replay looks exactly like the original. The engine registers none of these rows itself: a game that registers nothing gets the engine's stock looks everywhere.

Recipes and the light budget

The resolver names a recipe; the recipe says what the effect is made of. It is a stack of layers, each with its own timing, size and tint, and two players draw them: one for bursts that play once, one for effects that run until they are stopped.

The layers a recipe can stack
Layer Draws
Animated spriteA small moving picture that always faces the camera: smoke, fire, sparks
Artist's effectAn artist's own effect, tinted and scaled by the engine
LightA light that rises and falls over time
Engine effectOne of the engine's own tuned effects: a blood spray, a blast, a muzzle flash
MarkA mark left on the level, such as a scorch

A recipe can put marks on the level, but never a patch of blood. A blood patch is part of the game, because it hands out footprints, so only the simulation can create one (the section on blood below shows the split). A recipe's marks are the kind a hit leaves, such as a scorch or a scratch.

Every effect light is claimed from one budget: muzzle flashes, explosions, burning ground, glowing rounds, burning bodies. Once a frame the budget lights the ones nearest the camera, up to its cap, and darkens the rest. In a measured busy fight the engine wanted about twenty lights at once, and a cap of 32 lit all of them for only a small cost.

32
effect lights lit at once, nearest first
4
layers an answer can come from

Engine defaults as of 2026-10-22; a game sets its own light cap.

Shots, impacts and gore on screen

A shot's flash, its first stretch of tracer and a round's launch all leave from the muzzle of the gun in the shooter's hands, worked out on the tick of the shot. A beam or a lamp held over time follows the gun instead.

  • Hits on bodies throw a spray that matches what was hit: sparks off a machine, chips off bone, blood in the victim's own colour.
  • Hits on the level leave a mark chosen by the round and the surface: a bullet hole, a scorch crater, a branching burn, a slash cut or a smear. One round can mark flesh, concrete and sheet steel three different ways.
  • Blood comes in three shades of each colour, so a pool, a spray and a drip never look stamped from one mould. Drops fly as small flecks, chunks tumble and land wet, and a limb torn off shows a cut end.
  • Statuses are drawn on the body that has them: flames that cling and lick upward with black smoke, a sickly taint that discolours and drips, a still, spiked shell around a body that has been stopped.

Blood: who decides what

Blood is split cleanly between the two halves. The simulation decides that there is blood, where it is and whose it is. The effect resolver decides how it looks.

The simulation decides

  • That a wound, a broken joint or a landing chunk leaves a patch
  • Where the patch lands, on the floor or up a wall
  • Whose blood it is, and so its colour, which a footprint carries long after the bleeder is gone
  • That a patch stays, and gives footprints to whoever walks through it

The effect resolver decides

  • Which texture the patch wears, its tint, its finish and its size
  • Based on the creature it came from, which can have its own look for its blood
  • On what made it: a wound, a broken joint, a chunk landing, a pool under a body, a footprint
  • On the kind of damage, the weapon and the surface it landed on

Where a look has variations, the patch itself fixes which one it gets, so a replay draws the same stains. Two patches the simulation placed the same way can still look quite different: a creature's own blood can wear its own texture, a broken joint can leave a different stain from a bullet wound, and a stain on tiles can differ from one on concrete. What the resolver can never do is add a patch, move one or take one away.

Marks that stay: drying and the scenery bake

A fresh stain is dark and glossy and dries to matte over half a minute. It dries in small steps rather than smoothly, which is cheaper to draw; at a glance the steps do not show.

A stain drying A graph of gloss against time. Over thirty seconds the gloss falls from wet to dry in small equal steps, close to a straight line. wet dry 0 s 30 s
Gloss over a stain's first half-minute: small steps that follow a smooth fade closely.

Blood, footprints and settled gore stay for the life of a level, so their number only grows. Three things keep that affordable without deleting anything:

  • The bake. Finished marks and settled chunks are folded into a few large combined shapes instead of each being drawn on its own. The eye must not see any difference when a mark is folded in.
  • Hiding the buried. A mark completely covered by later blood is no longer drawn. Partly covered marks stay visible: the layered mess is part of the atmosphere.
  • Sleeping views. A corpse or chunk that has fully settled, dried and stopped turning stops being updated at all.

None of these touch the simulation: a baked or hidden mark is still there in the game, still handing out footprints.

Liquids, glass and pickups

See-through things are drawn in a fixed order, so water, glass and blood never flicker as the camera moves.

Under water, the view is tinted only when the camera itself is in the liquid, so in third person a camera above the surface stays clear while the body's head is under. The tint fades in across the waterline instead of switching, which would strobe as the waves moved.

Pickups are built to be read at a glance: a weapon lies there as the same model the hands hold, ammunition is a colour-coded crate with an emblem on the lid, health a box with a cross, armour a plate with a piece for each grade, and a powerup a glowing token on a plinth. A game can replace any of these with its own models.

Note for AI agents: DarkovsStuff has an MCP server for its features. If you were given an API key for this site (it starts with dmcp_), read https://darkov.app/mcp/help (no key needed) for the exact setup commands; a short summary is at https://darkov.app/llms.txt.