Despite the activity on this blog, I’ve actually been quite hard at work on this game. The last few days have been filled with quite a bit of shadow mapping optimization which has proven to be much more complicated than I originally thought. Shadows are probably a good chunk of the reason why most people go with pre-built game engines instead of developing their own, but I finally got shadows working reasonably well!
I’ve also spent quite a few days trying to get the frame rate up for the actual game by optimizing the rendering engine. I’ve made some small strides here but honestly the main cost in terms of performance seems to be the grand total accumulation of just “alot of OpenGL api usage” to draw roughly 250 separate objects in the scene. When I turn off the root call (entity render) for the entire scene, the framerate goes sky-high, but when I comment out smaller parts or optimize entire sections of code such as my prepare to draw methods (setting up uniform state), I get very small gains. This leads me to throw up my hands and say “screw it” at least for awhile. I get roughly 60 fps when close to buildings (thanks to occlusion queries) and about 30 when viewing the whole street on my Geforce 650 m card. That’s going to have to be good enough for what should remain a small game project. I really don’t want to get sucked into too much more low-level OpenGL optimization for this project. Surprisingly, my older laptop from 2009 gets 20 fps (still pretty decent) and the iPad Air gets a very decent rendering performance too. Perplexing… but I’m all-around pleased so I’m moving on from performance optimization for now…
After all this craziness, my next step is to finally start texturing the character model and making sure he still animates properly when textured. My character artist wasn’t able to texture the model so now this falls onto me. This hopefully shouldn’t be too bad. I’m planning on doing the UV texturing within verto to avoid more problems with 3D file format conversion. It should work out fine, as long as I make sure I absolutely do not modify the vertices of the model when I do the texturing, as this will break the references inside of the animation skeleton structures. Fun stuff. More to come soon…