Hacker News new | ask | show | jobs
by derefr 3888 days ago
> rendering it requires the exact same version of the game (including all mods)

It feels like (most) studios are really dropping the ball on this one. Event-sourcing through "rules engines" isn't that hard; you can have a client that "remembers how to be" every past version of the client, network-sync/replay-sync wise. You just need to go into the game architecture phase knowing you're building a networked game.

As a free bonus, when you build a game engine this way, you can also "audit" ladder/tournament matches by (asynchronously!) running through the game physics on the server after the match, before letting the match determination influence each player's ranking. (And doing your cheat-detection post-match really eases the requirements on the client sync protocol!)

It's harder with mods, unless your mods are also cleanly separable into "presenter-level" and "rules engine" parts. Not that I've seen this particular innovation before, but if the "rules engine" parts of mods are all in some common bytecode, the particular "house rules" required to run a replay could be embedded in the replay itself, along with package URLs for fat clients (and renderer instances) to pull down the presenter bits as well.