Around 15 years ago, when casual little games on Facebook were still a thing (actually when Facebook itself was still a thing), I used to play Yahtzee on the site while watching TV shows or whatever. It was one of the most popular games on there. For me it was something to fidget with (there was no money involved or anything, just a personal high score), so I played it a lot. I felt more and more that dice values of…
You stopped playing because they listened to you and fixed the bug for everyone?
Wi Flag (2002)
71–80 of 217 posts
Re: Wi Flag (2002)
#72I wonder if there’s a cheap Frankenstein approach to create a test-only interface into your code with a CLI / FFI and wrap it with some Python to easily test the result distributions.
Then you can use tools like scipy or newer probabilistic programming frameworks like pyro. Not sure what the FFI story is in R, maybe something similar could be done there.
Re: Wi Flag (2002)
#73Sandra Powers (who finally figured the problem out) and her husband have been writing and running their own MMO for quite a while now. Check out http://projectgorgon.com/ if you’re interested in something handcrafted, quirky, and high quality.
Also reminded me that I backed Camelot Unchained that's still kicking around in development after all these years.
Re: Wi Flag (2002)
#74Sandra Powers (who finally figured the problem out) and her husband have been writing and running their own MMO for quite a while now. Check out http://projectgorgon.com/ if you’re interested in something handcrafted, quirky, and high quality.
Re: Wi Flag (2002)
#75Earlier quoted context omitted.
You stopped playing because they listened to you and fixed the bug for everyone?
They didn’t say “thank you”, which for many humans is demoralizing.
Re: Wi Flag (2002)
#76The reason it happen is that the random number generator has only a small state (I think 16 bits) a limited number of possible rolls, and some seeds have a really short period, which limits it even more. Also, the seed is stored in your save file. It means that if you have a bad seed, you will always have a seriously broken RNG and the only way to change that is to create a new character. I think in later games, the same terrible RNG is used, but a new seed is picked each time you start the game, so you won't stay in the same "table". And while "charm tables" are the most obvious consequence, if probably has other, less noticeable effects on gameplay.
The weird part is that while it is obviously a bug as it negatively affects the experience of some random players, it is rarely referred to as such. It even persisted between versions. Some people even wrote tools to find out early on which table you are, and techniques to get the table you want, along with a variety of RNG manipulation exploits.
Re: Wi Flag (2002)
#77Earlier quoted context omitted.
You stopped playing because they listened to you and fixed the bug for everyone?
After I (happily!) did their work for them, a simple "thank you", or even an acknowledgment through a closed ticket, would have entirely sufficed to make my day.
Re: Wi Flag (2002)
#78Some of my fondest gaming memories are from this game. There was nothing ever quite like it, and the allegiance system created a special type of community bond that I haven’t seen repeated. At one point I had 10 “vassals” sworn to me, and in our allegiance that came with the expectation that you assist and mentor those under you. Stakes were higher when our allegiance committed to being red dot PKs on a white server…
Re: Wi Flag (2002)
#79Earlier quoted context omitted.
I was waiting for them to say something like "then we take the random variable and multiply it by 3 to correct for this" and then explain some other, more subtle, bug. Looks like we all make stupid mistakes like this sometimes. I made a bug where I tried to get the month number for the next month, so you had to wrap at 12, but I just did "(current_month + 1) % 12" and left it at that, thinking for some reason that mo…
I must be missing something. That is how modulo works. Well as long as January is month 0.
Re: Wi Flag (2002)
#80tl;dr: players get attacked based on monster targeting RNG that's supposed to take an interval [0,num_players], assign players to subintervals that are shorter or longer based on a bunch of factors, and then roll a random number somewhere in that full interval. Whoever's subinterval the number ends in, they get targetted. Instead, the code assigned subintervals and then rolled a number between 0 and 1, instead of 0 a…
> A unit test could have caught this I've always wondered the best way to write tests for "This event should happen x% of the time." Obviously we could re-run the test 100 times and see if it happened close to x%, but not only is that inefficient, how close is "close"? You'll get a bell curve (or similar), and most of the time you'll be close to x but sometimes you'll be legitimately far away from x and your test wil…
I can't remember the exact math I used at the time (I had to crack open a stats textbook), but ultimately it boiled down to generating a bunch of (seed, number of values previously pulled based on that seed, value) tuples, running a linear regression against them, and defining a maximum acceptable R^2 value based on my 10^-30 acceptable probability of a false fail.
When the RNG is not the thing being tested, mocking the RNG to do a sampled sweep through the RNG's output range is typically the correct move.