">
← All posts

Why build an engine for this

Writing your own engine is bad advice, and worse advice for one person with a day job and a family. I ignored it for one reason.

A wallhack is not clever client software. It is the client having been told where someone is, and drawing them through a wall. The cheat is downstream. The leak is the packet.

So the fix is not detection or a ban wave. The fix is that the position was never in the packet, and that is a property of the replication layer, the visibility system and the simulation model at once. By the time you go looking for it, you have hundreds of places that write bytes to a client, every one written by someone who assumed they could send whatever they had. Auditing all of them with no help from the compiler is not something you finish in the evenings.

Which forces the order. The gate goes in before there is traffic to gate, so it goes in before the game.

What that looks like in the code

Sending an entity to a player requires a proof that the player can see it. The proof cannot be built outside the module that issues it, cannot be copied, and cannot be kept from an earlier tick and used again.

Code that sends a position without one does not compile. Not a lint, not a review checklist, not a test somebody deletes because it was in the way.

The other half is determinism. A tick is 16,666,666 nanoseconds as an integer, and simulation time is the tick count multiplied out rather than elapsed time accumulated, because accumulated float time drifts and the drift depends on how you got there. No system reads a clock. Every build replays a fixed run and hashes the result, so if identical inputs stop producing an identical raid, the build fails. When a client and a server disagree, the disagreement reproduces.

What it costs

It is slow. There is one map worth playing, and the things a player would notice sit behind architecture no screenshot shows. Accounts and a stash do not exist.

It does not stop aimbots. An aimbot needs what is already on your screen, which you have to be shown to play. Anyone claiming their architecture solves that is selling something else.

What it stops is the cheat that works by knowing: where people are, what is in the container, which exit is live. That part can be closed by construction instead of by an arms race.