User Tools

Site Tools


user:saru:balance

Balance project:

Whilst re-leveling my character, I have had an opportunity to consider what improvements could be made to the current combat system to make it more fun. Items, players and monster must all be balanced to be fun. It is not fun to be conquesting through a map with some challenge to, suddenly, unpredictably find yourself horribly underwpowered and dead. I am not referring to unique challenges and variety in maps such as special boss monsters or artifact items. In planned challenges the map designer is able to provide ample warning in game (or intentional lack of warning), which can be a key element in making the game fun. Instead I am referring to the 'generic' monster or weapon from the archetype which have largely been created in an ad hoc fashion based on the needs of map designers. This has resulted in some items and monsters being out of step with player progression. Whilst it is simple to go and adjust each value at a time, at present there is little guidance on what it 'should' be.

General approach:

The first question is, what is balance and why is it important?

Balance is important because enables people to focus on being different and then allows them to work together to achieve more than they could on their own. Crossfire has always wanted to be an MMO rpg, the MMO infront of the RPG. To properly role play one needs a role, and a role by definition is a division. We can't all be the paladin, but, it isn't fun if the only player that gets to have any impact on the game is the paladin. Therefore we need to promote difference but not at the cost of power. This is balance.

It can be argued that most of crossfire is designed largely around solo play. This is probably because most development (map, arcs, new skills) has occurred by individuals. There has also been an attitude in the past that all characters should be able to complete content on their own. I think we should be aiming to build a multiplayer experience first and singleplayer experience second. my ideas are largely structured around this definition of balance and this assumption that crossfire is a multiplayer focused game. To deliver balance I believe we should break the problem down into 3 stages.

  • Stage 1: agree on how characters should be diverse, see character selection
  • Stage 2: agree on how items should be diverse, see itemisation
  • Stage 3: agree on how monsters should be diverse, see Monsters
  • Stage 4: agree on how maps should be diverse, see maps

I want to re-implement the balance of combat (spell, grace, melee and missile) and itemisation (closely linked to combat) by using a constant to measure against. This constant is likely to be player/monster/item level. This would mean that as a players level increases, the power of items increases and the difficulty of monsters increases such that the sum is approximately equal. This means that all items and what maps they are accessed from and how hard the monsters are to kill there should be clearly linked!

This implies things like:

A spell user at level 10 should have as much power as a weapon user at level 10
Missile weapons should be as powerful as melee weapons
1 type of level 40 monster should be as challenging as another level 40 monster

I will not be including changes to leveling in this project, however, it might be a good time to confirm that the current leveling speed is 'correct'. That is to say that the rate of leveling matches what is fun and that monster difficulty currently already loosely matches this rate of leveling. The discussion around experience rates is here

Care must be taken to avoid balance in game feeling like an entirely computational problem or linear in progression. For example, not all level 40 monsters will attack in the same manner and not all level 40 characters will be equally suited to beating certain opponents. Instead I want to try and equate the attributes of various monsters, players and items.

The approach I have in mind is to extend the use of formulas in game for attributes of objects to create balance curves for each property. From these curves an approximate value of the attribute can be guessed and a formula used to fit items against.

I will first pull out archetypes in a systematic fashion on model existing curves for various attributes based on the strength of the item. For example:

as player level increases what is the current relationship between attack speed and attack damage on weapons?
as player/monster level increases what is the current relationship between AC/WC and level?

Benefit

By undertaking this approach I hope that crossfire will be:

  • Simpler for creation of new content that is balanced
  • Clearer for players what sort of content matches their strength
  • more intuitive for new players, particularly that information is more accessible during combat such as the effect of attacks on a monster
  • Reduce the number of 'easy' ways to level

The best starting point is where a new player starts:

Character simplification

race

as per characters.

class

Class really represents the skills that a character would be likely to be proficient at. The current skill system does not lend itself to specialisation, there I suggest moving to mwedel's advancement approach.

Each class should be associated with a primary attribute that has an affinity with their specialisation:

Primary attribute Definition effect class
Strength The ability of a character to lift heavy objects Strong characters tend to rely on their ability to hit harder than they receive Barbarian
Constitution The tenacity of a character Tenacious characters tend to out live or outlast their opponents Warrior
Dexterity The precious of movement Dexterous characters out position their opponents through speed and style Ranger/Assassin/Rogue
Charisma Social inclusion Charismatic characters can talk their way out of a jail cell Bard/Thief
Power Ability to outwit an opponent No personality is able to resist their views Summoner/Demonlogy
Intelligence Ability to think creatively No puzzle or spell is too complicated to master Wizard/Sorceror
Wisdom Ability to use knowledge The wise need little help, they've seen it before Priest/Cleric
Memory Ability to retain knowledge These characters are firm in belief and let that empower their actions Paladin

