Sunday, August 29, 2010

Press the Red button

Working on another computer is like cooking in a strange kitchen. All tool are missing or placed in a different drawer. After installing six million tools, I was finally able to work on the project again. Let’s see how many brain cells were lost during the last two weeks.

Noticed that more and more console games are using scripted "hit-the-right-button" sequences last years? God of War and Resident Evil are good examples of this. At some points, you'll have to hit the right (gamepad) button within a short time to dodge, climb-up, respond or uppercut your opponents through a window. Or more annoying, to dance with CJ in GTA San Andreas.

Button bashing is nothing new. Remember this? Sixteen billion pulses per second where needed to break through ruby. Poor SNES pads.

Personally I'm not a big fan of this. As you get older, your reaction time starts to get worse again. Really, I didn't finish God of War simply because I couldn't kill one of the boss characters that required a whole combo of pushing the proper buttons. Since I'm not playing that much with Playstation gamepads either, I just couldn't figure which button to hit. Square?? Where the hell, shit too late. Game over.

Then again, there are some exceptions. Resident Evil 4 for example contains a superb cinematic fight between Leon (you) and Strauser (Dolph Lundgren). It's good because it's just a cool piece of CGI. But instead of watching only, you also take part a little bit by dodging knifes occasionally. Like an interactive movie.

I had a new idea for this guy when falling half asleep... This won't be his final shape!

I'm more into the Halflife approach where the player never-ever loses control over our bearded friend. But having cinematic button-bush sequences can actually help you visualizing the scene precisely the way you want. Especially in horror scenario's where camera-work is crucial for the Boo! effect. You can't expect the player to be watching at the right places all the time, and the first-person view makes it even more difficult to focus on specific parts or to show player motions like climbing back from a abyss or making a counter-attack. Imagine a movie car-chase would be filmed from the lead driver perspective only… you’ll miss about half of the scene.

So I decided to look at some related options
- Taking over control of the player
- Using button(bash) as input for a motion
- Making an alternative temporary camera setup (shoulder cam, watch the player from the front, peek around a corner, etc.)

All possible, but again, you need to insert such features smoothly into an engine so it becomes available for the mapper/scripters in an user friendly way.

One of the better pictures if you ask me. The dusty sprites may need some softening though. This can be achieved by using the depthMap from the camera point of view. For each particle pixel, check if it's nearby geometry. Ifso, fade it out so that the intersections won't be visible.

It's already possible to let the player follow a fixed path (“railing”). But I needed to show a "PUSH! PUSH!!" button that gives impulses to how fast the player runs, instead of a predefined speed. With script functions I can adjust the rail following speed, or give a temporary speed boost (for button bash mechanisms). The boost pulse is also used as a shader parameter to temporarily highlight the indicator image. Although it can be fuzzy sometimes, quite a lot is possible with the scripting, triggers, railing and GUI definition files by now.

Run Dummy, Run! That Shift button looks a little bit odd though... Not the same as those candy Nintendo/Xbox buttons, or the symbolic Playstation ones. Anyway, it's now possible to put the camera somewhere else. Let it follow another entity, or give a fixed location. Ideal if you want the good old fixed Resident Evil1 camera.


  1. I'm not a fan of scripted push-button fights or cut-scenes myself, either (though the ones in God of War looked pretty awesome from the spectator's point of view, when I wasn't the one trying to keep up with the buttons). But your sprint scenario had me envisioning an "oh sh*t" moment that you might not be able to have outside of a scripted scene. You're being chased by the monster in the pictures down the hall, jamming the "sprint" button it's telling you on screen as fast as you can. Your character turns around to run from the monster, so the only time you can see it is when your character turns and looks over his(/her) shoulder. Well since the scene is scripted you have no control over when you sneak a peek at the monster. This lack of control plays a big part in creating tension in the scene, because it's the lack of control that helps put the player into a panic. One moment you look over your shoulder, you seem to be outpacing the monster. Turn back around and keep running. Next thing you know the camera flips back around and--the monster is practically on top of you!

    To mix things up a bit and make the scene less about hitting the right button at the right moment, maybe throw in multiple "correct" buttons. Maybe as you're running down the hallway, the opportunity arises to go left or right instead of straight ahead. You still have to react fast to go left or right, but there's no one "right" answer (or maybe there is, but it won't become apparent until a few yards ahead, when you run into a wall and get eaten).

    Maybe it's just because I don't do well with horror games (or movies/books, for that matter), but I think a scene like that in a game would freak me out.

  2. Hey! The scene wasn't supposed to be scripted at all, but while trying it, I suddenly realised that this monster would only be visible for a few seconds if the camera would remain First-Person. That doesn't have to be bad, but in case of a short showcase movie like this should be, the chase would look pretty boring. Lot's of going on, but you can't see a thing.

    Running with the camera on front is pretty difficult I guess, so that's when the button bash came in mind. It's only for a relative short distance though, through a straight hall. Correcting or dodging is probably not in here (also have to animate the 3D models, which is hard enough already for me!).

    But switching the camera a couple of times to make you wonder where that beast exactly is, is a good idea. I'll certainly mess around with that. Anyhow, adding these features to the engine is a good thing. Never know when they become handy!