Starting at 8AM, I started talking and did not stop until 2:20PM. After a cup of coffee, I had a conference call and talked intermittently for another 95 minutes. After 8 hours of continual chatter, I pretty much exhausted my tank for self expression!
A productive meeting, which clearly trivialized some items on the project list and magnified others. The top priority agreed by all was the matter of engine performance, overruling pretty much every other feature consideration. The demo itself performed well enough, with only smoothing and tweaking to bring it up to scratch, but the lack-luster performance clearly affected the whole experience. My PC is no slouch, not a high-end unit (three years old at least), but I should be getting MUCH better numbers from the frame rate.
The conclusion was that I should spend several DAYS just on performance, and keep drilling down until every lazy function and process has been chased from the software. To this end I began my profiling activity.
The art and science of profiling is the methods by which a programmer can determine which individual component of a larger more complex system is causing the greatest burden on overall performance. The identification of the most serious bottle-necks will invariably lead to rapid increases in speed, but finding them can be tricky.
To hand I have a profiler (all be it a simple one) in the engine already, tracking the time taken to execute each of the main processes. Right now the values returned do not make a whole lot of sense, showing 'AI and Physics' taking almost no time and 'terrain and misc' consuming over 80% between them. I also have the NSIGHT GPU profiler and compatible graphics card which will allow me to dive deep into the cost of the shaders and video memory I am using. I also have a full Intel developer suite, allowing me to make some very detailed profiles of the CPU and threading activity of the engine too.
I have the basis of some insanely precise profiling, all I am requiring is some fresh eyes and daylight. Having the green light from the management team to post-pone adding more assets and tweaks, and focus entirely on getting the engine as fast as possible is music to me, and I am sure that everyone on the list to receive the impending beta will also delight in this pursuit.
As I promised a screen shot, and I am sure the idea of a mini-game might have tantalized unduly, I attach one here for your consideration.
It shows all the slider panels the engine has so far, and as you see I am getting carried away with them. The backdrop shows a scene from my little game, just before the compound entrance and nasty enemies beyond. Past the buildings is a dock and freedom (well, a win zone).
What I really want to enter into evidence is not the completeness of the game or my make-shift scene, but the present FPS count of 21. My hope is to bring you another screen shot of much the same scene but a considerably higher number. All my energies this week will be to that end, and hopefully have some interesting stories for you as to where the bottle-necks where hiding.