class selection

Forcing a player to choose their class before they have played the game is inherently challenging. How does a new player know they want to be a paladin when they haven't had a go at one yet? of course they can pick and play, but when to make the decision a character is not for them? Even the rolling of stats is a turn off for new players who have no idea what stats they should be aiming for. It has been proposed in the past that players should instead choose their class after they have started playing. I would therefore propose a new approach to character creation as

  1. A new player is first presented with the race selection and is welcomed wi their race based on aesthetic. All classes can be mastered by all races, therefore, primary attribute maximums are NOT affected by race (GASP). Instead other statistics can be played with like speed and resistance.
  2. The new character now selects a name
  3. the character is shown how to use the client and what commands are available. This should probably be a cheat sheet that can easily be brought up throughout the game.
  4. the character is shown food and how to use it.
  5. The character is walked through the newbie map and given the opportunity to learn the controls and how to interact with the world in a basic sense
  6. The character learns about shopping and items
  7. the character learns about sleeping
  8. the character learns about questing
  9. the character is given 8 quests, each focused around a primary attribute
    1. Str - The character must lift a heavy rock and uncover a lost axe. With this axe he will carve his way through a room of opponents and return the axe.
    2. Con - The character must survive an attack from a wyvern by finding a piece of heavy armour that protects from fire and attack
    3. Dex - The character must shoot a fast moving target and beat an opponent in a street battle unarmed
    4. Cha - The character must go in to the tavern and find a target, they lull them into a false sense of security and pick their pockets. They get knife which they then use to sneak in and assassinate a political target.
    5. Pow - The character must summon a small demon and let it show them a secret door. The demon and player fight a stronger opponent.
    6. Int - The character learns how to use a wand to channel fireballs which they promptly use to clear a room full of opponents
    7. Wis - The character adopts a god (limit to 2 options?), they use their gods power to clear a room of undead
    8. Mem - The character must remember a sequence to get through to an armoury which has a holy shield and mace relic. They use this to defeat an ancient evil before rightfully returning the weapons to a church.
  10. The character is now summoned to guilds meeting where advocates of each class implore the candidate to join their numbers.
  11. the player selects their class and enters the bad old world. They are now a level 4 of their chosen class and must focus on the skills granted by their guild (rangers vs thieves)/order (each god)/school (elemental, summoners etc).
    • there is obviously a lot of expansion that can be made to each class.

skills

To support a more class oriented approach, the skills need to be simplified into much tidier categories and clarity around which skills are accessible/preferable to particular classes should be made. I suggest following mwedel's approach here: Specific Skill Ideas.

I would like to add proficiency in to each category which enables users to further specialise skills based on time in use. A character that kills a lot with an axe should get better at using an axe. Proficiency could possibly have a lower bounds based on level such that a level 100 character doesn't have to level a new proficiency as if they were level 1.

I have summarised the changes in the table below.

