4 ms·
My favorite is the Doom random number generator, which is just a list of “random” numbers that it cycles through and if you know how to use it, you can do thing
by bombcar 9d ago
My favorite is the Doom random number generator, which is just a list of “random” numbers that it cycles through and if you know how to use it, you can do things like concentrate BFG attacks.
- nomel 9d agoReminds me of a "Dice" electronics kit I assembled when I was a kid. It just used some standard sequential counter ICs run at very high rate. Pressing the "roll" button would just stop the counter!
- xoxxala 9d agoEverQuest also used pre-generated numbers. The randomness was derived from the large number of players using the same list.
- thaumasiotes 9d agoThat sounds like a pretty strong source of true randomness, frankly. (It's then filtered through the list, so the list needs to have good pseudorandomness properties anyway, but still.)
- eru 9d ago> (It's then filtered through the list, so the list needs to have good pseudorandomness properties anyway, but still.) Not sure? Suppose your list only had two number 0 and 1, and you build your random numbers one bit at a time. Or more realistically, you have 256 numbers on the list 0, 1, 2, ..., 255 in order. If the 'large numbers of players drawing from the same list' assumption holds, it doesn't matter much that the list is in order. What's just a bit weird is why anyone would want to turn an embarrassingly parallel problem into something with a sequential bottleneck?
- thaumasiotes 9d ago> Or more realistically, you have 256 numbers on the list 0, 1, 2, ..., 255 in order. If the 'large numbers of players drawing from the same list' assumption holds, it doesn't matter much that the list is in order. Why not? That should convert your random number generation into draws from a Poisson process. If you were looking to simulate a Poisson distribution, you're set. If not, you probably just ruined your RNG. (If the idea is that the interval between any two samples is so large that the list will inevitably be cycled several times before any one person can sample a second byte, there's something to that. It's going to make asking for random numbers more than 8 bits long challenging though.)
- eru 9d ago> It's going to make asking for random numbers more than 8 bits long challenging though. 'Yield' to other players' threads or processes after each byte you draw.
- deleted 9d ago[deleted]
- PennRobotics 9d ago:) the closely related not-at-all-random fizzlefade from Wolfenstein: https://fabiensanglard.net/fizzlefade/ https://fabiensanglard.net/fizzlefade/
- vladde 9d agodecino made a video about that, and at 13 minutes in the video they show what happens in-game if you set all values to 0 :) https://www.youtube.com/watch?v=pq3x1Jy8pYM https://www.youtube.com/watch?v=pq3x1Jy8pYM