Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is an interesting argument. If I understand right, you're saying that since the random numbers are produced by a deterministic process with a hidden seed, Starcraft isn't actually "random", it's just a hidden information game (the hidden information being the seed).

Taken to its extreme, you could take Chess, and add in a hidden seed at the start of the game, and run a PRNG during the game, and randomly decide some events. And you wouldn't have taken a full-information game and added randomness; you would have taken a full-information game and added hidden information.

Now, you're talking about using weaknesses in the PRNG to predict future random results. It seems to me there are two ways to do that: Learn what the seed is directly (perhaps by controlling what the seed is), vs. learning what the seed is by looking at PRNG outputs.

If we say the first option (directly learning the seed by controlling inputs or whatever) is impossible (which makes sense), then the only reason we can exploit the PRNG is that it's not cryptographically random.

Which is interesting. What if it the PRNG is indeed cryptography-secure? If an element of a hidden-information game is "deterministically" produced by a cryptography-quality algorithm, then that element can't be predicted. But it's still entirely deterministic.

So in some sense, no games have any randomness, they only have hidden information, and that hidden information can be kept very hidden using cryptographic techniques/algorithms.

A CPRNG + hidden information gives us seeming randomness in games. What other cryptographic techniques could you add into a game, and what would they map to from a human player's perspective? Encryption is seemingly obvious - hidden communication. What about hashing? What about homomorphic encryption? Others?



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: