![]() |
#11 | |
Knight
Join Date: Apr 2007
Posts: 590
![]() |
Quote:
My testing suggests it's naked-eye random for events with probability greater than about 1/27. (Below that point, save-scumming enchant __ scrolls starts hitting excessively many long runs of non-occurrence: the empirical chance of a 1 in n event having a run of 3n failures ideally is about 5% for moderately large n. Hardly a major failing.)
__________________
Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg. Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.) Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011 |
|
![]() |
![]() |
![]() |
#12 |
Swordsman
Join Date: Feb 2010
Posts: 405
![]() |
That sounds like it's a simple linear congruential generator. Those are seriously NOT random; they have major sub-cycles in them. Yes, they're god-awful if you pick the parameters wrong...but we're talking TOTAL cycle lengths of, like, 10 when you do that. But even if the coefficients are set up to give properly total cycle length, these generators inherently produce
R(n+k) ~= R(n) where k is the sub-cycle length. |
![]() |
![]() |
![]() |
#13 |
Prophet
Join Date: Apr 2007
Location: Seattle, WA
Posts: 6,726
Donated: $40
![]() |
@Tiburon: so what's your point?
Poor pseudo-randomness matters a lot when all you have is an array of random numbers, but composed with some complex state machine (like Angband), cycles aren't likely to be obvious to the end user. They sure aren't obvious to me; if they were, I'd win every game in very small number of turns... |
![]() |
![]() |
![]() |
#14 |
Knight
Join Date: Aug 2009
Posts: 670
![]() |
For such a complex thing like andband you do not need random numbers, any uniformly distributed numbers will be OK.
|
![]() |
![]() |
![]() |
#15 |
Knight
|
So the first time I attack the monster, I hit him for one damage... then I hit him for two... then I hit him for three... :P
__________________
You read the scroll labeled NOBIMUS UPSCOTI... You are surrounded by a stasis field! The tengu tries to teleport, but fails! |
![]() |
![]() |
![]() |
#16 |
Prophet
Join Date: May 2008
Location: Indiana, USA
Posts: 2,939
Donated: $8
![]() |
I've a better idea... mechanical hands, real dice, and an optical scanner. No more getting screwed over by the RNG.
__________________
www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012. My banding life on Buzzkill's ladder. |
![]() |
![]() |
![]() |
#17 | |
Knight
Join Date: Apr 2007
Posts: 590
![]() |
Quote:
__________________
Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg. Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.) Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011 |
|
![]() |
![]() |
![]() |
#18 |
Prophet
Join Date: Apr 2007
Location: Seattle, WA
Posts: 6,726
Donated: $40
![]() |
I would be happy to rewrite the random number provider to use an optional secure random number generator, like /dev/random on *NIX or CryptGenRandom on Windows. But I would be shocked, shocked, if you could tell the difference vs even a bad RNG like a linear congruential generator. Angband runs as the composition of the RNG with a really complicated finite state machine. So long as it can't get stuck in a cycle (like the borg), the lack of "randomness"* of the random numbers is not likely to be an issue.
* I put "randomness" in quotes, because even a secure RNG isn't necessarily truly random. It's just very, very hard to second guess. For true randomness, you need an ergodic (physically random) source like rolling dice or shuffling cards. This is surprisingly hard to come across on a purely digital system. The references above are to (mostly) ergodic RNGs. They use things like disk drive latency, mouse movement, keyboard delays, and WIFI signal strength as entropy sources. For the tinfoil hat set, you can buy true hardware RNGs for $100-$200. I suspect this won't fly with the angband crowd... edited for broken link, /dev/random reference, and completeness Last edited by Pete Mack; April 3, 2010 at 05:38. |
![]() |
![]() |
![]() |
#19 | |
Knight
Join Date: Apr 2007
Posts: 590
![]() |
Quote:
__________________
Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg. Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.) Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011 |
|
![]() |
![]() |
![]() |
#20 |
Apprentice
Join Date: Jul 2007
Posts: 80
![]() |
does it?
i guess it might induce people to 'loadscum' but is there any other reason this is bad? |
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Missing the top line in character file dumps. | Kyle | Development | 2 | July 25, 2009 19:57 |
rephial.org/play missing? | Orillian | Idle chatter | 2 | March 11, 2009 05:53 |
Missing high scores | ChodTheWacko | Vanilla | 1 | March 25, 2008 05:39 |
DaJAngband: new object question | will_asher | Variants | 4 | December 13, 2007 03:18 |
[Un] The mushroom dialogs | andrewdoull | Variants | 9 | August 28, 2007 23:30 |