Skill Set Old skills included explanation proficency
Item Creating & Identification Skills Smithery (depends on specific knowledge of weapons and armour from combat skill), Jeweler, Alchemy, Bowyer, Thaumturgy, Literacy, woodsmand (?harvesting?), ?leatherworking?, ?tailoring?, The item creation aspect should get expanded so there are more easy things to create give minor amounts of experience (for example, smithing a dagger should not be a hard task). Identification of items should change - instead of there being a chance, it a straight level comparison - to identify a level 5 item, you need to be level 5 or greater in the appropriate skill. Non magical items would be level 1, each plus of an item might add one level, each 20% resistance adds one level, etc. Some formula could be determined for objects that do not have an item power setting. There are a few advantages of this: Each type of item has a separate proficiency
The server no longer needs to track if an identification attempt was made on the object or not - either the character succeeded or not, and retrying will not work better since there is no random chance.
Related to the above, a character can retry and perhaps succeed if they have increased the level in the skill.
Items can be traded in hopes that the other character may be able to identify them.
Right now, with current formula, even at low levels, characters can identify the vast majority of items. This would make that harder.
Greater level difficult for items could give much greater rewards - completely reasonable that if you are able to identify a level 20 item, you get lots of experience - there are not going to be many such items about.
In many ways, this would just have it work the same as literacy and reading books - either you are sufficient level to read it, or you are not - there is no chance involved.
Combat Skills - STR based 2 handed, 1 handed, missile, bow use Proficiency in weapon type rather than # of hands in use. Consider races with more than 2 arms? Could work almost exactly the same as current system, as you use particular weapons - proficiency improves. Particular races or classes get bonus to proficiency rate such as maces for clerics. Proficiency also links to smithery/bowyer for identifying. Each type of weapon has a separate proficiency
Axe, Sword, Hammer/Mace/Club, SpearEach of these types of weapons break apart the one handed/two handed weapon skills. However, they also incorporate the throw skill - eg, the Axe skill will let you throw throwing axes, the sword skill lets you throw knives, etc. Throwing of misc objects (non weapons) becomes an ability
Combat Skills - DEX based
Missile Weapons: This is really bow and crossbow, and is unchanged. Improvement in this skill means faster firing rate and more damage when firing.
throwing - anyone can throw a flask and one does not need a specific skill for that (plus, I don’t think such a skill would generally be valuable enough for most people to bother improving). Note that the logic/ability to throw items probably needs to be streamlined some with a better interface on the client to make it easier to do, but that is a different issue.
Unarmed Combat This merges punching, flame touch, karate, clawing, wraith feed all into one skill. Certain races may be special abilities with this skill or it has other effects - eg, it does flame damage, it drains hp, etc. I don´t see a real need for these to all be separate - I just can not picture a dragon is going to be getting up and doing karate in any case. Note that for normal humans, this skill should generally be a bit weaker than the weapon skills above - there is a reason people pick up a sword to hit the other person with vs hand to hand - the sword is more effective. Probably simplest way to do this is that unarmed combat damage goes up just like the skills improve weapon damage - however, in this case, you don’t have a weapon to increase the damage with. But for special characters, like dragons, they may have a symbolic dragon claw weapon which does go up in damage.
Magic Skills air magic, fire magic, water magic, earth magic work Increasing level increases the potency of the spells, the spells you can cast, as well as the pool of sp. These also replace the summoning, pyromancy, evocation, and sorcery skills. A system of proficiency for various elements could be added as well as items/races that add attunement, repelled and denied.
Armour skills smithery

These are largely unchanged - air magic, fire magic, water magic, earth magic work as they do now.

Divine Casting: I don’t really like the name of praying, but that is basically what skill this replaces. Anyone should be able to pray (innate ability), but characters with high divine casting get more favor. Given the proliferation of of cleric spells, it may also make sense to have more god specific spells - perhaps going so far as having god specific prayerbooks. There would still be various common spells - healing is only available via this divine spellcasting. This could be renamed better, but since what the characters are doing most of the time is casting priest spells, a skill that better describes that makes sense.

Thief/Bard Skills

These are perhaps not well balanced now, but my thoughts:

Traps (find, remove, create) This combines the find trap, remove trap, and set trap. As a general principal, it is easiest to find, harder to disarm, and harder still to make a trap. In terms of balance, a character should have a 50% chance to find a trap of the same level of the skill, a 25% chance to disarm, and 10% chance to make. Note that failure to disarm does not mean that trap goes off - it may be a 25% disarm, 50% no effect, 25% trap goes off. Note that because one can repeated search for traps, having it be a chance may not make a lot of sense - I know right now I just search 10 times, figuring I’ll find it or a trap doesn’t exist, so perhaps a straight level check is in order instead - I’m not really sure on that. The different facets of this skill could be done by the granted abilities, eg, having this skill gets you the find trap, disarm trap, and set trap abilities (I don’t think that last was ever implemented, but if it was…).

Thievery This combines hiding, lockpicking, and stealing. I think as individual skills, once again, I think they may be too broad/general to be worth advancing. Hiding should grant a sneak attack ability, which if the character is successfully hidden, does extra damage on the creature. A character should have perhaps a 75% chance of hiding against a creature of the same level, with various modifiers - bright light decreases this, as does armor and movement. An attack may decrease this chance 100%. It should take several ticks to start hiding - this gives a chance for monsters to spot the player - this time may decrease as the skill improves. Note, it is probably completely reasonable that a level 100 character in hide could sneak attack a level 10 monster and that level 10 monster still have no idea what happened, but a 0% chance to do that on a level 100 creature (he can get the sneak attack off, but the monster will spot the player). For lockpicking, chests should be given a level, and a 50/50 chance to unlock a chest/door of the same level. In order for there to be some penalty, there should be a chance of lock picks perhaps breaking - any case where a character can repeated try something with no ill consequence, there is no reason to have a check. Stealing should allow characters to steal items, even from shops, but it should be hard - but this one really does have consequences.

