Deterministic mode

Brainstorm ideas of possible additions to the game. Read this before posting!

Moderator: Forum Moderators

Forum rules
Before posting a new idea, you must read the following:
ImLittleJon
Posts: 8
Joined: July 2nd, 2004, 4:42 pm

Deterministic mode

Post by ImLittleJon »

I was struck by this quote in the sticky thread:
There should be a 'deterministic', 'non random' mode which one can play in
Background: some people, apparently frustrated at losing their units in random battles, feel that there should be a non-random way of playing the game.
Result: the developers feel that randomness is a large part of the game, and that taking the randomness out of the game would be somewhat akin to taking the randomness out of most card games.
I have definitely been frustrated by losing a unit that I "shouldn't" have or not killing a unit that I "should" have, based on the probabilities. And I would like to propose a modification to the engine that has the virtue of being extremely simple (and transparent to the user). Actually, it's kind of complicated to explain, but it's very simple to implement. Anyway, it's called sampling without replacement. This means that the odds of success on a each hit are not completely independent. Let me give a concrete example. Imagine that your unit has 4 attacks, at 60% probability. In my scheme, what the computer would do is multiply the 4 by some constant X, which I will assign to be 5.0 for my example, giving a total of 20.0. Then it multiplies that by the 60% probability, giving 12.0. It then generates a random number between 0.0 and 20.0. If that number is 12.0 or less, you hit. If not, you miss. For the next attack, it subtracts 1.0 from the total, giving 19.0. If you hit on the first attack, it subtracts 1.0 from the 12.0, leaving 11.0 (11.0/19.0 = 57.9%). If you missed on the first attack, it leaves the 12.0 alone (12.0/19.0 = 63.2%). And so on. So if you miss your first three attacks, you will have 12.0/17.0 = 70.6% chance to hit on your last one, thus making it much less likely to have an extreme outcome. The constant X can be fiddled with to provide more or less of an effect. As it approaches infinity, this method becomes identical to sampling with replacement (i.e. 60% every time, no effect of one hit on the next). As it approaches 1, it becomes more deterministic. So the level of randomness can be tuned to the developers' preference.

Of course, since this is transparent to the user, it's possible that it already works this way. In which case, I say lower X!
Dave
Founding Developer
Posts: 7071
Joined: August 17th, 2003, 5:07 am
Location: Seattle
Contact:

Re: Deterministic mode

Post by Dave »

ImLittleJon wrote: I have definitely been frustrated by losing a unit that I "shouldn't" have or not killing a unit that I "should" have, based on the probabilities.
I'm afraid I don't understand. Based on probability, the only units you 'should' lose are units you have 100% of losing, and the only units you 'shouldn't' lose are ones that you have 0% of losing. For other probabilities, there is always a chance you will or won't lose them.

And since you acknowledge that this can go either way (which is much more than people, who seem to think that the RNG is rigged against them, are willing to acknowledge), it is shown that the game really is pseudo-random: sometimes you lose a unit in an unlikely fashion, and sometimes a unit survives in an unlikely fashion. This is the very nature of randomness.

David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
ImLittleJon
Posts: 8
Joined: July 2nd, 2004, 4:42 pm

Re: Deterministic mode

Post by ImLittleJon »

Dave wrote: I'm afraid I don't understand. Based on probability, the only units you 'should' lose are units you have 100% of losing, and the only units you 'shouldn't' lose are ones that you have 0% of losing. For other probabilities, there is always a chance you will or won't lose them.
"Should" being defined by the expectation value. If you toss a coin 10 times, you "should" get 5 heads. That's the peak of the bell curve.
Dave wrote: And since you acknowledge that this can go either way (which is much more than people, who seem to think that the RNG is rigged against them, are willing to acknowledge), it is shown that the game really is pseudo-random: sometimes you lose a unit in an unlikely fashion, and sometimes a unit survives in an unlikely fashion. This is the very nature of randomness.
That's the beauty of my scheme. (It's not really mine...I didn't come up with it originally. But it's shorter than saying "Sampling without replacement" all the time...) It keeps the randomness, but just mitigates it slightly. And how much mitigation is tuneable through that constant X. Plus, it'd probably take less than 10 minutes to code. :D
User avatar
Jetrel
Posts: 7242
Joined: February 23rd, 2004, 3:36 am
Location: Midwest US

