Combat enhancements

From PSwiki
Jump to navigation Jump to search

GSoC 2011 > Combat Enhancement



The idea here is to give combat a little more flavor and variety than what is currently available. I feel combat should have multiple types and varieties of attacks. The most important part of combat in PlaneShift though is the roleplay. PlaneShift is unlike other MMORPG's in the fact that it is not a grind power fest, it is about immersing yourself in the game and being your character. So instead of the typical twitch style combat, I feel it is important to make the combat a roleplay experience in and of itself.

Combat Design

Current Design

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.

Goals

An Attack Style System

  • Attacks can only be executed in certain stances
  • Attacks that can only be executed by holding certain weapons
  • Certain armors maybe hindering power of certain attacks?

Queuing System

  • Attacks can be added to a queue through a hotbar
  • The attack queue would be shown in a UI element
  • if nothing is in the queue then the "normal" attack is used

Differentiate between range and melee

  • add a quiver equipment slot
  • Maybe the closer you are to the monster, the more damage the hit does; this gives range a unique mechanic in that your using it to be farther away and be safe, but getting closer will allow more damage, so you have to find the sweet point where you are far enough away to be safe, but close enough to do enough damage.

Special Effects

  • the idea here is to make some attacks have less power but have a chance at a special effect that will affect the outcome of a battle
  • one potential idea is poisoning....if your character is more of a villain, or a rogue type of character, they may prefer attacks that poison
  • temporary paralysis?
  • extra damage to certain creatures
  • ignore a percentage of armor
  • Boost current stats
  • always attack a certain target location
  • Do extra decay to an enemy weapon
  • This list would be a good start, as I said it would be easily extensible so more can easily be added.

Misc.

  • make single wielding and dual wielding matter, for instance a dual wielding attack may do half the damage per hit, or maybe even less but give a better chance at a special effect?

Technical Details

Goals and Deadlines

Part 1

DeadLine: June 10th

  • Create the attack database and include a few example elements.
  • Design and implement a new combat manager(This will be a base, not the finished product, it will be tweaked as needed through out the rest of the process).
  • Implement the queueing system
  • Include the queue in the psCharacter, so that each character has it's own queue, required as part of combatManager.
  • Make CacheManager Load Attacks up from the database at startup
  • adjust the combat damage MathScript to allow for Multipliers
  • Create psAttack to as a data structure to hold the attacks in cache as well as in the queue, and to be used in combatManager.

By The End of Part 1, I expect combat to be useable much as it is today, it will be more of a base system without any real new features. But it is meant to be extendable to make rest of development easier.

Technical Designs