Singing/Oratory: I suggest these two get combined into one skill - maybe just called singing - I think this being 2 unique skills just makes them too dilute. A character can calm (make non hostile) up to their level, and charm (make friendly) monsters up to 1/2 their level. There should be some time delay to start singing, and a character can not sing if in combat (eg, taking damage).

Acrobatics: This combines jumping and climbing. As it stands, even this combined skill may be too weak for anyone to bother improving - maybe it also gives some minor dodge bonus also.

Bargaining: As it is now, character gets better prices with higher skill. Really high skill may start to offset shop specialization (eg, you can sell spellbooks to the armorer for good prices). I’m not sure if that by itself would make it a good enough skill, so possibly including the ability to detect magic and cursed items as well as identify items (at a lower proficiency than the item skills themselves) may be reasonable - eg, if one is going to be buying/selling stuff all the time, they need to know what they are selling.

Misc Skills

Literacy Literacy would be as it is now - reading of various items. It should also incorporate inscription - once again, I think that as a unique skill would make it not useful enough - perhaps inscription at half the level of the literacy skill - for example, a level 10 literacy skill could inscribe level 5 scrolls.

Skills that Become Abilities

These are skills which never really improve, and thus are really abilities:

Detect Magic, Detect Curse - while there is some level check, pretty much it hits everything. These should be given as innate abilities for classes/races which warrant it, and should be 100% success rate. Detect magic is a first level spell in any case, so really not giving much away to let some particular race/class use it all the time.

Meditation - monk specific ability which never scales - give it as an ability to them

Levitation - like meditation, this is given for certain races, but it never changes, so is really just an ability.

Use Magic Item - all races/classes can use magic items, so this really is not necessary. If one really wanted to put checks in the ability to use wands, then that check should be in the thaumaturgy skill. The only reason this skill really exists is that a skill bucket was needed to put exp gained by using wands, etc.

Attack system simplification

combat general

AC and WC replaced with chance to dodge and chance to hit.

dodge

As per dodge. I would also include a dodge bonus for level gaps which could be as simple as level of attacker/level of defender. E.g. a level 10 player fighting a level 20 monster might have 50% chance to hit + any additional dodge bonus the enemy has.

A bonus to chance to hit could also be added which counteracts dodging.

Attack_types

Attack types should be able to constitute a fraction of an items damage. (e.g. if the Dam = 10, and physical is 1 and fire is .5 then the total damage should be 10 physical damage + 5 fire damage reduced by their respective resistances). This prevents attack_type stacking being too all or nothing where warriors either need every attack type (fire, cold, electrical) or don't care about attack types at all (weaponmagic)

Attack_types and their respective resistances should be entirely simplified to mwedel's plan here: resistances

I have summarised this approach with the following table.