Post by Jetrel »

Frankly, I rather like this idea. I think that someone should try experimenting with this. One potential application of this would be in making the easier mode a bit easier, perhaps.

But I really gotta say, the whole "Absolutely random" business is a bit overdone, and results in some situations in game that seem silly. "Sanding off" the extreme edges of combat results would go a long way to improving the "feel" of playing wesnoth.

Besides, I had thought that you yourself had at least considered a system in which extreme combat results would be negated (i.e. no "all five attacks miss" business when the unit has a 70% chance to hit). People mentally expect a bell curve when they see percentages, probably from experience in the american school system. They don't expect a "linear" random distribution.

I'm still wishing that each race could have a kind of tank/hoplite type of unit, that can form a front line on open plain and hold the damn thing, at least for a turn against all but a few kinds of opposition. All it would need is a new movetype for level 2, and likewise-but-more-so for level 3 devoted-to-melee units.

I mean, the humans do have one in their heavy infantry, and the undead have one in their skeleton warriors.

The beauty of my suggestion - simply giving melee units a bit of blade, and a smaller amount of impact resistance, is that the line could be broken by exactly the things that should break it - charging knights, arrows, and magic. Right now, essentially a similar thing, though with weakness to pierce is being done to knights, which is ridiculous because right now, I have to form my front lines, if I have no defensible terrain to approach through, with knights, which are the last such units a person would use in the real world. Knights were great for offensive lines, but terrible for defensive ones.

The alternative would be some sort of parry ability, making non-magic blows do half damage some of the time. This would further differentiate the Avenger from the Champion. Perhaps the avenger could have a weak version of this, but the Champion should excel in this. Likewise the Orc melee guys need some skill in this department. They need to be resilient in melee, besides being able to inflict a lot of damage.
User avatar
Elvish_Pillager
Posts: 8137
Joined: May 28th, 2004, 10:21 am
Location: Everywhere you think, nowhere you can possibly imagine.
Contact:

Post by Elvish_Pillager »

I don't want any random numbers to obey the so-called Law of Averages. No matter how justified they may be. Face it, you CAN get lucky.
It's all fun and games until someone loses a lawsuit. Oh, and by the way, sending me private messages won't work. :/ If you must contact me, there's an e-mail address listed on the website in my profile.
Dacyn
Posts: 1855
Joined: May 1st, 2004, 9:34 am
Location: Texas

Post by Dacyn »

Jetryl wrote:People mentally expect a bell curve when they see percentages, probably from experience in the american school system. They don't expect a "linear" random distribution.
I don't understand what you mean; the current system does provide a bell curve IIRC; if we wanted a closer bell curve we would have to give each unit less damage and more strikes. This causes me to wonder why exactly the developers originally chose for most units to have <6 strikes; was it because of the randomness? just because it makes the combats take shorter?
Dave
Founding Developer
Posts: 7071
Joined: August 17th, 2003, 5:07 am
Location: Seattle
Contact:

Post by Dave »

Jetryl wrote: I'm still wishing that each race could have a kind of tank/hoplite type of unit, that can form a front line on open plain and hold the damn thing, at least for a turn against all but a few kinds of opposition. All it would need is a new movetype for level 2, and likewise-but-more-so for level 3 devoted-to-melee units.

I mean, the humans do have one in their heavy infantry, and the undead have one in their skeleton warriors.
The Knalgans have one in their Dwarvish Fighter, and the Elves have one in their Wose. Trolls can be pretty tough to kill quickly too, especially considering the price.
Dacyn wrote: I don't understand what you mean; the current system does provide a bell curve IIRC; if we wanted a closer bell curve we would have to give each unit less damage and more strikes. This causes me to wonder why exactly the developers originally chose for most units to have <6 strikes; was it because of the randomness? just because it makes the combats take shorter?
Yes, if we wanted to make the game 'less random' we could just increase everyone's attacks and reduce their damage.

However imo the current number of attacks works well.

