Here's a log from 2003:
Illademn
By what name do you wish to be mourned? Password:
MOTD ANNOUNCEMENTS
2003/11/10 A rest for your fingers. You can now target characters with just
part of their name. See help TARGET.
Tweak to the AREAS command. New Syntax: areas <string>
2003/11/07 NOFOLLOW toggle has been tweaked. Syntax: nofollow <player | pets&
The most computationally expensive part of running the program was formatting the result to print to the screen. With output, 100K calls took .09 seconds of CPU time; without output, 100K calls took .001 seconds of CPU time. For one billion (1,000,000,000) calls, it took about 64.7 seconds if I formatted the results for display, but only 16 seconds of CPU time if I didn't.
Most of us just don't remember to go "holy cow, I just drank 13 protection potions in a row, and I got protection evil, good, evil, good x2, evil x3, good, evil, good x2, evil! That's a 1 in 4096 chance!"
Nah, we're all on the same page. But I've been lurking around these forums (and the ones Zulgh ran before he immed) for probably ~18 years now, and questions about the RNG come up all the time; sometimes it's the newbie who notices a streak in skill learning, and sometimes from the disgusted veteran who just failed word of recall 3 times and got killed. Some games (Dota 2 comes t
That's definitely possible; their server could have a completely poor entropy pool or be non-compliant with POSIX, which specifies that random() needs to return values from a "nonlinear additive feedback random number generator." That being said, as you noted, wide discrepancies are unlikely.
The entire point was to disprove the oft-mentioned idea that there may be something non-random about CF's RNG implementation.
I know in the motherland you can probably just use scores of coin flips from enslaved Chechen separatists and Crimean schoolchildren to fill up your servers' entropy pools, but CF is hosted on Linode. :P
This certainly holds true for things like practicing spells and whatnot where there are likely a large number of calls for random numbers from different characters between each of yours. However, ROM (and therefore probably CF) is single-threaded, and things like each round of combat are handled by iterating over the list of characters, seeing who's fighting who, and processing their hit at
It looks like Furey wrote a random-number generator for Merc based on an algorithm from Knuth. When Alander wrote ROM, he said he noticed streakiness in the Furey-written RNG and reverted to the POSIX system function random() while seeding it using srandom() with a seed of a bitwise XOR of the time_t long and the program's PID. The relevant bits are below:
/*
* I've gotten too
TL;DR, it looks pretty dang random and evenly distributed.
Since a ton of questions are asked about randomness on Carrion Fields, I thought I'd do some checking of my own. I don't have access to the Carrion Fields code, but CF is based on ROM, which is based on Merc, which is based on DikuMUD. The key randomness functions in the code in ROM are rewritten from Merc, so it's unl
It connects from your local computer to CF, just like a locally-installed client would. But if the SSH port (22) isn't blocked, you can use another box as in intermediary, which is what I did at my old job. I'd be happy to give you an account on one of my servers if you want to try that route.
[ Duerg ] (PK) Phindar the Holy of Faith, Acolyte of the Kara Chal, Servant of Dawn
[ Elf ] (PK) Caterina the Holy Heroine, Servant of the Dawn
I can hear the hissing already.