New attack_type Included old attack_types Explanation Thoughts
Blunt Physical Blunt trauma from the mass of weapons (new) Blunt, Piercing, Slashing: This splits apart the generic physical into 3 sub categories - different weapons do different attacks - different items may also provide different levels of protection (chainmail may be very good against slashing, less good against blunt). A simple way to make this change is just take all armor values currently in the game and assign the blunt/piercing/slashing resistance as that value. I'm not 100% if splitting this is good or not - it certainly makes sense for some monsters (skeletons should have resist_piercing 90 for example), but it may just be that is too specific for this general split.
Piercing Penetration or piercing due to point or spike
Cutting Slash or cut due to sharpened edge such as knife
Magic Magic magical damage This has always been a messy one - the idea behind it goes back to AD&D where creatures had magic resistance - this corresponded to that - if the creature was hit with a magic attack, this resistance would apply. I think this should just get removed - we shouldn't care where the attack comes from (magic or otherwise), and removing it simplifies the code.
Fire Fire High temperature Elemental resistances are fine, and are unchanged.
Electricity Electricity Electrical Current
Cold Cold Low Temperature
Mental Confusion, Slow, Paralyze, Fear Effects the mind (new) Mental This new attack encompasses all attacks that try to effect the mind - confusion, slow, paralyze, fear
Cancellation Cancellation Removes magic Cancellation is used so infrequently and is irreversible (it just removes the magic plus from items) that I think it should get removed - I don't think there would be any real change in play balance by removing this.
Acid Acid Destroys equipment Acid remains, but the damaging of items needs to be revisited. Should probably be reversible?
Negative Energy Drain, Ghosthit, Death, Depletion, Life Stealing drains body (new) Negative energy covers all attack forms where some aspects of the character lifeforce is being attacked or threatened. Not that in a basic mode, it may just do HP damage, with other attacks draining experience, stats, etc. It encompasses drain, ghosthit, depletion, death. For Death: This could really be any of Mental (frightening visage scares character to death), negative energy (drain all lifeforce) or fortitude - whatever the case, it doesn't need to be its own top level attack.
Weaponmagic Weaponmagic This goes back to AD&D where certain creatures needed to be hit by magic weapons. Weapon magic: Crossfire did this by giving such creatures immunity to physical, and some weapons had weaponmagic set. However, this is largely broken - very few creatures actually have resist_weaponmagic set, and things like normal armor should make one resistant to these attacks. In addition, under AD&D rules, a +1 sword would be magical, and thus could hit such creatures, but that doesn't work in crossfire - only a few artifacts have weaponmagic set. For these reasons, it should get removed, and if we really want to come up with some idea of 'needing magic weapons to hit', we should re-examine the best way to do that - but I personally think there will not be any great harm just removing this.
Fortitude Blind, Poison, Disease disrupts body function Fortitude (new) I need a new name for this, but basically this covers all attacks which try to do some physical effect (poison, disease, blindness)
Holy Fire Turn Undead, Godpower, Holyword heavenly interdiction Holy Fire (new) This describes all effects which are attributed to the power of the god - covers godpower, holyword, turn undead. Actual effect depends on the attack.
Chaos Chaos Randomized attack This is really an administrative/effect - it is supposed to randomize for one of the other attacktypes, so characters should never be facing chaos itself.
Counterspell Counterspell Stops a spell effect Once again, this is an effect, can get removed.

Internal: This continues to exist, but should never be visible to players - this is really just used when a convenient way to do damage to the character is done (eg, ceiling collapsing, crushing you, character is dead) - it probably should be used sparingly.

Itemisation

Itemisation refers to both how easy items are to find (method of finding equipment) and how powerful items are (based on the properties of the item). These two proporties must be linked carefully such that players receive diverse and interesting items whilst not being overloaded with junk or being able to find too powerful an item too quickly.

Method of finding equipment

This section unpacks the current ways in which players can gain access to equipment and proposes an additional step to better identify which methodology a developer intends an item be associated with.

The current systems for generating equipment provides 3 paths for accessing items:

Generic

Generic items exist in the archetypes and get handed out via archetypal objects as opposed to unique objects created inside a map. This can be through killing monsters, treasure chests, or random loot generators. The loot table of these mechanisms specifies each individual items that is included in the drop chance such as broad_sword(.arc) or buckler(.arc). In the case of chests this has grown to be a very large loot table. Items created using this mechanism can have random enhancement modifiers added to them such as +1 or of Mostrai. Generic items can be accessed by players through:

  1. generic monster treasurelist
  2. generic Random Treasure treasurelist
  3. treasure chests treasurelist
  4. item placed directly into map (such as mithril chainmail in pupland raffles)

Skill granted

Skill granted items are obtainable only by meeting specific requirements of the skill such as maximum number of grace points or particular materials to craft from. This equipment is often 'god granted' items to avoid players trading these items once they have met the hurdle requirement. These items do not have random modifiers. Skill granted items can be accessed by players through:

  1. crafted items treasurelist
  2. god granted items treasurelist

Map specific

Map specific items are items that have been modified inside a map to grant new features (both positive and negative) to greatly enhance the speed and diversity of map making. These items present the biggest challenge in balance as they are more difficult to track. Some of these items should probably be 'god granted'. These items only vary by how map makers design them, no random modifiers are used. Map specific items can be accessed by players through:

  1. specific map based items placed into maps (including added to monster drops or inside chests).

Generic monster & random treasure loot

Currently the game offers a specific set of items with various likelihoods for each specific item to drop based on a treasurelist. This limits the diversity of items dropped by generic or archetypal monsters and means that:

  1. collecting particular items can be very simple once you know which monsters have small treasurelists, bonecrushers off Titans for example.
  2. some monsters are not interesting to kill due there being no chance of a valuable reward. This is slightly offset by the random modifiers.
  3. some monsters extremely profitable to kill. Once you find a monster with a very powerful drop list, you will keep coming back to that monster (e.g. dragons, wizards, balrogs). Maps become a question of specific densities of valuable monsters, Brest, being an example of where high densities of high value targets make earning platinum very simple.

