Combat enhancements

From PSwiki
Revision as of 01:44, 28 April 2011 by Landson (talk | contribs) (Progress)
Jump to navigation Jump to search

(Go back to the main GSoC 2011 page)

Design Information

Abstract Description

Features Wanted

Detailed Implementation Plan

Task and Progress List

GSoC 2011 idea information

Skills needed

Our server and client are all coded in C++ and the database is MySql. For this project C++ knowledge is needed with little knowledge of mysql.

How combat works today

PlaneShift today allows the players to engage combat with magic, with melee (like swords, axes, .. ) and with range combat (like bows).

Players have the possibility to choose stances: full defense, defense, normal, attack, berserk, to tell the engine how much of their skills they want to use for defense or for attack. The monsters today always use normal mode.

There is a table which determines the effects of each type of weapon vs. each type of armor. For example a knife will make more damage against a leather armor (which can be cut) than against a chain mail.

All stats, equipment, skills, item stats and quality are considered in the combat sequence. The actual formulas are pretty complex, and give some realism to combat.

Player can use 2 weapons, or a weapon and a shield. Players can use items to boost their stats/skills and fight better.

NPCs/Monsters can be:

  • invulnerable (in this case you cannot even attack them)
  • peaceful but able to fight back. They will not attack by themselves unless provoked.
  • attack on sight. They will attack as soon as you approach them.

When you attack a monster you enter in his hate list, and he will chase you and attack you.

Combat is executed automatically by the server, the player can switch equipment, cast spells and move/run. If the player stands still in front of the monster, combat proceeds automatically until one of the two dies.

Progression is done through increasing your skills, stats and gaining new equipment. This allows you to fight better and face harder monsters.

Ideas for improvement

  • Progression just by increasing your stats is not fun after some time. We need to add new abilities which can be gained at certain ranks. Each ability should be special, and also have an associated animation. Examples can be: charge, blade dance, whirlwind of axes, ... Those may do a damage on multiple opponents, or ignore armor, or do extra damage to certain creatures, or multiply some of your skills, or change the way you use combat stances. Overall will be pretty good to have a way to script those effects, so can be more easily managed and don't have to be hardcoded.
  • Today if you stand in front of a monster, combat runs automatically, which may be pretty boring. Sure you can move, but you cannot really use different attacks or strategies. In general PlaneShift wants to be a roleplaying game where your character traits are well represented in game. For this reason we don't want to have the skills of the player influence too much the result of combat. As an example a combat UI where you swing all the time the sword, and you hit only when you are perfectly in synch with the monster is not something we want, because this will not represent the strength of your character. What we are seeking is a middle ground between player controlled and character controlled. We would like to be able to add different attacks and parry to a queue of events which is used during combat. So for example you could queue: special actions, spells, parries, swings, special attacks, dodging, ...
  • Today the chasing of monsters when in combat is pretty raw. In many cases they move on top of the attacker, and rotate wrongly, so they do not face the attacker properly. This has to be fixed.
  • ...