Over the weekend, I’ve been working on setting up the new combat system for MMORPG Tycoon 2. It’s still very much just a framework, but it’s starting to take shape.
Here’s the basic idea:
Each MMORPG game has a set of attributes. The first attribute is “health”, and the player can set any number of additional attributes. Health starts as full, and slowly refills over time, when damage is taken. Other attributes might be (for example), “Energy”, which would be like Health, or “Rage”, which starts empty, and slowly drains to zero over time. Any of these attributes can be set up to kill someone, if it reaches zero or if it becomes full. (So, for example, you could have a “damage” attribute instead of “health”, which would kill the user when it became full, instead of when “health” became empty)
Moving on. Each character ability has a number of “effects”, which can modify those attributes. These effects can either be “once-off” or “Damage Over Time”. For example, most attacks will immediately decrease the target’s health. A healing spell, though, could increase the target’s health. However, it’d be easy to make a “bleed”-style attack which would do a small amount of damage every second for ten seconds.
There are also a few “status” effect types. These are your standard MMO status effects: stun, root, slow, confuse. These each have magnitudes (ranging from -10 to +10), and may be attached to any ability. So for example, you could have a “flash bang grenade” ability which does no damage, but which applied a “stun” to the target. Or alternately, a negative magnitude will undo those status effects.
Abilities can have a “cost” associated with them. You can use the “cost” to make spells rely on a “mana” attribute, or to do more complicated things; you could very easily make an attack which did damage to both the user and to his target, for example.
Abilities have a few other bits of configuration; they may be “click” powers, which just do their thing when clicked, they may be “toggle” powers which tick once per second until turned off, or they may be “duration” powers which tick a certain number of times in total. Abilities, once finished, have a configurable “cooldown” period before they can be used again.
Finally, abilities can be set to unlock at specific character levels. So you can have a PC who begins with a basic “attack”, and only starts learning more complicated spells as they level up.
(All of this is built into the PC AI system. Newbie players really like simplistic combat mechanics; they won’t be able to figure out more complicated setups which require them to use a weak ability “A” in order to later do big damage with strong ability “B”; they mostly just follow a strategy of using whatever biggest attacks they have available at any given moment. However, more expert players will become bored with those simplistic mechanics, so it’ll be important to have a few fancier classes available for them. The expert players love to manage more complicated interactions between their character’s attributes, if it means that they’re able to do more damage overall. Of course, they’ll be extremely unhappy if it turns out that their more complicated combat system turns out to be less effective overall than the simplistic one that the newbies are using!)
Can folks think of any big combat system pieces that I’m missing, here? Between configurable attributes and abilities that are click/toggle/duration and damage that’s static or DOT, I think that covers all the MMORPGs that I’ve ever played. I know that Champions Online has added a “charge up” ability type to the list; I’m not sure whether that’s really worth implementing here. I think that between “click”, “toggle”, and “duration”, that pretty well covers the basics, I think?
Actually, I seem to recall that WoW has a “global cooldown”, I believe, which lets some abilities put all other abilities on cooldown. Is that worth modelling here as well? It probably wouldn’t be difficult to do..