Because the current system requires that every individual item and that items drop chance is included in the treasurelist, updating and tweaking the drop chances to adjust to improvements and changes in balance, very, very, time consuming. Secondly, a monster can't be 'tweaked' up or down in power easily (such as weak hillgiant in pupland raffle) because map makers need to not only adjust the power of the monster, but its entire item drop table as well.

Whilst it is true that each specific example I have listed can be addressed individually, a generalised approach to fixing this problem would result in a much faster and sustainable way to tune balance. It is important to note that the improvements to the generic treasurelist are built upon the existing system and archetype creators and map makers can still use the existing approach to treasurelists by specifying generic items in their treasurelist.

Generic treasurelists

A 'generic treasurelists' differs from the current treasurelists as it is automatically generated on compile. To create a generic treasurelist, item type is used to group existing archetypal items. Items that are not to be included in a generic treasure should be flagged to avoid being accidentally included in these treasure lists via something like an 'is_artifact' flag. Examples of generic treasurelists would be axes, swords, shields etc. Generic treasureslists then get added to monsters in exactly the same way as the current system but when a generic treasurelist is succuessfuly rolled, rather than create a specific item, the system would then do a second roll to determine which item from this list is used automatically.

Without knowing which items within a generic treasurelist are more or less valuable (e.g. is a broadsword better than a long sword?), generic treasure would be far more consistent in what dropped from a variety of monsters (boring). As there is no currently no way to put these existing items on a hierarchy, a new variable must be created to indicate to the system which items are more valuable.

Item Level

I propose that we start using the level object attribute for all equipment to denote what the target audience (player level) should be (e.g. a broadsword is targetted towards level 10 players whilst a long sword is for level 20 players). Crossfire can then use the ratio between the item level and the level of the drop mechanism (monster, chest etc) to determine a sensible probability for the player to receive that item. This probability can be based off of a normal distribution (or poisson) with the standard deviation used to set how much variation from the monster level there is (+luck could influence the standard deviation or the mean!). We might consider adding an upper bound value such that items higher than monster level + upper-bound are disregarded to avoid players getting too lucky.

A similar process can then be applied to determine if it is a magical item (+1, +2, of mostrai etc.) and which magic property it gets (levels are added to magical properties along with the existing probability rates (really good items are very rare)). This same approach could also be used to make monster generators generate more than just a single type of monster, so a level 6 orc generates could create generic orcs at level 6 with a rare chance of champions but a level 10 orc generator might create orc champions with a low chance of regular orcs and orcish beserkers (level 15). This could even be extended to placing generic monsters so instead of placing specific archetypal monsters, map makers use 'generic monsterlists' that automatically create a diversity of monsters when a player enters the map.

The result

Using a normal distribution to calculate the probability for a specific item dropping, might look something like:

In this chart:

  1. The height of the distribution- represents the likelihood of an item dropping, this is set by the existing monster treasurelists.
  2. The width of the distribution - is the standard deviation, in this example Orcs drop less variability of items than Goblins. This needs to be created.
  3. The centre of the distribution - is the mean and represents the most common items to drop, for orcs a rusty sword while skeletons will drop a lot more steel swords. This needs to be created.
  4. The items distributed along “item level” - represent increasing quality. Item level needs to be added to items that are to be included in the generic treasurelist, items with no level will be ignored.

Generic treasurelists using item level, in the case of body armour, might result in something like:

Name Item Level range of rolls which drop this item Probability if a successful roll
robe 1 1< = robe <3 100%
armour 4 4< = armour <6 50%
bronze plate mail 4 4< = bronze plate mail <6 50%
scale mail 6 6< = scale mail<7 50%
chain mail 6 6< = chain mail<7 50%
ring mail 7 7< = ring mail<8 100%
full scale mail 8 8< = full scale mail<10 100%
plate mail 10 10< = plate mail<15 100%
hauberk 15 15< = hauberk <110 100%

Worked Example

A player kills a level 6 orc. The first item roll for treasure determines that the orc has successfully dropped an axe type item from the generic 'axes treasurelist'. The new system would then roll to determine which type of axe from within the axe treasurelist it drops. The axe treasurelist might have 3 axes in it; a 'stone axe' might be level 5, an 'axe' might be level 8 and a 'Battle Axe' might be level 15. Using a normal distribution, the mean is the level of the object dropping the item, in this case a level 6 orc. The standard deviation (SD) is the variability of item drops. So for a SD of 4 the likelihoods would be:

