Thursday 19 July 2007

Looking good while you bleed

Machinima fights should be easy. After all, fighting is what games do best, so all you need to do to make a fight in a machinima tool is do what games have been doing for a couple of decades. Right?

Leaving aside the issue that trying to shoehorn everything you can do in Mortal Kombat, Fight Night, Dead or Alive and World of Warcraft into Moviestorm, let alone all of them, is a pretty tall order, it's becoming increasingly clear as I get deeper into the design of the new fight system that doing so wouldn't give us what we want anyway. What we're creating is a movie fight choreography tool, not a fighting game, and they're very different. Just as movie fights aren't anything like real fights, movie fights aren't like game fights either.

For a start, a fight choreographer has to control both characters, not just one. This means you need a completely different user interface. It's not a matter of getting good enough at the game to land the punch and then the game AI works out whether your opponent crashes to the ground. You have to decide that you want to land the punch, and then decide whether the opponent goes flying or comes right back at you with an elbow to the top of the head. Fight choreography is a slow, painstaking business, where you have to think about every move made by every participant. On the other hand, if the tool is too slow, creating fights will be boring, so you need some short cuts, which means having a tricksy little system and some AI assistance when you want it. All of which adds up to a completely new style of user interface.

But equally importantly, the aim of a movie fight isn't to beat the opponent. You already know who's going to lose. It's to create an exciting action sequence and look good. This means you have to be thinking about how every move is going to look on camera, in close-up, and as part of an edited sequence. Fight games generally have fairly static cameras, which don't cut. Movie fights are usually the fastest-cut sequences in a film. As a result, all the fight choreography has to be made to work slightly differently. It's quite common in a movie to see the action and the reaction sequentially, even if they actually take place simultaneously. In a fight game, both fighters would drop into a crouch at the same time: in a movie, you'd see one guy drop into a crouch, then cut to another camera showing the second guy doing the same. (Sergio Leone takes this to extremes. Gunfighters don't actually take turns to finger their holsters and narrow their eyes. He just shows it that way because it looks more stylish, and allows him to direct the audience's attention to one thing at a time.)

The other thing that differentiates a movie fight from a game fight is that you have to be much more accurate with the animations. A lot of games, even recent ones, are quite lax when it comes to collisions. Swing a punch at someone's stomach, and it may fall short, or your fist might sink in up to the wrist. And when they double over, they may actually react to a blow to the solar plexus, or a blow from a slightly different angle. In the middle of a game, you don't really notice - you're too busy worrying about winning. But in a film, that really stands out, especially in close-up. Audiences want to get in close, and they are very sensitive to "faking it".

Of course we can, and will, use a lot of game technology and game techniques. But it's not a simple conversion if we want the fights in Moviestorm to have movie styling, not game styling. What we're learning is subtle, but should give us something that looks and feels very different to your typical machinima fight.

Tuesday 17 July 2007

Field of Depth of Field

Well after a week of swearing at the keyboard Mr. G's got depth of field up and running. It's looking really good and runs in real time, but will only be available on high end video cards. We're in a period of "consolidation"* so it'll be a little while before it's integrated and shipped.

* bug hunting. "No more new features until you've cleaned your bedroom".