Since Part One we have managed to put a lot of time into Vita development, and things are going very well.
We now have the shadowing and lighting all sorted, using a combination of real-time shadows and pre-baked light maps. We have worked on this a lot and have really nice results now – smooth high detail shadows with as many lights as we want to bake into the scene; we can get lots of nice colour and contrast variations in the levels with the right lighting. Our in-game visuals now match closely the test renders we get from Lightwave. Lights can be set as real-time, light map only or both. The real-time lights allow for shadowing of non-static objects and specular effects, whereas the pre baked lighting helps create much richer visuals for all the static objects; these also support full self-shadowing.
We’ve added real-time reflections in there; so nice reflective floors, water reflections and so on are supported. We haven’t done a water shader yet (the water doesn’t yet ripple) but that should be easy enough. Normal maps, specular maps and so on are all in and working too, so we are nearly at a point where we have final quality visuals.
Ambient Occlusion Render
We also added real-time SSAO (Screen Space Ambient Occlusion) – which is a rendering technique for efficiently approximating the ambient occlusion effect in real time. Oh – and proper Bloom, with a whole load of tweakable parameters. As the main artist I get very exciting when I get a debug menu full of graphics effects parameters I can edit, rather than say to Steve “Can we have this 5% more glowy and shiny”, and in response getting something that melts my eyeballs (sorry Steve ).
It all ran at about 5 FPS!
Not too much of an issue though as we added it all in a very non-optimal way initially, just to get it up and running. So the last few days have been spent on some serious optimisations, with a fair bit of back-and-forth with SCEE tech guys (thanks chaps – much appreciatedJ). We’re up to around the 20 FPS mark now but we’ve had to make a compromise and drop SSAO – although we’re looking at adding AO into the light map baking pipeline, which would then make it a ‘free’ effect (i.e. not taking up any GPU time).
Our light baking currently works by a sort of revers ray trace. It takes each pixel, works out what lights are visible from it, then taking into account type of light, distance and light colour etc. works out a lighting value for the pixel.
Our test bed project all along has been Pub Games, and I am happy to report that all environments (there are eight venues), equipment, interface and other art is now done. Sound effects are nearly there – but as usual I haven’t started the music. I always leave that until last as it requires a good solid few days of just writing music and nothing else.
The majority of the code is in-place, we are now finalising controls and adding support for the special Vita features (as I write we are adding functions to use the in-built cameras for player portraits).
We don’t have exact numbers yet in terms of overall scene polygons, but we have been able to add all the detail we need to into the scenes – far more than anything we have done before.
So the base scenes are about 20 – 30,000 polys (this is a mixture of quads and tris), the balls are several hundred each, the tables and dart boards another few thousand. This is way over double anything we ever did on other platforms such as Wii, and at a much higher resolution. We also have all the new rendering effects.
We’re not really finding too many geometry limitations – so far we can do what we want to do without many compromises, which offers a nice level of creative freedom.
Oh – and regarding the Vita itself, the more I use it the more I love it. I really hope its reaches its potential. I was encouraged by Jack Buser’s comments at GDC (he is the new head of Digital at Sony):
“Buser claims that Sony will “really open up a lot of [its] policies” compared to competing services, with a particular emphasis on making self-publishing as simple as possible.”
We’d like to suggest relaxing IPA a little (or ideally removing it completely) and for Sony to encourage all type of game experiences from AAA through to bite-sized casual gaming experiences (PSVita Minis PLEASE!).
Let us Minis publishers release Vita specific enhanced versions of our existing Minis.