item type item level likelihood
stone axe 5 22.7%
axe 8 73.3%
battle axe 15 4%

if we wanted less variability we could set the SD to 1, such that:

item type item level likelihood
stone axe 5 0.0135%
axe 8 98.6%
battle axe 15 0.0003%

The importance of SD in making drops interesting

The limitation in a generic treasurelist approach is making sure that there items spread-out along the item level axis. This ensures that items remain interesting for players throughout their leveling experience. SD can be used to compensate for the tendency for their to be less item variation at higher levels. SD should be configurable for each drop type to enable customisation, but, an automatic variation in SD would be useful as something like:

SD = k * (level of mechanism/110)

so a possible value for k might be, 5 resulting a change in SD of:

To offset really boring tables low it might be worth adding +1 to this equation:

SD = (k * (level of mechanism/110)) + 1

Map specific items and skill based items

Non-generic items can be added to crossfire by directly modifying the stats of an archetypal (generic) item. In part perhaps due to the complexity in adding new archetypes to crossfire a large array of unique equipment exists embedded within maps. This variety is one of the strengths of crossfire but it does make changing balance within the game by adding new items or simplifying existing systems very difficult. This is because

  • changing generic items directly affects non-generic items due to the way in which map-specific items are based on an existing archetype. (e.g. removing the fire resistance from the dragonshield would then affect the non-generic dragonshield +4).
  • changing generic items also indirectly affects non-generic items because any changes to the balance of generic items will devalue or increase the value un-linked non-generic items. This effect has a much more significant impact on balance projects as changes can have severe, unforeseen or unintended balance ramifications.
  • map embed non-generic items can simply be really hard to find and so players can hit the wall in progression just because they didn't know of a certain map that has a really sweet reward at the end. This is arguably a map design issue. Skill-based items suffer from similar problems, however, they are usually based on archetypal items so they are slightly easier to find and consider.

I don't have a specific solution for map based items except to continue review these items as crossfire continues to evolve. This highlights that these problems are all important considerations for why map specific items should be treated with caution and only be used for the right reasons. These items should definitely have a target level attribute so that items can be re-evaluated long after the original author has stopped contributing to the game.

Adding and Re-balancing Generic Equipment

Players should be forced to make decisions about equipment based on strengths and weaknesses as they perceive them. This is created by adding a variety of attributes to various equipment to force the player to choose between a light weight robe or a protective platemail. For example the use of negative resistances on items is a fantastic way to make that uber item still have situations where an alternate item is a better choice. The down side to this is that analyzing item value is extremely difficult for anything other than basic or simple items (e.g. a weapon with 10 damage is better than a weapon with 5 damage, when damage is the only attribute). Non-generic equipment is a great way to add unique and complicated items to the game but can become to 'hodge-podge' if there isn't enough 'generic' equipment to base its value off.

One problem is that some generic equipment really shouldn't be generic at all (chaos sword). Items should flag what the means of access is intended to avoid including items in random treasure when it is only intended to be offered upon completion of a specific challenge. It is probably simply whether the item is 'generic' and can be included in standard systems or is considered an 'artifact' and should only be used for specific applications such as completing a map or completing a complex crafted item. Artifacts should probably generally be 'god-given' and could be donated with a different background colour (like blessed items).

Potential Problems

One important aspect of crossfire is the diversity in equipment value. Items can appear quite similar but provide vastly different levels of power. Generic equipment currently feels very 'samey' with 45 different varients of 'sword' and 'shield' but little to distinguish them except that, for example, sickles are currently the best generic one handed weapon and mithril chainmail one of the best generic armours.

Suggestion

Different 'tiers' of equipment could be adopted to provide more variety within generic items whilst still providing many points of difference. By factoring in item level, items that are poorier quality items can be readily available at low levels whilst much more powerful types of items only available at higher levels.

Body Armour

The following is thoughts on ways to identify items that are significant out of balance without solely relying on 'gut feel' and also be able to add more generic armour without disrupting existing balance too much. Currently:

  • generic body armour sits around +1 - +5 AC - (chainmail, platemail, leather armour etc)
  • magical armour can get up to +9 AC - platemail +4 etc
  • artifact armour is generally around +5 AC - (dragonmail, mithril chainmail etc)

By pulling out the .arcs the following table the general armour can be documented as:

