Witcher 2 is a good game. It's a decent game, but the combat system is really frustrating.
You don't fight the enemies when you're playing - you're fighting the combat system.
It's like a diamond in the rough - sometimes it shines through, but most of the time, it feels broken.
Let me start ranting now.
You don't get to control Geralt
Geralt has many moves, from a quick thrust, pirouette slash, and the jumping around flailing with his sword like a monkey. The many moves are commendable since it puts variety to combat, but one problem ruins everything. You don't get to choose which attack that he does. Every time you push the button for attack, Geralt randomly chooses a move. It may be a horizontal slash, may be a thrust, may be a pirouette slash. There's no pattern for me to discern, there's no way for me to control him - if there is, then it's not properly introduced and explained.
Now don't tell me it's only animation - it's much more than that. A quick thrust with the sword returns control to you almost immediately, allowing you to quickly react to your surrounding foes. Jumping around like a monkey and flailing your sword puts you in the mercy of those that surrounds you. Sometimes I want a quick hit, sometimes I want Geralt to jump in whirlwind mode to score many hits. I need to pick and choose the appropriate attack for the appropriate situation.
You cannot plan your battle because every attack is randomized - Geralt is inconsistent. Sometimes he does X when fast attack button is pressed, at another time he does a completely different move. Imagine you're playing a fighting game, but the characters combos are randomized. Pressing the same attack button randomly produces different moves. Wouldn't that be annoying? You expect to see a simple attack but the character randomly chooses to jump attack to his own death.
If you're going to make a timing based combat game - you have to make every attack consistent. This way the players know what to expect when he is pressing a button. Right now, I don't know what the fast/strong attack button does. It's random. It's inconsistent. How am I suppose to time my attack with the surrounding condition if I don't know which attack will appear? It's like playing with dice. There's an opening, and if Geralt thrusts or swing with his sword he'll be able to hit quickly and regain control for parrying attacks by the surrounding enemies - I press the button, and voila - Geralt chooses to do his pirouette attack - four other enemies in the vicinity attack while Geralt is turning around like a ballerina, making him a dead white corpse. WTF.
Thankfully the strong style button is more consistent, so it's still somewhat playable - but you can't use strong style on everything. I'd wager that the game will be much more enjoyable if you remove all the fancy attacks and made the combos consistent. This way the player knows exactly how Geralt will react to his commands. Sure, you'll not get much variety, but at least the combat will not be frustrating. Look at Dark Souls/Demon Souls - no fancy randomized pirouette jumping and flying attacks, everything is consistent, and it becomes one of the greatest timing combat game of all time. There's a reason why everybody praises dark souls' combat while almost no one talks about Witcher 2 combat. Witcher 2 looks good on gameplay videos, but it's ploughing frustrating to play.
If you really want retain the fancy moves - then you'll have to create combo attack pattern, like those found in fighting games:
- Tap fast attack button 3 times to do a quick three slash combs
- Press forward button along with the fast attack button for thrusting
- Hold fast attack button to do a jumping whirind attack
- Press strong attack button 3 times to do three strong slash combos
- Hold and press strong attack button to do a pirouette strong slash
This way, the player controls Geralt completely - he is no longer at the mercy the random number generator. Of course the above is just examples, you can map the controls differently, maybe give us another attack button or choose a mixing pattern, like fast strong fast fast strong. I guarantee you it will be much more fun to play. I mean, man - we actually get to control Geralt this time.
Targeting system is broken
I have a sneaking suspicion that the game is not really using collision detection to determine if the attack hits or not. Too many times I find myself standing directly in front of an enemy, swinging swords like a madman, only to notice that the enemy doesn't get hit. It seems I have to actually have the enemy as a target for it to hit. There are lots of set piece conditions that made changing your target extremely difficult and downright impossible. Because previously targeted enemy is still near, it doesn't switch even though you already point the camera towards another direction. It's no fun.
I understand the need for targeting for signs, throwing daggers and bombs, but for melee? Why don't you just use collision detection for that? I'll point Geralt to where I want him to hit, and let collision detection determines which enemy his sword has hit. Why do I have to manually target melee enemies for the attack to hit?
In Witcher 1 you have group style immediately. In this game you actually have to be level 9 before you can hit multiple enemies at once. Why? Why is this a high level skill? You get to fight mobs of enemies early on in the game!
Oh, I almost forgot - enemy archers enters God mode when they are switching weapons? Why the plouging why? You Ard him - he's still standing. You attack - he always blocks, even though he is only at the beginning of unsheathing his sword. What?