Pick the amount of random you accept
Moderator: Forum Moderators
Pick the amount of random you accept
UPDATED 01.08.2006
The ideas I posted below resulted in FULLY FUNCTIONAL mod of wesnoth 1.0.2, backward compatibile with 1.0.2.
Project's homepage:
http://saurons-mod.zor.org/
DOWNLOAD WINDOWS EXECUTABLE (replace wesnoth.exe with file from zip archive):
wesnoth.zip (mod version 1.0.5)
DOWNLOAD SOURCE CODE (Just files I modified - you must download the Wesnoth 1.0.2 source code and then replace files in /src with files I supply)
wesnoth_source.zip (mod version 1.0.5)
Mod's thread:
http://www.wesnoth.org/forum/viewtopic.php?t=12337.
_____________________________________________________________
UPDATED 02.08.2006
I think I could experiment with more damage formulas - just for taste of different users - I will add it to the mod if you supply not an idea, but a mathematical formula that takes 1 input number (4-digit, 0 to 9999 integer) maximum 2 non-correletad random input numbers (0 to 99 integers) to generate the damage (floats allowed, to apply must be rounded, floored or ceiled anyway)
We might also "bulk" all unit's attacks in 1 big - and make it hit or not ([ROTFL]) / just joking/ - to allow more complicated formulas (Chi-squared, normal, T-Student) BUT thus we risk situations that both units die in fight (I do not think single blow approach should allow the attacker to avoid defender's counterstrike)- this will force me to completely separate "1.0.2 compliant" code.
Please post your suggestions in this thread: http://www.wesnoth.org/forum/viewtopic.php?t=12337.
_________________________________________________________
what spoils game now (IMHO) - is basic_damage==0
Mabye players should have some option of adjusting the split of dmg between basic and additional, as it is with gold, experience an gpv?
Exactly what I mean is
They would be able to pick deterministic/random and all possibilities in between. I think this would soon prove, what PLAYERS think of randomness. I think this modification is EXTREMELY EASY to implement and I am pretty amused it was not implemented so far taking into consideration the amount of anti-random feedback on forums.
P.S.
Yes, yes, I've read
http://www.wesnoth.org/forum/viewtopic.php?t=1158
----------------------------------------------------------------------
It will influence:
-> EV counting formulas
-> Displayed dmg for unit
-> Attack menus
-> ....
Help does NOT need to be influenced - it has to show dmg before dynamically modified split.
____________________________________________________________________________
EDIT:
Now I see some more problems considering this suggestion -
1. Setting split_ratio to high values (above 0.5-0.6) will spoil effects of terrain-defense. Suggestion then is to multiply non-random damage by some ratio dependant on terrain - BUT never lowering the non-random DMG below 1 due to defensive terrain. This would however work great with higher values of split_ratio. Mabye switching to floating point variables for HP would be a nice solution in this case - all round-up problems brought about by integers would disappear making damage formulas MUCH simpler to implement. Of course this requires tweaking precision of displaying HP left. And it is the whole mess it might bring about.
Discrete values are difficult to handle in this particul;ar situation.[/url]
The ideas I posted below resulted in FULLY FUNCTIONAL mod of wesnoth 1.0.2, backward compatibile with 1.0.2.
Project's homepage:
http://saurons-mod.zor.org/
DOWNLOAD WINDOWS EXECUTABLE (replace wesnoth.exe with file from zip archive):
wesnoth.zip (mod version 1.0.5)
DOWNLOAD SOURCE CODE (Just files I modified - you must download the Wesnoth 1.0.2 source code and then replace files in /src with files I supply)
wesnoth_source.zip (mod version 1.0.5)
Mod's thread:
http://www.wesnoth.org/forum/viewtopic.php?t=12337.
_____________________________________________________________
UPDATED 02.08.2006
I think I could experiment with more damage formulas - just for taste of different users - I will add it to the mod if you supply not an idea, but a mathematical formula that takes 1 input number (4-digit, 0 to 9999 integer) maximum 2 non-correletad random input numbers (0 to 99 integers) to generate the damage (floats allowed, to apply must be rounded, floored or ceiled anyway)
We might also "bulk" all unit's attacks in 1 big - and make it hit or not ([ROTFL]) / just joking/ - to allow more complicated formulas (Chi-squared, normal, T-Student) BUT thus we risk situations that both units die in fight (I do not think single blow approach should allow the attacker to avoid defender's counterstrike)- this will force me to completely separate "1.0.2 compliant" code.
Please post your suggestions in this thread: http://www.wesnoth.org/forum/viewtopic.php?t=12337.
_________________________________________________________
I think REDUCTION of randomness is solution - ELIMINATION would result in BORING GAMESapient wrote:You appear to be setting damage to a boolean value. Maybe you should type out the formula in english or define some of your terms?
Also, if you are wondering why there is so little response: "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."
Code: Select all
int
attacker_basic_dmg=getBasicDMG(attacker,defenfer,attack_type,daytime,terrain),
attacker_additional_dmg=getAdditionalDMG(attacker,defenfer,attack_type,daytime,terrain),
defender_basic_dmg=getBasicDMG(defenfer,attacker,attack_type,daytime,terrain),
defender_additional_dmg=getAdditionalDMG(defenfer,attacker,attack_type,daytime,terrain);
for(int i=0;i<attacker->getAttacks();i++)
{
defender->health-=attacker_basic_dmg+random_0_or_1(distribution_you_picked)*attacker_additional_dmg;
//conditional defender retaliation and other conditional instructions go here
//...
}
//in case defender still has some retaliations to hit - do it now
Mabye players should have some option of adjusting the split of dmg between basic and additional, as it is with gold, experience an gpv?
Exactly what I mean is
Code: Select all
int
attacker_dmg=getDMG(attacker,defenfer,attack_type,daytime,terrain),
defender_dmg=getDMG(defenfer,attacker,attack_type,daytime,terrain);
for(int i=0;i<attacker->getAttacks();i++)
{
defender->health-=1+floor(game->split_ratio*(attacker_dmg-1)) +ceil((1-game->split_ratio)*random_0_or_1(distribution_you_picked)*(attacker_dmg-1));
//conditional defender retaliation and other conditional instructions go here
//...
}
//in case defender still has some retaliations to hit - do it now
They would be able to pick deterministic/random and all possibilities in between. I think this would soon prove, what PLAYERS think of randomness. I think this modification is EXTREMELY EASY to implement and I am pretty amused it was not implemented so far taking into consideration the amount of anti-random feedback on forums.
P.S.
Yes, yes, I've read
http://www.wesnoth.org/forum/viewtopic.php?t=1158
----------------------------------------------------------------------
It will influence:
-> EV counting formulas
-> Displayed dmg for unit
-> Attack menus
-> ....
Help does NOT need to be influenced - it has to show dmg before dynamically modified split.
____________________________________________________________________________
EDIT:
Now I see some more problems considering this suggestion -
1. Setting split_ratio to high values (above 0.5-0.6) will spoil effects of terrain-defense. Suggestion then is to multiply non-random damage by some ratio dependant on terrain - BUT never lowering the non-random DMG below 1 due to defensive terrain. This would however work great with higher values of split_ratio. Mabye switching to floating point variables for HP would be a nice solution in this case - all round-up problems brought about by integers would disappear making damage formulas MUCH simpler to implement. Of course this requires tweaking precision of displaying HP left. And it is the whole mess it might bring about.
Discrete values are difficult to handle in this particul;ar situation.[/url]
Last edited by Sauron on September 1st, 2006, 4:23 pm, edited 15 times in total.
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
I have different idea: game should depend on luck, but luck should be shared equally among all players
Its aint KISS, but...
Its aint KISS, but...
User:Kshinji
Probably there's no point for me posting here, but i'll raise my PC to 1337 before leaving again ;P -- just kidding.
Probably there's no point for me posting here, but i'll raise my PC to 1337 before leaving again ;P -- just kidding.
it makes less sense than reducing the random part of dmg. Result would be - you get bad stats - you charge like mad awaiting game to "give you back" your "lost" luck.kshinji wrote:I have different idea: game should depend on luck, but luck should be shared equally among all players
Its aint KISS, but...
Last edited by Sauron on April 18th, 2006, 11:51 am, edited 1 time in total.
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
The code doesn´t say anything to me, because I don´t know c++. So please consider if I´m on the wrong place.
What is if the attacker is an iron mauler (20-2, I think) and the defender is an elusivefoot in a castle? With the less random, does he at least one hit, even if he is likely to miss? Or am I wrong?
What is if the attacker is an iron mauler (20-2, I think) and the defender is an elusivefoot in a castle? With the less random, does he at least one hit, even if he is likely to miss? Or am I wrong?
First read, then think. Read again, think again. And then post!
if you set split_ratio to 0.1 it will do 2 dmg for sure plus 18 if is lucky - all this each hittoms wrote:The code doesn´t say anything to me, because I don´t know c++. So please consider if I´m on the wrong place.
What is if the attacker is an iron mauler (20-2, I think) and the defender is an elusivefoot in a castle? With the less random, does he at least one hit, even if he is likely to miss? Or am I wrong?
If we now take into consideration terrain defense and floating point suggestion:
0.4/*for defense factor is 60%*/ * 2 + 18 if lucky ==
0.8+18 if lucky - all this EACH HIT
Last edited by Sauron on April 18th, 2006, 2:01 pm, edited 2 times in total.
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
To some extent I achieved this through WML in Wesnotn 1.1.2 only - see this thread:toms wrote:Thank you, now I understand. Your idea would prevent much anger on not-working killing blows...
http://www.wesnoth.org/forum/viewtopic.php?t=10786
In case we stick to integer-based damage and hitpoints formulas: the non- random part of damage should be a bit adjusted for weak units, so that they do not end up dealing 0 non-random. So some splits would empower low-damage units. Still - I am ready to pay this price.
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Re: Pick the amount of random you accept
I don't want a reduction of randomness, I want a better distribution of possible damage. With a unit that can deal 10 damage per strike, I like the idea of being able to deal anywhere between 0 and 10 damage each strike, instead only 0 and 10. But I still think it should be possible to deal 0 or 10 damage - just less likely than it is currently, with the "hit or miss" system. The problem with setting minimum damage like you have done is that in the long run you get units that deal more damage on average (since 10 is still possible, but 0 is not), which I think would have more than a small effect on the game. I want a system that deals the SAME amount of damage on average, but makes 0 and 10 damage less likely, and 5 damage (assuming a 50% chance to hit) most likely. Statistically speaking, this would result in a damage distribution curve that didn't have such fat tails. Terrain is accounted for by centering a normal damage distribution around the value "max damage" * "chance to hit". So, rather than choosing how much randomness I want, I would rather be able to choose to have damage distributed normally (or even, according to a standard deviation of my choice!). I'm sure someone has thought of normal damage distribution before, so I'm going to go dig through the archives now.Sauron wrote: I think REDUCTION of randomness is solution - ELIMINATION would result in BORING GAME
As a side note, "side effects" like poision and slow could still be done on a "hit or miss" basis, and you could still have certain units (e.g. trolls and horsemen) deal damage on a hit or miss basis as well, if that unit's attack is seen as a more "reckless" attack.
I like the idea of a distribution centered around the max damage * chance to hit, but maybe the distribution should incorporate the terrain from the perspective of the attacker as well?
What I mean is, say that a an elvish fighter in forest is attacking a merman in shallow water. The elvish fighter defends at 30% in the shallow water, the merman 60%
A weighted average could be used, such as the following:
Total % to account for: 30% Attacker + (100% - 60%) Defender = 70%
([(30/70) * 30%] + [(40/70) * 40%] * 40%) = 35.70%
So 4 damage x 35.70% = 1.430
Using the defender's terrain only, the damage would be centered at 1.6, but this doesn't seem right - a merman and an elf will share the same percent of damage as the base damage, but the elf is at a tremendous disadvantage.
What about further shaping of the distribution, based upon terrain?
For example, in the example above, the distribution is centered at 1.430. The minimum is 0, and the maximum is 4. So there is a range of 1.430 on the low end, and 2.570 on the high end. If the 35.70% value is used to shape the distrubibution, maybe this can be applied to the 1.430 to produce a standard deviation (0.50, in this case)
So a damage of 0 would be 2.8 standard deviations from the mean, and 4 damage would be 5.14 standard deviations
What I mean is, say that a an elvish fighter in forest is attacking a merman in shallow water. The elvish fighter defends at 30% in the shallow water, the merman 60%
A weighted average could be used, such as the following:
Total % to account for: 30% Attacker + (100% - 60%) Defender = 70%
([(30/70) * 30%] + [(40/70) * 40%] * 40%) = 35.70%
So 4 damage x 35.70% = 1.430
Using the defender's terrain only, the damage would be centered at 1.6, but this doesn't seem right - a merman and an elf will share the same percent of damage as the base damage, but the elf is at a tremendous disadvantage.
What about further shaping of the distribution, based upon terrain?
For example, in the example above, the distribution is centered at 1.430. The minimum is 0, and the maximum is 4. So there is a range of 1.430 on the low end, and 2.570 on the high end. If the 35.70% value is used to shape the distrubibution, maybe this can be applied to the 1.430 to produce a standard deviation (0.50, in this case)
So a damage of 0 would be 2.8 standard deviations from the mean, and 4 damage would be 5.14 standard deviations
Wesnoth 1.0.3 MOD "pick yourself non-random part of dmg
The ideas I posted above resulted in FULLY FUNCTIONAL mod of wesnoth 1.0.2, backward compatibile with 1.0.2.
I have done a lot of good coder's work, for details see this thread:
http://www.wesnoth.org/forum/viewtopic.php?t=12337
and my project's homepage:
http://saurons-mod.zor.org/
I have done a lot of good coder's work, for details see this thread:
http://www.wesnoth.org/forum/viewtopic.php?t=12337
and my project's homepage:
http://saurons-mod.zor.org/
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
-
- Inactive Developer
- Posts: 521
- Joined: October 27th, 2005, 5:30 am
- Location: St. Paul, Minnesota, USA, Earth
After a week of extreme luck games that have me contemplating leaving wesnoth (I would say 80% of my last 20 games were decided by luck), I am turning to the dark side on this issue.
Just in last 24 hours I start a game 34/106 141/91 after 1 turn of battle, and game is over, literally a position of no recovery vs a solid player.
Also, lost a game where I had 4 enemy gryphons surrounded by an entire army, lost 4 units and killed 1 gryphon and when odds were 3 dead gryphons and one loss for me. That game was thus over on maybe turn 8?. I also won a game with ISAF that I basically felt embarassed about, as his attacks basically did no dmg and he lost everything on maybe turn 10 or so.
I just played a game with Tonepoet where I went 164/276 and he went 256/276. Two turns of bad luck turned what was a very interesting and close exciting battle into a compete rout. We had almost exactly the same units, mine just decided to go about 20/120 over the course of 2 turns.
I think these are really the two great tradgedies here.
1. Really good and interesting games/situations get completely ruined.
2. Large amounts of time is spent on games which quickly become worhtless (30mins into game you miss your first 14 attacks).
3. Winning or losing in this manner just is not FUN, which is presumably what games are all about.
Anyway not saying this mod is the solution, but wesnoth is REALLY REALLY trying my patience.
I cannot think of a single other strategy game that is good where you can wildly outplay your opponent and get completely obliterated.
Maybe I should start making saves for a luck log, and try to determine exactly what percentage of high quality games are determined by luck.
Myth and I have been talking about how 1v1s between us are basically pointless as whoever the RNG favors wins for example. Its too bad cause myth and I should have fun in 1v1s you would think, but it basically is just sit there and grind until the RNG gives someone a huge break.
anyway just pissed
-bec
Just in last 24 hours I start a game 34/106 141/91 after 1 turn of battle, and game is over, literally a position of no recovery vs a solid player.
Also, lost a game where I had 4 enemy gryphons surrounded by an entire army, lost 4 units and killed 1 gryphon and when odds were 3 dead gryphons and one loss for me. That game was thus over on maybe turn 8?. I also won a game with ISAF that I basically felt embarassed about, as his attacks basically did no dmg and he lost everything on maybe turn 10 or so.
I just played a game with Tonepoet where I went 164/276 and he went 256/276. Two turns of bad luck turned what was a very interesting and close exciting battle into a compete rout. We had almost exactly the same units, mine just decided to go about 20/120 over the course of 2 turns.
I think these are really the two great tradgedies here.
1. Really good and interesting games/situations get completely ruined.
2. Large amounts of time is spent on games which quickly become worhtless (30mins into game you miss your first 14 attacks).
3. Winning or losing in this manner just is not FUN, which is presumably what games are all about.
Anyway not saying this mod is the solution, but wesnoth is REALLY REALLY trying my patience.
I cannot think of a single other strategy game that is good where you can wildly outplay your opponent and get completely obliterated.
Maybe I should start making saves for a luck log, and try to determine exactly what percentage of high quality games are determined by luck.
Myth and I have been talking about how 1v1s between us are basically pointless as whoever the RNG favors wins for example. Its too bad cause myth and I should have fun in 1v1s you would think, but it basically is just sit there and grind until the RNG gives someone a huge break.
anyway just pissed
-bec
There are three roads to ruin: by gambling, which is the quickest; through women, which is the most pleasurable; and through taking the advice of experts, which is the most certain. -de Gaulle
well, there is one way to avoid losing when you are near to win. Stay defensive for 500 turns, and finish opponent having an ultimate army.
Great idea, huh?
I worship the darkside.
Great idea, huh?
I worship the darkside.
User:Kshinji
Probably there's no point for me posting here, but i'll raise my PC to 1337 before leaving again ;P -- just kidding.
Probably there's no point for me posting here, but i'll raise my PC to 1337 before leaving again ;P -- just kidding.