Name robe armour chain mail ring mail hauberk scale mail scale mail plate mail plate mail
last_sp 12 13 10 11 10 9 9 7 7
ac 1 2 4 4 4 3 3 5 5
resist_physical 0 10 30 20 25 10 20 40 20
weight 10000 20000 60000 40000 50000 20000 20000 100000 100000
value 30 40 75 85 60 8 30 100 25
gen_sp_armour 0 8 15 15 15 10 10 30 30

we can see that the items appear to progress fairly linearly with the exception of one of the types of platemail which is clearly a lot worse. This item is the bronze variant of platemail listed last on the above table. One approach might be to move it back into line, however, items will all start to feel the same.

If we create an arbitrary formula to model how 'good' each type of armour currently is it we can end up with a scatter plot like this:

If we instead add item tiers for armour the table might now look something like this:

Armour group light - casters scales - thief Composite - barbarian full plate - warriors
Item level range 5
Name robe leather scale mail leather segmented armour leather cuirass
last_sp 20 18 17 16
materialname cloth leather leather leather
ac 1 2 3 4
resist_physical 0 10 15 20
weight 1000 2000 3000 3500
value 10 15 20 25
gen_sp_armour 0 5 10 15
Item level range 15
Name lorica segmentata ring mail splint mail plate mail
last_sp 17 16 15 14
materialname leather iron steel steel
ac 3 4 5 6
resist_physical 10 20 30 30
weight 8000 15000 15000 18000
value 30 35 40 45
gen_sp_armour 0 10 20 30
Item level range 35
Name breastplate hauberk brigandine fluted mail
last_sp 12 10 8 6
materialname steel steel steel steel
ac 5 6 8 10
resist_physical 20 25 30 50
weight 10000 14000 15000 25000
value 50 55 60 65
gen_sp_armour 0 15 25 40
Item level range 75
name mithril splintmithril chainmail mithril coat of plates mithril harness
materialname mithril mithril mithril mithril
ac 8 10 14 18
resist_physical 30 40 50 60
last_sp 21 18 15 10
weight 5000 8000 9000 12000
value 7000 8000 10000 15000
gen_sp_armour 0 10 20 30
item_power 1 2 3 4

This now means that as players level and develop, new armour will continue to become available to them through killing monsters and opening chests without needing to heavily depend on customized non-generic items for variety.

Weapons

Table comparing DPS of various common items in crossfire

Item # of Hands Damage Weapon speed DPS@10 Dex DPS@20 Dex DPS@30 Dex
Nunchacu 2 1 4 1.65 2.2 4.7
Taifu 1 2 6 3.1 4.2 9.2
Dagger 1 2 5 3.2 4.3 9.3
Sting 1 5 6 7.75 10.5 23
Bearded Axe 1 6 9 8.4 11.7 26.7
Club 1 6 9 8.4 11.7 26.7
Hammer 1 7 9 9.8 13.65 31.15
Mace 1 7 9 9.8 13.65 31.15
Axe 1 7 10 10.15 14 31.5
Rapier 1 7 8 10.15 14 31.5
Katana 1 7 6 10.85 14.7 32.2
Sickle 1 7 4 11.55 15.4 32.9
Steel Longsword 1 8 8 11.6 16 36
Defender 1 8 8 11.6 16 36
Broad Sword 1 9 8 13.05 18 40.5
Firebrand 2 9 8 13.05 18 40.5
Morning star 1 10 11 13 18.5 43.5
Mjoellnir 2 10 8 14.5 20 45
Darkblade 1 10 7 15 20.5 45.5
Dragon Slayer 2 11 9 15.4 21.45 48.95
Trident 2 11 8 15.95 22 49.5
Long speed 2 12 9 16.8 23.4 53.4
Large morning star 2 13 12 16.25 23.4 55.9
Scythe 2 14 13 16.8 24.5 59.5
Gram 2 18 15 19.8 29.7 74.7
Poleaxe 2 18 12 22.5 32.4 77.4
Large club 2 20 17 20 31 81
Two handed sword 2 18 8 26.1 36 81
Skull cleaver 2 20 11 26 37 87
Lava Slasher 2 30 9 42 58.5 133.5
Firestar 2 35 9 58.8 78.05 165.55
Bone Crusher 2 50 15 55 82.5 207.5

Monsters

Monsters must be balanced around level. Each monster must be plotted out and a target level selected. Characters with 'default' setups based on our expectation of their strength must be used to test each monsters strength and tweak. Care must be taken to avoid monsters becoming too bland.

Maps

Maps should be reassessed based on level following the balance of characted, monster and itemisation.

user/saru/balance.txt · Last modified: 2014/10/11 20:47 (external edit)