Programming question (action games)

I was thinking about God of War in the shower just now (yeah, I don’t know what that means). Anyway, it occurred to me that a large part of why the game is so good is that the controls are just tight. It does what you tell it to do. Many of the action games I’ve played and not liked had slow response times. Why is this? It would seem like tight controls would be the number one focal point of any action game. Is it somehow hard to make them work?

As street fighter proved, it’s all about when you can cancel a current animation and start the next.

Combat systems are hard to get right because in order to be implemented “tightly” they rely on many disciplines working together for a long time, hunting down tiny and often hard to indentify variables and improving them in a vast system.

Animators, coders, artists and designers have to spend a lot of time tweaking things ranging from timing their animations to fit the design to handling collision detection and AI behaviour, “soft” targeting, satisfyingly snappy particle effects, movement derived from combat animations, designing and implementing “branching” combat animations and a ton of other stuff. When a combat system winds up feeling “tight”, its the result of a great deal of things coming together. The amount of games that wind up feeling “sloppy” is testament to just how hard it is to see all of these things through.

I’m designing an action combat title right now, and it’s a bitch.

One secret (also gleaned from Street Fighter) is you want you attack animations to be almost instantaneous, and put all your visual feedback into the follow-through.

Nice explanation, Kristian. I never thought of the animation issue. So it isn’t just a feedback issue (meaning time from pressing button to action).

What about the combos? In GoW, some moves are done through a combination of buttons (pretty common in action games, obviously). How do you distinguish between a combo and a bunch of moves? In other words, if I hit triangle, square for a combo, is it tough to keep the game from just doing a punch, kick?

For combos, most games rely on ‘windows’ - you press the first button, you start the animation, and if you press another button during a period of that animation, the system queues up (or interrupts immediately and starts) the second part of the combo. If you press the button outside of the combo window, you do the basic ‘kick’ etc.

Like Andrew said, it’s a bitch. I’ve been doing a lot of work on combat controls, target selection etc during combos recently & there’s a heck of a lot of iteration & tweaking involved in getting it feeling right.