Phew it was a lot of work, but finally the technology from game side is about done. I haven’t made many shaders in my lifetime, so when I set out to do some sort of semi ScreenSpace Ambient Occlusion to my engine I was a bit scared what would happen. Well it ate plenty of hours that’s for sure, but I now have something I’m fairly happy with. It has some artifacts and it’s not perfect, but compared to no lighting or diffuse lighting only it really rocks. Here is a screenshot:

A few words about the game. I’m sad to say my imagination didn’t carry me further than explosions =). The point of the game is to have every cannon fire (the cannons see here have 4 barrels). When a cannon is first hit by an ammo it fires (only once) all its barrels. Some of the cannons are fixed to a certain position, and some you can move. All of the cannons can be rotated however, and the “starting” chain cannon can be selected by the player. Also hitting walls will make a small hole to the wall, so you can strategically blast a holy through a wall to get to a cannon.
What is still missing is basically the game =). I have the exploding walls (courtesy or marching cubes level building), but I need to make the game logic (moving cannons, changing cannon directions, starting the game from a cannon, completing a level and choosing a new level to play). I also have to make some sort of level editor. I’m planning on hitting .NET and WinForms for that.
Now I only wonder. I use SINGLE as a gfx render target buffer (32bit floating point buffer, single channel). I wonder if that is supported on most PS2.0 hardware. Oh well, if I remember, I have to make a fallback to disable the AO effects if it’s not found.