David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
JusTiCe8
Posts: 51
Joined: June 11th, 2004, 8:57 pm
Contact:

Post by JusTiCe8 »

Sorry for disturbing you, why not add configurable (by prefs and in WML, by default it could be the "standard" system) fight engine to the game. So if someone which deterministic mode, ok he/she get it and he/she will be happy :wink: , and if another one want classical game, just set the propoer option and he/she wil be happy too :D.

So there could be a
"wargame fight resolution" : full deterministic (ie a grand knight will always kill little unit)
classical : as it is
and so on (another one could used unit experience and other traits or leadership, and give a bonus)...

So, noone will waste his/hers time to talk about fight resolution anymore.
Dacyn
Posts: 1855
Joined: May 1st, 2004, 9:34 am
Location: Texas

Post by Dacyn »

er.. adding more options is not the solution to everything.
I don't think the rules of a game should ever be preference-determined. Preferences are supposed to determine only UI aspects of the game.
Also, adding a 'non-random' option would imply that the Wesnoth development thinks that playing non-randomly is a reasonable way to play Wesnoth.
Dave
Founding Developer
Posts: 7071
Joined: August 17th, 2003, 5:07 am
Location: Seattle
Contact:

Post by Dave »

Dacyn wrote:er.. adding more options is not the solution to everything.
I don't think the rules of a game should ever be preference-determined. Preferences are supposed to determine only UI aspects of the game.
I concur.

If we start down this murky road, we will end up with a game where every single rule that is the slightest bit controversial is optional.

I think my signature applies to end user options more than almost anything else. End user options show that designers could not decide the best way to do things. The less options there are, the better.

David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
ImLittleJon
Posts: 8
Joined: July 2nd, 2004, 4:42 pm

Post by ImLittleJon »

Jetryl wrote:People mentally expect a bell curve when they see percentages, probably from experience in the american school system. They don't expect a "linear" random distribution.
The current system is exactly a classic bell curve. If you take my example of 4 swings at 60% probability and run it 1000 times, you should get 26 runs with 0 hits, 154 with 1 hit, 345 with 2 hits, 345 with 3 hits, and 130 with 4 hits (assuming my math is correct).

Calculating the probabilities under my proposal is a lot hairier (and depends on the value you choose for X) but it basically just makes a steeper, narrower bell curve. So the numbers for 0 and 4 hits would be reduced, while the numbers for 2 and 3 hits would increase (not sure about 1 hit).

Some randomness is good, but it's very frustrating when you come up empty in a situation where you are heavily favored. I think it's very reasonable to weight the bell curve a little more towards the expectation value. It's a perfectly valid statistical technique (I learned it from a PhD in statistics) and it's easy to implement. What's the downside?
User avatar
Elvish_Pillager
Posts: 8137
Joined: May 28th, 2004, 10:21 am
Location: Everywhere you think, nowhere you can possibly imagine.
Contact:

Post by Elvish_Pillager »

ImLittleJon wrote:What's the downside?
That it's completely ridiculous nonsense. It's especially aggravating when you get cheated out of a lucky swing.
It's all fun and games until someone loses a lawsuit. Oh, and by the way, sending me private messages won't work. :/ If you must contact me, there's an e-mail address listed on the website in my profile.
Dacyn
Posts: 1855
Joined: May 1st, 2004, 9:34 am
Location: Texas

Post by Dacyn »

wait, this algorithm doesn't even always work!
Suppose X=.5. Then the total is 2.0, and the part is 1.2. If the player misses, then the total is decreased by 1, leaving a probability of 1.2/1.0=120%! What's going on?
Dave
Founding Developer
Posts: 7071
Joined: August 17th, 2003, 5:07 am
Location: Seattle
Contact:

Post by Dave »

ImLittleJon wrote:What's the downside?
The downside is that it makes 4 attacks each having 60% to hit, not really act like 4 attacks, each with 60% chance to hit.

David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
zinder

Post by zinder »

There may be use for an ability which eliminites the randomness, for example set damage to hit chance and let it always hit(10-4 on 60% is 6-4 with 100%)
But i dont think messing the statistics is a good idea. Especially when the charts show one probability, but you actually get another probability.
Post Reply