Started as a thread on Grimwell.
We always discuss about games, if they are fun or not, if they are boring or frustrating etc… One of the most important part of a “standard” mmorpg is the combat system, so… How would you build the “perfect” combat system for a “dream mmorpg”? The rules are simple: you can imagine anything possible with the current technology. If it exists on another mmorpg you can have it too, if it’s something new it must still happen inside the technical limitations that we know or imagine. So no negative ping gode, no broadband required and no absolute twitch.
Today I took the challenge myself and started to develop the combat system from the “dream mmorpg” I’m imagining and design from various months. So I’ll describe here the general “shape” of my idea. To begin with I need at least to explain the general principles of the character creation and management since the combat is tied to them. First: no levels. Woot! My game is based solely on skills. Both combat and miscellaneous skills work in the exact same way. They are in percents. Each character has a value that goes from a minimum of zero (with no modifiers) to a maximum of 150 (it’s possible to go above 100 even with no modifiers). Each time a character uses a skill, the server makes a check. So it rolls a 100 dice, applies possible modifiers (bonuses or maluses) and then the result is compared with the skill of the character. If it’s below it’s a success, if it’s above it’s a failure. Simple and smooth.
The characteristics of a character (Strength, Dexterity etc..) are fixed. The player won’t be able to increment them aside exceptions. Those exceptions are: by the use of magic equipment or as a side effect of a complex advancement system on the “planar levels” that I won’t explain here. So the stats aren’t meant to change directly with the progression. During the char creation the race will determine the values, so they are fixed. The same will be for the related stats. Health and mana directly depend on the stats so each players will be basically the same. A “tank” won’t be directly more “healthy” than a mage and the mage won’t have more “mana” than the tank. The only differences will be about a series of modifiers (armor used, magic, buffs etc..).
How a character advances? This again keeping a general glance and without delving. The whole progress of a character is related to: 1- Skills 2- “Tools” 3- Equipment. The skills are the general template of a character and the tools often depends directly on the skills. But they are a separate entity because you can get new tools even without related skills. So, if you reach 45% in “magic”, for example, you will unblock a new spell like “fireball”. But there will be spells and other tools that won’t be unblocked directly and you’ll have to research or gain them in another way. Now, how the skills go up? Not directly through the use. The WHOLE skill system is completely quest-driven. During your adventure in the world you’ll use the various skills to do stuff. When a skill is used (successfully) many times, the server “flags” it. You will see this in the UI. Once a skill is flagged it means that the skill can *potentially* go up but nothing will directly happen. To finally use the flag you need to accomplish something. It can be a PvE quest, it can be the kill of a major monster, it can be a PvP mission etc… These special events, when accomplished, will unblock the use of the “flag”. So, we assume that a character went through a quest and finished it. Now it will have to camp and rest. During his rest the player will be able to bring up the character sheet and choose two, and only two, precedently flagged skills. Plus he’ll be able to re-flag another one (I’ll explain later). When the two skills are choosed, the server will make a check. It will basically roll a 100 dice. If the result is *below* the value that the character has in that skill, the progression is failed, till the next attempt. If the result is *above* the progression is successful. This is repeated for the second skill choosen. After all the checks are done all the previous flagged skills (assuming that the character used more than two skills) will have the flag resetted aside the one that was re-flagged and saved by the character. The skill that is going to be improved now needs another check. The server rolls a 20 dice. And divides it by 10. The result is how much the skill is going up (going from a minimum of 0.1% to a maximum of 2%). So, let say that we have “stealth” at 40%, ok? We roll the 100 dice a first time and we score 78! Great, it means that the check is passed and the skill is going to be improved. Now we roll the 20 dice and we score 12. The stealth skill will then climb to 41.2 (original 40% + 1,2% of the 20 dice roll).
Now on the combat. I’ll explain just the melee to keep things easier. Each type of attack is obviously based on a weapon, assuming that even a fist is a weapon. Usually the player will have a different skill for every weapon type, but this isn’t directly true because there will be also a side-skill that will measure the “fondness”. So a character loosing a short sword will have the “fondness” reset to zero even if it will grab and use another very similar short sword. The weapon skill is the skill of the *weapon type* (short swords, long swords, axes, 2h swords, etc..) then the skill is modified by the “fondness”. This isn’t everything. Each weapon type has also two possible values. One to attack, one to parry. The character, on its own, will also have a dodge skill that will be always active but also directly modified by the equipment. It will have a low value, for example, if the character wears a plate armor, or a two handed sword, or a shield etc.. It will have an high value if the character has only a dirk. Shields and other non-standard weapons will also have attack and defensive skills (bash/block in the case of the shield). As far as the mechanic are concerned there’s no autoattack. Each “swing” is the result of a direct action of the player. Instead the defensive and reactive styles like dodging, parrying and blocking will be checked by default by the server. When a “possibility” for one of them triggers, the UI will show a power bar, near the character filling up quickly. The player will then be able to choose if to use the opportunity or not (will have effects on the tactic, so it can be also useful to avoid to parry or block to have then a different result). This will be as much “twitch” as possible since it must involve both reflex and tactics. At the same time I believe it can still be implemented by tolerating even a 800ms of ping. So semi-twitch and perhaps similar to EQ2 eroic styles.
As I wrote at the beginning also the attacks are normal checks on the percent value of the attack skill. So the player presses a specific attack and for each “swing” there will be a check server-side. The revolution here is that the opponent IS NOT involved. The “to-hit” roll is completely undependent from the opponent. If the server’s check on the skill is successful, it means that the attack landed. This means that newbies don’t have any penalty when trying to attack even a demi-god. They only need to use successfully their skill. Only at this point (if the swing isn’t a miss) the opponent is involved. This is when the server checks for a parry, a block or a dodge. Before the combat the player is in fact able to distribute a value as a “style”. So you can chose to tell a server to always try to dodge, or dodge and parry together but the prevalence of dodging… and so on. This is what is called a “defensive style”. The plan is built outside the combat as a preference to set. During the actual fight all the defensive “work” is made by the server and only when the possibility is triggered the player will be involved to decide if effectively use the it or not. This explains how the whole defensive work happens.
Back to the offensive part. All the gameplay is basically about this one since the defense is semi-automatic. As in other games there will be a bunch of styles to choose and here I had a lot of fun to create the system. The styles are selected in a similar way to what happens in WoW or DAoC. You have a quickbar and you can see there the options. Now the fun is that the quickbar isn’t built by the player, instead it’s dynamically shifted by the client/server. Basically you can only see in a specific moment what you can directly use. The combat will be fragmented into various, consequent phases. If you choose an attack in the phase 1, you’ll be able to choose directly connected styles in the phase 2. A different choice during the phase 1 will produce different possible styles to choose in the phase 2 (this is built like a tree diagram). This brings a great deal of dynamic into the combat. The skills basically exist as “chains” of events based on effects and countereffects. Each previous choice brings to a consequent one so the whole flow not only is fast, but it is also exciting because you need to quickly plan and choose your tactic. To make this more fun and compelling I added two “aids”. The first is a way to get easily the segmentation of the combat. Instead of defining each phase as “phase 1”, “phase 2” etc… These will be graphically represented by “rubies”. I plan that the game will have a max of five “chains”, so five phases or five rubies (it’s possible to go forward, backwards and reset. So you start always at phase 1, then you can move to phase 2, then to 3. At 3 you can choose to go at 4 or go back at 2 or even reset and go back at 1. As an example). These five rubies will have five different recognizable colors. So for example, phase 1 -red- phase 2- blue- phase 3 -green- phase 4 -violet- phase 5 -black-. At a glance you’ll see the phase you are in that moment and the styles available on the quickbar that are tied to that specific phase will be colored so that you can see directly if they’ll made you move to the next or the previous phase.
More on the styles: the styles represent the whole direct interaction. These styles are acquired in the standard way. For the design level they aren’t “skills”. They are “tools” (as defined at the beginning). Like a spell. They will be unblocked when you improve a skill. So when you reach with “short sword” at 40% you will unblock a new style, and so on till a max of 150% (catassing for the win! Reaching 150% in a skill is basically impossible since to go above 100% you need to score 98-100 with a 100 dice roll each time you try to improve). Special styles can also be acquired through PvP or quests. Each style will have an effect. They can give you bonuses to the next “to-hit” roll, they can give you bonuses to damage or defence. They can hit all the targets in front of you in an arc of 60 degree etc.. Plus they will apply, remove or interact with five set “states”. I haven’t defined them yet but I expect them to symbolize effects like “stun” “dizzy” “poison” etc…
Two important side notes: The first is that each phase/ruby will have a maximum of six different styles available, so from “1” to “6” on the keyboard. But I didn’t say that each phase doesn’t represent a single attack, instead each phase groups TWO consequent attacks that will be performed in combo. In this way form a side I slow down the the combat a bit since the plan goes on from two actions to two actions, offering a wider timespan, from the other side I added some finger-twitch fun :) In fact it’s true that you can choose on the keyboard pressing the keys from “1” to “6”. But you need to do that in combo, pressing also the secondary style that is represented by “7” to “+” on the keyboard. The second side note is an important value that I didn’t consider till now: the speed of a weapon. Since there’s no autoattack, the speed has a strong role into the combat, it defines directly how fast is the interaction (so the duration of each phase/ruby). Since each phase includes two attacks it means that for weapon with a 2 second speed a phase will last 4 seconds.
Final quirk: a player can also choose to do “nothing” in a phase. It can be a choice or it can be “lag”. This is a mechanic anyway. The fact that the players isn’t attacking actively means that the defensive skills are boosted up till the character will perform again another action. But still remember that if a defensive style is triggered the character still needs to choose and activate it dynamically. Movement is also considered as a bonus/malus over the defensive styles.
Basically the gameplay offered is a chain (phases/rubies) of combos (two attacks for each phase to select at the same time) paced by the speed of the weapon with defensive styles to activate as reactive, occasional events. The speed determining the pace can also be used to define playstyles. From the highly twitch based combat of a rogue, with super fast daggers, to a more tactical, slow view of a 2h sword guy.
Final note: a roll of 1-3 represents a critical failure. In the combat it means you’ll loose a few turns. A roll of 98-100 is a critical success and in combat represents double damage.