Live data from Hacker News

Wi Flag (2002)

asheron.fandom.com

71–80 of 217 posts

Re: Wi Flag (2002)

#71
post #44

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?

[deleted]

Re: Wi Flag (2002)

#72
It seems quite uncommon to write the statistical unit test for this sort of algorithm; I suppose most languages lacking statistical programming toolchain makes it less appealing.

I 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)

#73
post #47

Sandra 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.

Wow, I had definitely forgotten that was being worked on still, it's been a long time since I've played it.

Also reminded me that I backed Camelot Unchained that's still kicking around in development after all these years.

Re: Wi Flag (2002)

#74
post #47

Sandra 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.

I keep forgetting about this game and meaning to go back to it. Definitely the "weirdest" (in a good way!) MMO out there.

Re: Wi Flag (2002)

#75

Earlier 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.

And at that point he'd played the game a lot, so he probably would have quit playing anyway. Were he like me, the fun at that point was the statistics portion anyway, and he'd already found and fixed that, so it was no longer fun either.

Re: Wi Flag (2002)

#76
It reminds me of the "charm tables" of some Monster Hunter games. Charms are equipment with randomly selected skills. When you create a character, you are assigned a random "table" and all charms you may get are selected from that table. There are 17 of them, 12 of them are normal with some slightly better suited to some play styles but it is a really minor thing, the remaining 5 are called "cursed tables", they are much smaller and you will never be able to get the best charms. It is not game breaking, but it is annoying if you want a highly optimized build.

The 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)

#77
post #69

Earlier 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.

Back when Stack Overflow was in beta, the original design was really rough, so I mocked up a suggested new design for the main page via Stylish and submitted it to them. Within a day or two, they adopted something almost identical but never acknowledged me. One could argue it was a pretty basic idea (I only spent around 15 minutes on it myself) and they probably arrived there independently, but I still like to believe that I influenced a major site's design.

Re: Wi Flag (2002)

#78

Some 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…

I also loved this game it was my first MMO, and in many ways was so ahead of its time. I still dream about it occasionally.

Re: Wi Flag (2002)

#79
post #48

Earlier 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.

It seems that the issue is that `January === 1`; so when you get to December (i.e. `12`) it rolls over to 0 rather than remaining as 12.

Re: Wi Flag (2002)

#80
post #11

tl;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'm not a fan of the set-seed solution. In the past, when I've tested PRNG implementations (Erlang used to not have the ability to have multiple, independently seeded RNGs), my approach was to decide on an acceptable rate of false negatives, and design my test around that. I figured I'd run the test suite no more than 10,000 times, and I wanted a 1/1,000,000 chance of ever seeing a false negative.

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.

Post reply on HN