Article
Why Game Engines Are Not Simulation Engines
Game engines and simulation engines are optimized against opposite definitions of correct — which shows most plainly in what each sacrifices under load.
TL;DR
Game engines and simulation engines are optimized against opposite definitions of "correct." A game engine is correct when it looks and feels right to a person in real time; a simulation engine is correct when its output is the faithful, reproducible consequence of the modeled rules, whether or not it looks right. That divergence runs to the bottom of the architecture and shows most plainly under load: a game engine sacrifices the model to protect the frame rate, while a simulation engine sacrifices speed to protect the model. The non-determinism that makes a game engine fast is part of its execution model, which is why you cannot configure one into a simulation core — you can only mount its renderer on top, as a viewport onto a deterministic core beneath.
Two Definitions of "Correct"
The two kinds of engine share enough machinery — scene graphs, physics integrators, component systems, asset pipelines — to look like variants of one thing. They are not, because they answer to different judges. A game's output is judged by a human's perception in the moment: does the scene look continuous, does it respond instantly, does it feel right. A simulation's output is judged by an absent reviewer afterward: is this the result the rules actually entail, and will it be the same result on the next run and the next machine.
These are not two points on a single quality scale where the simulation merely demands "more." They are different success functions, and an engine compiles its every architectural choice toward whichever one it serves. Optimize for perception and you will trade away anything the eye does not catch — including, freely, reproducibility. Optimize for evidence and you will trade away anything that threatens it — including, often, the very tricks that make real-time rendering feel alive. The shared components are real, but they are arranged toward incompatible ends.
What Each Sacrifices Under Load
Both kinds of engine eventually meet a step they cannot finish in the time available, and what they do at that moment reveals what they are. A real-time engine must stay responsive, so under sustained pressure it protects the experience: it stretches or clamps the timestep, runs fewer physics steps than wall-clock time called for, and interpolates the rendered frame to keep motion smooth. A dropped or shortened step is invisible to a player; a stutter is not, so the model gives way first.
A simulation engine inverts the priority without hesitation. It will slow below real time, or run headless faster than real time, but it will not let the wall clock change the computed trajectory — every step is taken, in order, whether or not anyone is waiting. The game asks what it can skip to stay smooth; the simulation asks what it must preserve to stay correct, and the two answers are nearly opposite. This is why a timestep coupled to frame rate — the natural design for an interactive engine — is disqualifying for an analytical one: it lets the speed of the hardware leak into the result.
Plausibility Hacks Are Features in One World and Defects in the Other
Game physics is engineered to be stable and convincing, and it reaches that stability with techniques that trade physical correctness for visual calm: clamped velocities, damped jitter, adjusted contact resolution, objects put to "sleep," values nudged to stop things from tunneling or flying apart. Judged by perception, these are correct — the scene stays believable and pleasant. Judged as evidence, they are silent corruption: the trajectory now reflects the stabilizer as much as the model, and nothing in the output announces which.
The same instinct governs failure. An interactive engine fails soft, absorbing a bad value or a missed frame so the player never sees a fault. A simulation engine has to fail loud, because a quietly clamped value that keeps the run alive is exactly the contaminated result an analyst must never unknowingly trust. An engine that hides faults to preserve the experience is doing its job in one domain and quietly undermining it in the other.
Determinism Lives in the Execution Model, Not a Settings Menu
The reason a game engine cannot simply be switched into a simulation core is that the mechanisms making it fast are the same mechanisms making it non-reproducible. Work is spread across threads and the GPU and recombined in whatever order finishes first; behavior is permitted to depend on frame rate; floating-point results drift across compilers, instruction sets, and hardware. None of this is an oversight. It is the performance architecture, and reproducibility was never one of its requirements.
The instructive exception proves the rule. Where games genuinely require reproducibility — the lockstep networking of strategy titles, the rollback of competitive games — they do not toggle a flag; they rebuild from the execution model up: a fixed simulation tick, fixed-point or carefully constrained floating-point math, a defined processing order for physics contacts, seeded randomness, and only player commands sent across the wire. That is precisely the discipline a simulation engine requires, adopted because the game now has an evidentiary requirement of its own. Determinism, in other words, is a property you design into how time advances and work is ordered — not one you negotiate afterward on top of an engine built for the camera.
Where the Renderer Belongs
None of this means game technology is useless for serious simulation. Its rendering, asset tooling, and interaction design are genuinely strong, and there is no reason to rebuild them. The architectural question is narrower: which layer owns the truth. In a game, the simulation exists to serve the renderer — you compute what the camera can see, cull what it cannot, and approximate whatever is off-screen, because off-screen detail does not matter to the experience. In analysis, the model must be complete and identical whether or not anyone is watching; the computation that runs headless at fast-time has to be the same computation a person later watches at real-time.
So the renderer belongs on top, as a read-only viewport onto a deterministic core — not underneath it, as the system that produces the state. A well-built interactive engine already decouples its variable-rate rendering from its simulation tick; the only correction analysis demands is to make the tick beneath it the authority and the rendering merely the window onto it. Invert that order — let the engine optimized for the camera own the state that decisions rest on — and the analytical value drains out while the screen still looks impressive, which is the most dangerous configuration of all, because the loss is invisible.
Why the Direction of the Dependency Is the Whole Argument
The question was never whether game engines are capable; they plainly are. It is which definition of correct an engine was built to satisfy, because that choice is made at the bottom of the stack — in the timestep, the threading model, the numerics, the handling of error — and it cannot be reversed by configuration at the top. A system that looks like the operational world but computes to keep a camera satisfied will always be more persuasive than it is trustworthy.
In a game, that is exactly the right trade. In decision support, persuasion that outruns trust is the specific failure to engineer against, and the defense is structural: a deterministic core that owns the state and the truth, with the renderer above it as a viewport rather than the foundation. Keep that dependency pointing the right way and game technology becomes a genuine asset to serious simulation. Reverse it, and you have built something that demonstrates beautifully and cannot be believed.