Adding player skill to melee fights

Started by
11 comments, last by Si Hao 15 years ago
Hello everyone, I've played my fair share of games involving players running about swinging swords or fists, and relying on random numbers or special conditions (i.e. monster not in blocking stance) to hit their target and do damage. In a way, I'm kind of tired of it, and I've wondered how one might increase the amount of player skill involved. I'm probably too used to the way MMOs do it by now (hit auto attack, mash a button here or there) but I'm looking to do the opposite. I want player skill to be the most important factor in whether or not they hit their enemy or block an attack. Sort of like the FPS way of melee fighting. More specifically, I'm in the design phase of a game that will involve lots of melee fighting and a little magic (fantasy based). I want players to actually master the use of weapons in game, and I want things like random numbers to be a secondary concern if I can help it. My plan involved some crazy use of the mouse to swing weapons in certain trajectories (with character "skill" adding a little fudge factor possibly), and quick time events to cast spells, but I'm beginning to wonder if this is impractical and if there's a better way. As an example, if a player wanted to slash horizontally with their sword, they might click the left mouse button and drag it across to the side. The game would recognize the motion and follow suit. Vertical slashes would be similar, thrusts might involve clicking the button and pushing up, things like that. Parries I envisioned being similar except using the right mouse button, or something like that. So if an attack was coming in from the side horizontally, you might right click and drag down to bring your sword down and block the attack. I'm beginning to think that this might just be too dang complicated and be nigh impossible to code to boot. I figure it's one thing to just track mouse movement and use kinematics solvers to move the sword tip around, but to make it look decent might be another altogether. I also fear that the player might never be able to learn to parry well if it's so complicated... but at the same time I don't want it to just be a random chance for the character to just throw the weapon up and block. Do any commercial games (or heck, even hobbyist) try to make use of such a system? Maybe not like mine exactly, but somehow making more use of player skill than swing vs chance to block? I feel perhaps my experience with MMOs and The Legend of Zelda might not cover the bases here. Any input is appreciated, I might need to rethink this game concept a lot if this isn't going to be practical at all. It's sort of the whole point. :) Edit: Oh, I suppose I should have been more specific. By player skill I really don't mean knowing when to hit a special button and save mana, or things like that. I'm talking more like the equivalent of having good aim in an FPS.
Success requires no explanation. Failure allows none.
Advertisement
Off the top of my head you might want to look into Die by the Sword

http://en.wikipedia.org/wiki/Die_by_the_Sword

Its at least a decade old and was a 3rd person actiony game. Fighting was basied on the player useing the number pad...press "4" then "5" then "6" and the character would swing the sword from left to right in a mid level cross slash.
Mount & Blade does almost what you describe. Rather than describe it in detail, I'll just point you to it: it's a helluva lot of fun, and there's a trial version at the developers website.
www.taleworlds.com
Eric Richards
Ah, thank you, that's exactly the sort of system I'm going for.

To be honest, it seems that this is implemented almost exactly the same way I thought it might would, and seems to have the same game design goals in mind. Fast swings hit harder, hit locations are very important, blocking involves simply moving the weapon between you and the enemy weapon and so on.

So, it's not a lost concept anyway!

Since I've never played the game and seriously doubt that I could now, is there any chance you could detail a bit more how the mouse actually controlled the weapon? My original idea was that the mouse would be used for looking around as well as attacking (third person camera), and an attack would be initiated by clicking the button and dragging the mouse. The mouse coordinate would represent the tip of the weapon or at least its most significant striking area, and the game would compute the approximate speed of the striking area and its effective damage from that. So to slash, click and drag the end of the weapon.

That really seems like an okay idea, and sort of falls in line with the game you linked to. However, I still feel that parries would be sort of clunky. For instance, a parry relies on both your hand position and the end of the sword, so I'm not so sure how to implement that. Parries could just be an attack movement that intercepts the enemy weapon though... What about pole weapons? Seems like there's going to be a bit more thought put into this than I expected, but that's fine.

Any more thoughts? Thanks for the input so far.
Success requires no explanation. Failure allows none.
The problem with what you're describing is that it requires (a) incredible reflexes, far more than what most gamers are going to have, and (b) incredibly solid control. It's not a matter of knowing precisely where and how the weapon will swing; it's a matter of the weapon swinging where and how the player wants it to swing, which is considerably harder to do.

I've seen great combat systems implemented poorly (Assassin's Creed) and seemingly boring combat systems work extremely well (Devil May Cry) simply because they're so fluid and hands-free. Complicated, realistic ideas sound great until you try to implement them. You quickly find that the most realistic approach is almost never the best approach. Your biggest effort is to keep fun in your sights. Once you lose sight of fun, your game disc becomes a coaster.

Sid Meier's Pirates was well-reviewed, but my personal feelings about the game are very bitter, particularly once you step out of the apprentice mode and no longer have the grace of highlighted action keys. The attacks/dance moves/whatever simply are not varied and distinguishable enough for me to know, within the half-second window allotted, which button I'm supposed to press. I love the game's style and concept, but I hate the game. (Also, being constantly boarded by faster enemy ships was seriously annoying. Captain-to-captain fights were probably the most boring mini-game, and they were also the most common.)

