Sunday, April 18, 2010

Doctor, my balls

Not much to show this week, except this MAG-lite maybe...

Not the most difficult 3D model, but I like the cubemap reflection. The engine updates a cubemap nearby the camera every cycle so the reflections are realtime. In fact, you can even see yourself in that flashlight reflection. Now the flashlight still needs to get picked up, added to an inventory, be selected, show up in the
player hands, switched on and off, ....


Other than that, no screenies this week. Not that I didn't do anything, but hey, sometimes it takes more than just a week to get your things done. Most programming work is background stuff that no one will ever notice, except that the product as a whole works (or not). No, if you want to take credits, you'd better do the art or sound. The dirty programming work is for geeks anyway.

I continued my listing that the punch animation produced last week. Making material/impact matrices for example. What happens if a bullet hits cardboard? Or when a fist hits metal? Sound, decals, debris and sprites will differ.


More interesting might be the damage system. Of course we want our enemies to drop dead after a while. Or finally start to make some competition by giving your player health as well. So far I can run/fly as an immortal God through the worlds. There are no annoying game rules, puzzles or healthbars that can stop you. Which is why this game doesn't feel like a... game. So far.

Now managing health can be as simple as "player.health = player.health - damage;". You don't need to be a programmer to understand that line. But why not making it ourselves ridiculously difficult? So that is not what we're going to do. Models can have multiple physical volumes for collision detection. A humanoid would have a head, chest, upper arm, lower arm, and so on. When a entity gets hit by a bullet, fist, collision or other type of damage, the "hitzone" will be extracted from that collision model. Then each hitzone has its own properties such as health, damage amplifier, armor, python script callbacks and "ouch" animation. This way you can introduce headshots, weak points for boss characters and do Bob Sagett homevideo's after a brickstone was thrown at someone's balls.

Now that is not completely new. Goldeneye and Perfect Dark badguys also made a funny jump after firing a bullet into someone's butt. And every gamer knows that you should aim for the head. Who said games aren't educating? However, I hate the fact that enemies in most games still do not seem to have much pain. You just sneaked behind someone and shot his skull with your Charles Bronson Wildey .475 Magnum. Instead of dropping dead or at least inspecting if his brains are still there, he immediately turns around and kills you. What the hell?

I want the enemies (and yourself) to suffer. If your knees are hurt, you can crouch. If your arm hurts, you first need to visit your mama for a kiss before you can use guns and baseball bats again. If you bleed, you'd better treat your wounds first, or you'll die. On the other side, it shouldn't be able to kill an enemy just by shooting his toes 20 times. There will be a difference between vital and non vital parts. And when an entity dies, we want torn off arms, break tables in two, decapitate people, exploding barrels, breaking glass, snapping wood, and so on. Violence!

No comments:

Post a Comment