Saturday 3 December 2011

Getting Explosions Right

3D graphics are hard, because they take away some of your freedom as an artist. In 2D you can take certain liberties like not worrying too much about exactly how high up things are.

In Blackshift there's a game mechanic that goes like this: you step on a gun, the gun fires a bullet, the bullet hits an enemy, the enemy dies.

All well and good, but think about it: the gun is on the floor. The enemy is at the same level you are. Does the gun fire upwards? Will that look weird?  Maybe it's some sort of holo-gun and you just walk 'through' it to shoot it. If your view is strictly top-down, you don't have to think about it at all. The sprites move over each other and that's that.

There are quite a few situations like this I can think of in Blackshift, and I'll probably run into a few more as I go. The one I've made progress with today is explosions.

You see, those are a problem too, not because of depth issues, but just because
explosions are fluid, chaotic things and I'm trying to constrain them to a neat
grid system. In 2D you can get away with weird square explosions and nobody
cares because the game is already so abstract.

It's like how in chess, castles move about and horses jump around in L shapes,
and it's all good fun, but if there was an FPS like that, everyone would just be
like, "This is stupid."  Writing a game in 3D is like telling a story in great detail: it's more convincing, but unless you think it through it's going to be more obvious you're lying.

Anyway, I'm now satisfied that the explosions don't look horrible. There's still
room for improvement (damage effects on the floors would be nice) but for now
there are more pressing matters.

Onwards and outwards!


  1. It looks like your explosions go more than one square like the old games

  2. I never thought about such problems with 3D-graphics. You're right, in 2D it looks quite clear and simple. I hope you'll find your way, I really like your games.


Note: only a member of this blog may post a comment.