The best way I can think to pull off anything remotely close to this is to use bullet time between attacks, offering slower players a chance at hanging in there. This could tie into difficulty setting, or otherwise an option could be present to disable bullet-time for serious twitch gamers. A button-driven approach like Pirates would work fine, perhaps in conjunction with the D-pad or thumbstick to combine attacks/parries and movement, provided (a) the number of buttons is very conservative, and (b) the effects of pressing a button are readily apparent. Also, an extensive combat tutorial would be mandatory.

I guess I'm thinking of a more cinematic approach to combat, like Assassin's Creed but without the enemies who are invariably more powerful/numerous/responsive than our character. The single biggest issue is giving the player enough time to react without making it seem too easy. I felt cheated quite often when playing AC, particularly when the camera was effed up and I couldn't even see what the heck was going on. Which brings up another point: absolute situational awareness, read: no sloppy camera action.

I hope this helps a little.

GDNet+. It's only $5 a month. You know you want it.

Thanks Tom, every bit of that is noted and appreciated.

I think I agree with you, and more than anything one of my concerns was that players wouldn't be able to defend against anything. I could always make the computer stupid and slow, but that sort of takes the fun out of it too.

Bullet time I think I like as a possible help. I'd already intended to make one of the magic abilities the power to slow time somewhat, and this would be a simple addition. I definitely didn't want it to be the end all be all of abilities though... Determining how far to take it and when to use it though is going to take a bit of thought and tweaking. The camera I hope won't be an issue, so far the game idea is that it's going to be completely outdoors in an open area with enemies just basically thrown at you and you kill until they finally get you. Not a full length cinematic game, just something you whip out to have fun every once in a while.

I'm also concerned that you're right about it being a rather bad idea in general (realistic vs. playable), but I'm still looking for ways to remedy that. Again, I think you're right on about the possibility of the game completely misinterpreting what the player intended to do and frustrate them. Going to have to work with that to figure out a compromise.

The spell system I think is going to be fine though. The idea was that players would initiate casting a spell somehow (not sure yet, number key maybe corresponding to preset spells), then their character would begin casting the spell. The game would then display a symbol on screen that the character was drawing in the air, and the player would have to move the mouse over specific spots of the symbol in a specific order to complete it (all well marked and memorizable: the same spell is cast the same every time). Perhaps that could be extended to the combat system in some way as well? Maybe the game determines where the player should move the mouse to swing accurately and gives them visual cues?

Again, thanks everyone for the input so far. It's definitely getting my thinking going.
Success requires no explanation. Failure allows none.
One idea is to make a very simple mouse gesture system.

Like the OP was suggesting, that if the player holds down a button, then moves the mouse in a certain way, the computer will recognise this motion and perform the desired action.

The simplest way to do this is to just look at the X and Y offsets (as a ratio of each other) and use this as the determining factor for the motion of the mouse.

If the ratio of X to Y is above a certain threshold (say +1 X to -1 Y. That is for every pixel the mouse moves to the left, the mouse moves a pixel down). This would indicate that the mouse is moving Diagonally. This would then be used to trigger maybe an over head downwards slash of the sword.

If the ratio was more like -1 X to +0.2 Y, although this is not a perfectly flat movements, it still is close enough to a horizontal motion for the system to recognise it as been a horizontal slash command (from left to right).

You can then detect how far off the ideal motion the movement was and use that to determine how effective the attack is. It would be best to allow a small amount of error before applying the loss, and also not to have the loss as a linear function (maybe an exponential error effect) which further give a bit of leeway to the player, but still give inaccurate motions an effective penalty.
Make sure you play Mount & Blade to see how they did it: it has one of the most playable skill based melee systems i've ever experienced. You can see it in action in the starting town by doing some tourneys.

They have streamlined things slightly (blocking for example) - but it _works_

It is intensely fun & satisfying while still remaining skill based. Mounted combat in particular.
Quote:Original post by gambrinous
Make sure you play Mount & Blade to see how they did it: it has one of the most playable skill based melee systems i've ever experienced. You can see it in action in the starting town by doing some tourneys.

They have streamlined things slightly (blocking for example) - but it _works_

It is intensely fun & satisfying while still remaining skill based. Mounted combat in particular.


Alright, I'll definitely check the demo then. I don't forsee any mounted combat in my game, but if the system works regardless then hopefully it will be portable, perhaps with a few changes to make it work for my particular game.

Thanks again all.
Success requires no explanation. Failure allows none.
Quote:Original post by Telgin
Quote:Original post by gambrinous
Make sure you play Mount & Blade to see how they did it: it has one of the most playable skill based melee systems i've ever experienced. You can see it in action in the starting town by doing some tourneys.

They have streamlined things slightly (blocking for example) - but it _works_

It is intensely fun & satisfying while still remaining skill based. Mounted combat in particular.


Alright, I'll definitely check the demo then. I don't forsee any mounted combat in my game, but if the system works regardless then hopefully it will be portable, perhaps with a few changes to make it work for my particular game.

Thanks again all.


I'm working on a similar issue with my design, which is an FPS style sword and sorcery game.

Using IK I think would as you pointed out have a lot of major issues, so I've elected to go the "mortal combat" style. where X mouse gesture along with X, X, & X button press executes "Special Move #1".

I haven't tackled this part in code yet but something to consider, rather than wrapping mouse movement into sword movement is simply mapping mouse gestures into certain sword attacks. ALso, do try Mount and Blade, its quite a bit simpler than what I have in mind but as others have pointed out the combat is interesting.

"Let Us Now Try Liberty"-- Frederick Bastiat

This topic is closed to new replies.

Advertisement