Back to the Korax Forum Archives


Forum

KA Balance

Tue, 23 Jun 2009 12:14:10

Crimson Wizard

I remember there was a question raised about KA weapons balance. I wonder how we are going to solve this? I know Fighter being too powerful with his 2nd Axe weapon, because he may kill any other player with 1-2 strikes even when he's on 1st level, and also Cleric's Firestorm may be found a superweapon, it is very fast with high range and kills with 1-2 hits as well. However, I do not want quick decisions here, for they could spoil the game easily. How a weapon balance was determined earlier? This was at first decided before I joined the team. Obviously, a weapon attack type should be taken into account, e.g. missile weapons perhaps shouldn't be more powerful than melee ones of the same level; fast-shooting weapons should be less powerfull than slow-shooting; such properties as easy aiming and large area of effect should be taken into account as well. Player's abilities and tactics are of some importance here too. Maybe we should decide, for instance, that Fighter must be encouraged to use ranged weapons less often by lowering their strength relative to his melee weapons, or making them drain more mana. And so on. Then, I don't know how you decided this originally, I guess that each class should have its strengths and weaknesses, e.g. being good at melee weapons and weak at missile ones, and such. I am actually surprised to notice that there's NO difference in how stats grow between player classes. <!-- s:-s --><img src="{SMILIES_PATH}/eusa_eh.gif" alt=":-s" title="Eh?" /><!-- s:-s --> Whether it is a programmer mistake or what, but currently: 1. Each class has each stat initial value = 10 (Heresiarch has 15); 2. Each class increases each stat using same formula on levelup: stat += stat * 25 / 100. This makes no sense at all, in my opinion, making Fighter and Mage both having same strength and intellect on each level. Ofcourse, they use different kind of weapons - Mage uses ranged ones that require intellect while Fighter has mostly melee ones, that require strength, but ...
Tue, 23 Jun 2009 15:01:18

RambOrc

The sameness of classes in attributes is by design, without it balancing weapons would be even more hell. That's why their size (and thus the target to shoot at) is also the same size. The idea behind weapons is that the same # (e.g. 3rd weapon) of every class should have about the same effective power. This means that a melee weapon does more damage since you first need to run up to the other player, a faster weapon's projectiles do less damage than a slower one's etc. That's why puff weapons (marine and heretic) have the lowes damage, since you can't dodge those shots like a projectile and the foe can be at any distance. This sounded good in theory but some of the points didn't work out at all, like the marine's shotgun which is a puff weapon so has greatly reduced damage to compensate for the double advantages: the shotgun fires several puffs at once, and so the damage of an individual puff is very low. On the other hand, outside of melee range chances are high that the majority of the puffs will miss the target, making this weapon well-nigh useless against bots and skilled enemy players (still good against slow-moving monsters in some game modes). For a more advanced balancing system, a weight matrix could be created. Every attribute of a weapon could contribute to the final score as a modifier, thus determining the effective damage range the weapon should have to be on par with other weapons of the same level.
Tue, 23 Jun 2009 15:33:54

Firebrand

I agree with Ramborc, every weapon # should do similar damage, we could create a weight matrix for weapon damage, so that every weapon's damage will be calculated using that matrix and be somewhat balanced. When we began implementing the player classes we were using similar attributes to those of KMOD, unfortunately, the game was a total mess... <!-- s:( --><img src="{SMILIES_PATH}/orc10.gif" alt=":(" title="Sad" /><!-- s:( --> That's when we decided it would be better to use the same attributes for every class and avoid classes to have weaknesses and strengths the most (obviously is VERY difficult to balance the weapons, since much testing is needed and we are to few team members <!-- s:P --><img src="{SMILIES_PATH}/orc4.gif" alt=":P" title="Razz" /><!-- s:P -->), that's how we managed to make the weapon system that is now active on KA <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->. As you can see it's not the best, but it's definitely better than the first incarnations of the game <!-- s:D --><img src="{SMILIES_PATH}/orc6.gif" alt=":D" title="Very Happy" /><!-- s:D -->.
Tue, 23 Jun 2009 15:48:14

Crimson Wizard

