StendhalRefactoringRP

From Arianne
Jump to: navigation, search



Note: The content on this page is very old and is likely outdated. You may want to check on the irc channel #arianne.

Ideas for Stendhal

Mostly implemented


Related pages

We need a rebalance of the RP system so it is playable and fun for both newbiews and high levels. We have to talk about several things here:

Contents

Skill system

The whole system will be skill based, so if you use sword, you will get better and better hits with the sword, but if you change to axes you will have to learn to use it again, as you did with swords. At least we have the next set of skills:

ChadF also suggested another type of weapon skill system that you can review here

We want to avoid the situation of having to add items to monsters for them in order to combat, so we need to find a way of making compatible both systems ( the above one with the actual ATK/DEF one ).

We need to design the system to avoid campers:
Stendhal 0.39 campers.jpg
Image: Campers training in Stendhal 0.39

There are several valid approach for this problem, and IMHO we should try from less severe to most severe first.

  1. Blood solution
    You only improve your skill when you damage/are damaged the creature
  2. Don't get XP points nor skill points from weak creatures
  3. Kick idle players
    No action in X minutes means that you are logged out

We want to disallow first camping to increase skills, you gain skills by playing not by camping. Later we will fix camping by not respawing monsters if player is waiting for the monster. The whole point is to have player create value: fun.

Leveling up

To level up you need to gain XP by killing monsters and/or solving quests.
On level up you gain HP.

Resting

(Idea suggested by Nirvana) It would be nice a player's sit command to heal. The player sits down, and she heals like 1 point every 10 seconds or something.

Combat

Melee Combat

Combat right now works as follows:

  1. We compute the risk to hit the target, using their ATK and DEF attributes-
  2. If risk>0 then we compute if the target blocks the attack, or how much damage the target received.

The formula looks like:

  risk_to_hit = 20 * source[ATK] - roll[1D20] * target[DEF]

  if risk_to_hit > 0:
    max_defence = √(target[DEF] * (10 + target[ARMOR])) * (10 + 0.03 * (target[LEVEL] + 5));
    max_attack = source[ATK] * (1 + source[WEAPON])* (1 + 0.03 * (source[LEVEL + 5)) * speed_effect;
      where: speed_effect = 1.0 - 0.5 * speed_part * level_part^2;
        where: speed_part = 8 / (source[ATTACK_RATE] + 3.0);
               level_part = 1.0 - (target[LEVEL] + 5) / (1.2 * (source[LEVEL] + 5));

    damage = (8 * max_attack * random[0..1] - max_defence * random[0..1]) / max_defence; 

There's also small karma effect for both the hitting chance and damage.

See that it is very important the ATK and DEF value, but that you can also get big improvements using weapons, armors, shields, etc... The benefits you get from your items and skills are directly proportional to your level. The speed_part is responsible for making slow weapons more effective against strong enemies, and fast weapons better against weak enemies.

Creatures are balanced without items, and have constant item DEF of 0 and item ATK 5.

Range Combat

Damage from ranged attacks is based on the above formula, but:

ranged_damage = distance_modifier * normal_damage
  where: 
    if range = 0
      distance_modifier = 0.8
    else
      distance_modifier = 4 * (distance / out_of_range - distance^2 / out_of_range^2)
        where:
          out_of_range = max_range + 1,

Thus ranged_damage reaches the normal maximum damage at middle range, and drops to 0 at maximum range + 1. The point blank case is treated specially to avoid archers being completely helpless at melee.

Tactics slider

As a more or less easy to implement feature I (Zuse) suggest tactics sliders. A single (or more) slider(s) which can be adjusted by the player during the game. For example:

Slink---Normal---Run:

This slider will allow the players to adjust the speed of movement. With the following consequences;

-> +10 %DEF -50% Movement speed, Creatures will start to attack/note players only if there is a very close distance (e.g. 2 tiles) between them.

-> -10% DEF +50% Movement speed, Creatures will hear the "noisy" player and trying to attack/note the player from much farer (20-30 tiles) distances then normal.

Aggress---Normal---Defence:

This slider will allow players to adjust whether they like to attack creatures or defences themselves.

-> +15% ATK -15% DEF

-> -15% ATK +15% DEF

These sliders will make it possible to run different strategies for parties and for longer campaigns. In addition the level of a player is not directly related to the DEF and ATK settings, which make it more interesting because other players do not know about the actual settings. This can help weak players to protect them better and strong players get faster rid of (boring) weak creatures.

Magic

TODO: update/replace with Ideas_for_Stendhal/Magic which is the current working document for magic ideas

Magic will be mana based, with each spell costing mana. Also you can have written spells that don't cost mana, but that vanish after they have been used.

We will mainly have 6 elements in Stendhal, maybe 8 later, and those are Fire, Water/Ice, Earth, Wind, Holy and Dark. The 2 that might be added later is Physical and Mental magic, that focuses on protecting against and strenghtening charm and poison attacks. For now poison will just be treated as a normal attack, and not be affected by any magic resistances.

For the Element there will be some properties:


The Holy and Dark elements will also be used in healings, depending on if the target is a good or an evil creature the dark and holy elements will heal or damage the target.

Here is some speculative formulas for how magic might be working

risk_to_hit = 2 * source[INT] - target[INT] + target[DEF]/2 + roll[1D20] -10

  if risk_to_hit > 0:
    attacker part = 0,8 * ((roll[1D100]/100) * source[MATK]^2) * (ELEMENT * 0,2) + 4 * source[MATK] * (ELEMENT*0,2)
    maxdamage = source[MATK]^2 + 4 * (ELEMENT)
    defender_part = 0.6 * (roll[1D100] / 100) * target[DEF]^2 + 2 * target[DEF] * shield + target[DEF] *
                   armor + 0,5 * target[DEF]* helmet + 0,5* target[DEF] * legs + 0,5 * target[DEF] * boots

damage = ( ( ((attacker_part - defender_part) / maxdamage) * (maxdamage / source[MATK]) ) * 
           (1 + (target[WEAK] * 0,01)) ) * (1 - target[STRONG] * 0,01)


ELEMENT = The elemental power of the skill that is used (Equivelant to the ATK the equipped weapon has, but for magic).
WEAK = The element that is weak to the skill that is used. (beeing strong in one element makes you weak to another)
STRONG = Is the target strong against the element casted upon him?

These Formulas is based on that all creatures have an elemental resistance to all the elements in the game:


Check over at the class section for spells that might be added Class Basics






Back to stendhal refactoring page
Back to Stendhal main wiki page

Personal tools
Namespaces
Variants
Actions
Navigation
stendhal for players
portal
resources
Toolbox