Hacker News new | ask | show | jobs
by dividuum 1891 days ago
I don’t know how larger the game state/save game is, but if it’s small enough for a url parameter, they might even use their CDN for caching, as I would assume the same state always results in the same game output. If you don’t deviate from paths of previous players, you could sail along a cached path, no computation required :)
2 comments

> if it’s small enough for a url parameter

Somewhat related: the PlayStation port of DOOM only allowed saving at the end of a level. It used alphanumeric sequences for its saves. You'd write down the sequence and manually re-enter it on your next session, avoiding the need for a memory card.

Presumably it only needed to store <level ID, difficulty, weapons, ammo levels, health, armour, checksum>.

Clever idea but as things like your position and camera angle are floats, there are virtually infinite gamestates.
DOOM still used fixed point arithmetic at the time for speed, so it could be a large set but not as big as floats. You could also drop a few bits of precision off the LSB and make your search space that much smaller.
Floats are still represented in 32 bits, or 64 for doubles
That would approximate infinity quite fast once you move around a few steps :-)

I guess limiting rotation to 64 steps would be enough, but even then the state space grows exponentially. So it's not really useful in the end, but that fits the project, I guess.

But you have to multiply that by the possible locations on the map and the enemy states. I imagine it would be possible to get a few hits at the starts of levels but I suspect that the vast majority of the frames for any play-through have never been seen before.