Well... sounds complicated, but why not? So, weapon properties that have meaning here are: - Weapon level - Fire repeat frequency - Maximal fire distance (we have differences in melee weapon ranges, also Heretic's 'flamethrower' has limited range) - Speed of missile (if applicable) - Number of missiles - Self-guidance ability - Size of missile / Area of attack - Explosion radius (if applicable) and delay before explosion (actual for 'dragon breath') - Post effects (poisoning/darkness) length The question is how we define "weights" for each property.. hehe... <!-- s:-k --><img src="{SMILIES_PATH}/eusa_think.gif" alt=":-k" title="Think" /><!-- s:-k --> A bit offtopic, I was once thinking about adding some "special move" ability to each class which drains mana for activation. Like Fighter can increase its speed for a short period, Cleric heal himself, Mage teleport for a small distance, Witchaven Hero charges his shield to become invulnerable for few seconds etc. Nice way to screw things in game even more <!-- s:D --><img src="{SMILIES_PATH}/orc6.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Wed, 24 Jun 2009 17:11:05

Firebrand

How about using a similar way of weight as the bot's skills for each of the things CW described? 0 worst - 4 extra good.
Wed, 24 Jun 2009 18:43:46

Crimson Wizard

[quote="Firebrand":2oy0lomf]How about using a similar way of weight as the bot's skills for each of the things CW described? 0 worst - 4 extra good. This does not make much sense. We speak here not of conventional value that has meaning only on its own, as bot skills; we speak about values that are relative to each other. Their relation should be taken into account; some of these weapon properties are more important than others. I think that a coefficients should be determined for each of the parameter in list; the weight of each property can be produced multiplying that property's value by corresponding coefficient.
Tue, 30 Jun 2009 09:20:56

Crimson Wizard

Another thing I forgot is PI Damage. Currently it is almost useless, because most weapons already do enough damage to kill opponent in 1-3 hits (except maybe Marine weapons like pistol, chaingun or shotgun). We need to lower overall damage, or change that powerup.
Wed, 15 Jul 2009 13:16:05

Firebrand

OK, I began working on this yesterday, I think the weighting thing it's too messy, so I began tweaking the damage values again, here are my results: [url:14p5j4cg]http://downloads.orcishweb.com/koraxdev/firebrand/karena/weapon%20table.xls The original values are the actual values used in KA, I proposed new (mostly reduced) values for some weapons, CW, if you can put these values in your local copy of the source make sure to remove the 'damage <= x' from all the melee weapons (except those that punch 3 times <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->), this will make weapons more balanced IMO, but not optimally. I'll continue to work on these today and hope to come to finish them <!-- s:D --><img src="{SMILIES_PATH}/orc6.gif" alt=":D" title="Very Happy" /><!-- s:D -->.
Wed, 15 Jul 2009 13:47:19

Crimson Wizard

[quote="Firebrand":2nsi6d24]I think the weighting thing it's too messy, so I began tweaking the damage values again I yet have too see the results, but in general I would disagree. Weighting could be difficult but once the basic rules are achieved, balance could be kept well even if some weapons change or new ones inserted. While tweaking usually is good while you keep only several weapons in mind... and changing only one weapon's parameters may break the balance.
Wed, 15 Jul 2009 14:14:11

Crimson Wizard

Also, Firebrand, you are making mistake but treating MissileDamage as real Damage (like 20 damage for Phoenix missile). MissileDamage value is not real damage but multiplication factor. Real Damage is ( 1 to 8 ) * MissileDamage. So, old Phoenix missile damage is ( 1 to 8 ) * 20 = 20 to 160 (sic!). New damage is ( 1 to 8 ) * 8 = 8 to 64. Same with other projectiles (at least most of them).
Wed, 15 Jul 2009 14:41:23

RambOrc

Please use OpenDocument, if you don't have a program to read/write it check <!-- m --><a class="postlink" href="http://www.openoffice.org/">http://www.openoffice.org/</a><!-- m -->
Wed, 15 Jul 2009 16:04:26

Firebrand

[quote="Crimson Wizard":2haoqog4]So, old Phoenix missile damage is ( 1 to 8 ) * 20 = 20 to 160 (sic!). New damage is ( 1 to 8 ) * 8 = 8 to 64. Same with other projectiles (at least most of them). Two questions here, this only applies to projectiles with Radius damage, right? Where do you get that the missile damage gets multiplied by 1 to 8? I can't find any place in progs where this happnens... [quote="RambOrc":2haoqog4]Please use OpenDocument, if you don't have a program to read/write it check <!-- m --><a class="postlink" href="http://www.openoffice.org/">http://www.openoffice.org/</a><!-- m --> I remember that some time ago I posted the very same wapons list in this format and you didn't said anything about it, heh! <!-- s:P --><img src="{SMILIES_PATH}/orc4.gif" alt=":P" title="Razz" /><!-- s:P --> I'll convert the document to open format <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->.
Wed, 15 Jul 2009 16:27:52

Crimson Wizard

[quote="Firebrand":17z5mtah][quote="Crimson Wizard":17z5mtah]So, old Phoenix missile damage is ( 1 to 8 ) * 20 = 20 to 160 (sic!). New damage is ( 1 to 8 ) * 8 = 8 to 64. Same with other projectiles (at least most of them). Two questions here, this only applies to projectiles with Radius damage, right? Nope, this applies to any missile which damage is determined using MissileDamage parameter. Radius damage usually determined elsewise. [quote="Firebrand":17z5mtah]Where do you get that the missile damage gets multiplied by 1 to 8? I can't find any place in progs where this happnens... EntityEx.Misc::Touch sais that if missile touches (hits) anything it will damage it:
	// missiles can hit other things
	if (bMissile)
	{
		if (bRip && !Other.bDontRip)
		{
			<...>
			damage = GetMissileDamage(3, 2);
			<...>
			return true;
		}
		<...>
		damage = GetMissileDamage(bStrifeDamage ? 3 : 7, 1);
EntityEx.Misc::GetMissileDamage:
int GetMissileDamage(int Mask, int Add)
{
	if (!MissileDamage)
	{
		return 0;
	}
	if (!Mask)
	{
		return Add * MissileDamage;
	}
	return ((P_Random() & Mask) + Add) * MissileDamage;
}
For Ripping missiles (with bRip flag) GetMissileDamage is called with Mask = 3 and Add = 2. For non-ripping missiles with bStrifeDamage GetMissileDamage is called with Mask = 3, for all others Mask = 7. Regarding Korax Arena, final formulas are: [list:17z5mtah]- for Ripping projectiles: damage = ((P_Random() & 3) + 2) * MissileDamage; - for common projectiles: damage = ((P_Random() & 7) + 1) * MissileDamage; [/list:u:17z5mtah] That is, correspondingly: ( 2 to 5 ) * MissileDamage ( 1 to 8 ) * MissileDamage.
Wed, 15 Jul 2009 16:48:11

Crimson Wizard

Downloaded OpenOffice. Nice looking applications <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) --> I made simple table as a sample to how weights could be set: <!-- m --><a class="postlink" href="http://downloads.orcishweb.com/koraxdev/KoraxArena/balancefactors.ods">http://downloads.orcishweb.com/koraxdev ... actors.ods</a><!-- m --> Idea is to define approximate weight level for each weapon level, then define various weapon parameters so, that they fit in the restriction. Since some of these parameters, like number of missiles, fire speed etc, may be counted constants, it is all about balancing the rest, mainly damage. PS. Heh, in ods format table is 2x times ligter than xls <!-- s:P --><img src="{SMILIES_PATH}/orc4.gif" alt=":P" title="Razz" /><!-- s:P -->
Wed, 15 Jul 2009 18:21:52

Firebrand

Uploaded document on ods format <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->: [url:15mz9e93]http://downloads.orcishweb.com/koraxdev/firebrand/karena/weapon%20table.ods BTW, OpenOffice is a great thing, I've used it before for work, it saved my ass several times when in a hurry, just downloaded it and installed it where no M$ office was found and worked there, heh! <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->. Now ontopic again <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->, that table you made is going to be useful for balancing things in paper and designing the actual formulas for doing this CW. The only thing I don't understand is, what do you mean with 'damage level' and what do 'A to B', 'C to D' etc. mean? EDIT: Finally, does this factors would have to be applied for damage only? or for everything else...
Wed, 15 Jul 2009 19:18:43

Crimson Wizard

Allright, let me explain this properly. The balance of weapons presumes that weapons of same level have same or nearly same "weight". The "weight" is determined as a summ of weapon's advantages and disadvantages (if any). Thus we have to 1) Define target weights for each weapon level - that is a weight all weapons of that level should have, and 2) Define weight values per each weapon property. A summ of weapon properties will give weapon weight. It is up to us to make every weapon fit the level. Just for example, we have decided that level 4 weapon should have roughly 40 weight units. We are taking Fighter's Ripper for balancing. At first, we calculate the base of its weight using those factor tables (remember, everything is for example only): Main attack: Class is : "fast projectile" = 9 Fire rate is "slow" (24 tics) = 2 Single main missile = 1 Area of attack: straight = 1 total = 14 8 extra missiles spawned on hit: Class is "slow projectile" = 3 Area of attack: spread = 2 total = 5 * 8 = 40 Grand Total = 14 + 40 = 54. So we have weapon weight 54 and limit 40. Now we still have to set damage so that its weight won't exceed limit (much), but it is already exceeded. So we have to use disadvantages, that is apply large mana cost (I forgot to mention it in the tables); or maybe decrease attack speed/projectile speed to lower down basic weight. That is the idea. [quote="Firebrand":1jlfx0p3]The only thing I don't understand is, what do you mean with 'damage level' and what do 'A to B', 'C to D' etc. mean? Its just a template. We may determine roughly standart damage levels, like 10 to 15 of damage, 15 to 25 etc.
Wed, 15 Jul 2009 21:33:20

Firebrand

OK, this explains it more clear, I've worked on the code just adding property flags (boolean values for representing most of what's included on the table), then I want to create methods that calculate these weights for each weapon according to the rules we have proposed, this way we'll only have to fix the actual values determined by each of the properties if things don't work fine (or if something needs to be modified/added in the future) <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->.
Tue, 28 Jul 2009 15:12:46

Firebrand

New version of the weapon balance tables, in case anyone is interested on checking them: [url:3e941825]http://downloads.orcishweb.com/koraxdev/firebrand/karena/weapon%20table.xls [url:3e941825]http://downloads.orcishweb.com/koraxdev/firebrand/karena/weapon%20table.ods Since I added new sprites for projectiles and other small things to the PK3 files, I think I need to do a new internal release, this one is specially done for weapon balance, so it's renamed to reflect this: [url:3e941825]http://downloads.orcishweb.com/koraxdev/KoraxArena/KArena_Weapon_Balance_Test_20090728.zip Please remember that these new damage values aren't written on stone, they are only propositions, if you think there are weapons that do little damage, feel free to tweak values and reupload the tables or a list of new damage values, I would prefer if only weapon damage and maybe mana usage values are tweaked... but if you think other things need tweaking, go for it, let's test them in game and discuss this properly, IMO it's a benefit to make the game as balanced as possible <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->.
Tue, 28 Jul 2009 16:03:38

Crimson Wizard

I am afraid I won't be able to give quick feedback, I am rather busy now; maybe I shall test it somewhen closer to end of the week.
Tue, 28 Jul 2009 17:25:00

Firebrand

As long as you test it, there's no problem <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->.
Thu, 14 Jan 2010 15:03:00

Crimson Wizard

While testing 1.1 Beta, I played Fighter a bit and noticed that balance seem to be futher screwed up. Fighter's 4th Ripper stays the most useful and effective weapon, while such weapon as 6th Fire Hammer is absolute and total crap: it is terribly weak but it drains mana quickly; also it is useless against ghost monsters. I really can't understand how and why it is ended like that?
Thu, 14 Jan 2010 17:38:13

Firebrand

When we did the rebalanced weapons using the tables that still can be downloaded, I asked everyone to test them. Concerns about this were fixed at the time, but apparently not everything was fixed, as I've said before, this is a very difficult thing to do properly, moving a value from a weapon could make the rest to look screwed and weak... My suggestion is to make a table of the weapons you find weak or screwed and what things you don't like about them, so that we all can work on fixing them for good <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->. I want to take this moment to comment on the ghosts flag for projectiles, it was added there because without it, the invisibility powerup is useless, it doesn't really makes you invisible, so without that IMHO it's not useful at all, only as a simple effect, lol <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->.

Back to the Korax Forum Archives