{"id":1523,"date":"2010-09-12T19:44:09","date_gmt":"2010-09-12T08:44:09","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=1523"},"modified":"2010-09-12T19:44:09","modified_gmt":"2010-09-12T08:44:09","slug":"designing-combat-system-2-0","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2010\/09\/12\/designing-combat-system-2-0\/","title":{"rendered":"Designing Combat System 2.0"},"content":{"rendered":"

Over the weekend, I’ve been working on setting up the new combat system for MMORPG Tycoon 2. \u00a0It’s still very much just a framework, but it’s starting to take shape.<\/p>\n

Here’s the basic idea:<\/p>\n

Each MMORPG game has a set of attributes. \u00a0The first attribute is “health”, and the player can set any number of additional attributes. \u00a0Health starts as full, and slowly refills over time, when damage is taken. \u00a0Other attributes might be (for example), “Energy”, which would be like Health, or “Rage”, which starts empty, and slowly drains to zero over time. \u00a0Any of these attributes can be set up to kill someone, if it reaches zero or if it becomes full. \u00a0(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)<\/p>\n

Moving on. \u00a0Each character ability has a number of “effects”, which can modify those attributes. \u00a0These effects can either be “once-off” or “Damage Over Time”. \u00a0For example, most attacks will immediately decrease the target’s health. \u00a0A healing spell, though, could increase the target’s health. \u00a0 However, it’d be easy to make a “bleed”-style attack which would do a small amount of damage every second for ten seconds.<\/p>\n

There are also a few “status” effect types. \u00a0These are your standard MMO status effects: \u00a0stun, root, slow, confuse. \u00a0These each have magnitudes (ranging from -10 to +10), and may be attached to any ability. \u00a0So for example, you could have a “flash bang grenade” ability which does no damage, but which applied a “stun” to the target. \u00a0Or alternately, a negative magnitude will undo those status effects.<\/p>\n

Abilities can have a “cost” associated with them. \u00a0You can use the “cost” to make spells rely on a “mana” attribute, or to do more complicated things; \u00a0you could very easily make an attack which did damage to both the user and to his target, for example.<\/p>\n

Abilities have a few other bits of configuration; \u00a0they 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. \u00a0Abilities, once finished, have a configurable “cooldown” period before they can be used again.<\/p>\n

Finally, abilities can be set to unlock at specific character levels. \u00a0So you can have a PC who begins with a basic “attack”, and only starts learning more complicated spells as they level up.<\/p>\n

(All of this is built into the PC AI system. \u00a0Newbie players really like simplistic combat mechanics; \u00a0they 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”; \u00a0they mostly just follow a strategy of using whatever biggest attacks they have available at any given moment. \u00a0However, more expert players will become bored with those simplistic mechanics, so it’ll be important to have a few fancier classes available for them. \u00a0The 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. \u00a0Of 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!)<\/p>\n

Can folks think of any big combat system pieces that I’m missing, here? \u00a0Between 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. \u00a0I know that Champions Online has added a “charge up” ability type to the list; \u00a0I’m not sure whether that’s really worth implementing here. \u00a0I think that between “click”, “toggle”, and “duration”, that pretty well covers the basics, I think?<\/p>\n

Actually, I seem to recall that WoW has a “global cooldown”, I believe, which lets some abilities put all other abilities on cooldown. \u00a0Is that worth modelling here as well? \u00a0It probably wouldn’t be difficult to do..<\/p>\n","protected":false},"excerpt":{"rendered":"

Over the weekend, I’ve been working on setting up the new combat system for MMORPG Tycoon 2. \u00a0It’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. \u00a0The first attribute is “health”, and the player can set any number of…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[24,25],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-oz","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1523"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=1523"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1523\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=1523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=1523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=1523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}