As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Test games played

Part 8 :
https://www.youtube.com/watch?v=cAPsTpKA...e=youtu.be
Reply

About your note in the video: "If anyone knows how to test an RNG or even how to define what's a good RNG..."

I know a bit about it. Basically there are two problems you can have: 1) bad number generation or 2) unsatisfying feeling. I don't know much about 1) because it's a more technical problem; basically some methods for generating numbers are not so great. The only way I'd know to test that would be to get the game to spit out a bunch of randomly generated numbers and then check the averages.

About 2), though, it's a quite common problem and there are two ways you can approach it...

Method A) adds probability on each successive roll until the roll succeeds. This is a method used most famously by World of Warcraft to keep its players from going insane while trying to collect rare treasure or quest items. Let's say you're searching for McGuffin X and there's a 5% chance of it dropping each time you kill Boss X. The first time you kill Boss X, the probability is 5%; predictably, you don't get the item. Next time you fight him it's 7.5%, then 10%, then 12.5%.. you get the idea. The previous value is saved and added to.

Method B) is to lie to the player about the probabilities. This is most famously used in Fire Emblem, but it's actually used in a lot of games. The very basic idea is that the game designer makes probabilities feel like the human brain thinks they should feel: for example, when the game says "You have a 70% chance to hit", humans will typically read "OK I'm almost definitely going to hit"... which is not the case. They'll also remember the failures more than the successes, so after multiple fails at the 70% chance they'll tend to think that there's a bug or that the game is secretly tilted against them. So instead, if it says 70%, you give them an 80% chance to hit. This tilts the other way too; if it says there's a 10% chance to hit, you actually give a 5% chance. Fire Emblem's method of achieving this is to actually generate two random numbers and take the average. You can read about that here: https://serenesforest.net/general/true-hit/

What either method boils down to is this: humans don't have a good innate grasp of how probability works. In particular the idea of runs is tough for us: if the average person flips heads 10 times in a row, they'll either think God loves them or hates them (depending on whether they actually wanted tails). When applied to a game, that becomes a belief that the game is out to screw them over. So to make players feel good -- which is the point of games, right? -- designers find ways to fudge the numbers.
Reply

Well, we can't do that. Different effective probabilities would alter game balance. You also can't lie to a player in a system where their hit chance is basically the sum the modifiers, all of which known. I mean, sure you can lie but even an elementary school kid would notice 30%+10%+10% isn't 80% and complain.
This sort of approach is quite inappropriate and part of the "hiding the true game mechanics" thing I so hate in games. How the hell am I supposed to know which stat to invest in if I don't know the formulas and REAL probabilities? (sure, the actual RNG rolls might mess with our brain but the probability and formulas are the ones you use to decide whether to invest in STR, SPD or DEX for example.)
This is bad enough in an RPG, but outright unacceptable in a strategy, especially 4X game where winning or losing is decided by optimizing your numbers.

So yeah, I'll need information about 1), not 2).

So basically, I need the average of the results to be correct, and all the outcomes to be roughly even in count? How even? A result coming up 0.0001% of the time on a D100 is obviously wrong, as is 0.1% but is 0.005% ok? But this is just one test for one random seed used. Does it need to be perfect for all seeds separately, or only on average? How much is acceptable for a deviation on a particular seed? etc.
Then that's only for a D100, do I also run the same for D99, D98, etc since we obviously want all rolls to be perfect, not just D100s. (At which point we could probably run the tests for years, so we need some better definition)
I do have the code used by the game transformed into a normal programming language but I'm not sure what tests to run on in and what's a good result. I generated a bunch of numbers and the results seemed about right (like, each number appeared 70-130 times out of 10000) but that was one seed and one type of roll (D100) only.

Then there is the fact the game uses rolls for different purposes, in a specific order under typical conditions. So the results would need to also be good if we take out every 2nd, 3rd, etc rolls, as you roll once for your Black sleep spell, then next roll goes for something else before you get your turn again to cast it.
Reply

I've never gotten the sense that anything is wrong with the rolls in MoM. It certainly feels wrong sometimes, but that's kinda the point of what game designers do to fudge probabilities -- you're not nearly as good at detecting correct and incorrect probabilities as you think you are. "You" being a general / vague descriptor, of course some people are much better than others. Anyway it doesn't seem either system would be suitable for modding MoM, just offering up what I know about it.

One idea that comes to mind -- a lot of rolls are applied against resistance, and a lot of what feels "wrong" is when your enemy waltzes into battle and Possesses your resistance 11 unit on turn 1, or when you fail to Black Sleep that resistance 8 monster ten times in a row. What if resistance roll spells were nerfed a little bit + had the effect of removing 1+ resistance per cast for the duration of the combat? So that first Possession spell would probably fail the first time but would have more chance the second. (Or more realistically, you'd go for a couple Black Sleep then try your higher cost Possess.) It also makes a lot of sense, roleplay-wise, that having an all-powerful wizard batter at your mind for minutes on end would have some effect.
Reply

That sort of system pretty much means anything can be killed by save or die spells, given enough time. Whereas the current system is specifically balanced around the idea of specific very rare units being immune to specific "-X to save" spells. (Storing the penalty would also have technical difficulties, we don't have a byte for that on the unit, the existing "resistance penalty" byte is a recalculated type, not a permanent one that carries over to the next time the unit data is refreshed.)
Reply

Ah, ok. Well, I doubt anything is wrong with the RNG generator. I think some probability fudging would work well in MoM but it's also fine without it.
Reply

Fortunately, it seems moving the calls to the level procedures was successful. Now let's hope it's also stable - guess finishing my test game should be enough to tell. Moving far calls to new segments is always risky and this one looks especially such.
(also, I decided to be lazy about it, so every unit after every battle will refresh their experience levels. It shouldn't make a difference as units not fighting won't be gaining exp anyway.)
Reply

Part 9 : https://www.youtube.com/watch?v=vSP9rljk...e=youtu.be
Reply

New lunatic walkthrough. Still 5.43 but tried to not rely on regen as it is going to be nerfed soon. 
upd. yea, some copyright issuses..link will work in a few houurs i guess
Reply

Youtube blocked your video, try again with disabled music?
(or, there used to be a "remove audio track" button somewhere last time I had this problem... nowadays I just avoid having any audio in the first place...)
Reply



Forum Jump: