Advertisement

Ideas for capping item bonuses where there are no levels.

Started by August 05, 2008 12:49 AM
6 comments, last by warthog518 16 years, 6 months ago
The game I am working has skills and stats, but no levels. I would like to cap bonuses on items, but I am not quite sure how to do this without levels. The idea is to prevent twinking newly created characters with high level items, but still offer some form of bonus for using the item. I was thinking of doing some sort of required stat for each bonus, and if the required skill/stat isn't at that level, it would only increase it a portion of the bonus. As an example, lets say I have a sword that adds +20 slash, +50 strength, +50 agility, +20 parry. Ideally I would want someone with 100 slash, 150strength, 150agility, and 100 parry to use this item. Now lets say someone who has been playing a while got this item and gave it to their friend who only has 25slash, 100str, 75dex, 20parry. In most games, they will cap the stats based off of level or put in a requirement to use the item, which makes it useless until those requirements are met. This is what my cap equation would look like: if(playerValue < requiredValue) { return bonus*(playerValue/requiredValue); } else { return bonus; } So from this system, the friends final item would have the bonuses: 5 slash, 33.3 strength, 25 agility, 4 parry So even though the weapon is a high level weapon, they still gain some capped benifets of it. Does this sound good? Anyone else have a system for dealing with item bonus caps where there are no levels?
Moving you to Game Design.

- Jason Astle-Adams

Advertisement
Oh ok my bad. I suppose I posted a couple other topics which should be in game design instead of programming. Sorry about that.

I was looking at the equation I posted above, and was thinking it would be pretty painstaking to give every single stat/skill an estimated required value, so I was thinking I could just take the users current base skill or base stat, and then use those for caps. So even if the user had several 'seasoned' items it would add to the total cap pool, but won't go over the max.

So on a skill, I could take Floor(currentSkill *0.2)+1

So at lvl 100 Slash, the max bonus I could get is +21 and even if I have 0 Slash ability and I use this item, my max +Slash I could get is 1 [(Floor 0)+1]
So this would setup a system where every 5 points in sword, you gain +1 skill bonus cap.

Hmm now what to do with stats... :/
There are several ways of looking at this:

  • The recently-created character cannot use the item. It cannot be equipped, or it can be equipped as if it were a piece of junk (used as an improvised weapon), or perhaps as a normal weapon of the same type (so, your flaming greatsword of gore will be a plain old non-flaming greatsword of not-gore). This works well with on/off items (such as an amulet that allows on-command teleport).

  • The recently-created character can use the item at a restricted rate. So, if you expect the sword to be used by someone with STR 100, but the character has only STR 50, then all the properties of the weapon are divided by a factor that may be linear in the skill ratio, or worse. For instance, you can decide that the bonus is equal to Bonus / (101 - STR) or an equivalent function, to make it very useless for a less-powerful character. Or, on the contrary, you could decide that another function (log? sqrt? 1-exp?) is used to grant more power than what linear would allow.

  • The recently-created character can use the item fully, but incurs a penalty. This penalty can be constant (for instance, mana usage or endurance can deter less-skilled characters from using an item, whereas a better character will just shrug it off. Or it can be reserved to characters below the skill requirement : constant life loss while using the item, random curses, critical fumbles being more probable etc.
Why not have items (all or just the most uber) offer a percentage bonus, instead of an absolute bonus? Here's an example with two swords and two dudes:

Rusty Estoc:
+8 Slash
+20 Strength
+20 Agility
+8 Parry

Keen Poinard:
+20% Slash
+33% Strength
+33% Agility
+20% Parry

Lowbie Johnson: Novice Fencer

Slash: 25
Strength: 100
Agility: 75
Parry: 20

Champ Uberson: Expert Fencer

Slash: 100
Strength: 150
Agility: 150
Parry: 100

With these stats, Lowbie would actually be better served to use the gear appropriate to his level, since a +8 to his slashing would constitute a 32% increase in performance, way better than the 20% he'd get from the high-end sword. At the same time, the higher-level guy would get a clear benefit from using the more advanced gear, since it would scale with his considerable abilities.

The pitfall here is that you get two classes of dudes, and twinking can still occur within those subcategories. A starter could be twinked out with a +10 sword that would give him a real edge (pun totally intended) over his peers, and then the top-of-the-line wold-beating gear could be handed to him as soon as he reached a level at which it was even remotely more effective than the best "absolute" gear, and then he could just grow into it.

But that's the best I can come up with within the boundaries you've set for yourself.
Awesome ideas guys!

I have the system in place now, and I appreciate all your advice and ideas.
Advertisement
What about minimum skill levels needed to wield the weapon effectively? Don't have the base skill to use? Then you can still use it, but the bonuses are no where near as effective.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Quote:

if(playerValue < requiredValue)
{
return bonus*(playerValue/requiredValue);
}
else
{
return bonus;
}


well, first things first:
i love how you capped the bonus
i reccomend you DO NOT use this system

Ok, your current system will work but you could also do this:
totalstatpoints = (int)slash_amount + (int)strength+ (int)agility + (int)parry;

required_stat_points = statpoints;
or
required_stat_points = level * statpointgainperlevel

and compare totalstatpoints and requiredstatpoints

also

if you use this system, people will just go buy the highest level weapon possible, of course weapons always become stronger and stronger
(in most online games, a level 1 sword would do maybe 10 damage while a lvl 100 sword would do maybe 300? 400? not including stats)
and then low level weapons would become.. obselete


-warthog518
-hth :P

This topic is closed to new replies.

Advertisement