This update was focused on technical improvements. Improved performance, reduced memory consumption, new libraries, but also improved difficulty settings, status menu, online highscore (with the help of Game Jolt), some trophies, and other stuff.
Especially the performance-increase was quite significant (+50-65%) after I fixed some of the major mistakes I made.
Some basic OpenGL development Tips:
- never use glCopyTex[Sub]Image to write into a texture (only for compatibility), use framebuffer objects, even after re-drawing the scene the framebuffer is still 3-4 times faster
- never implement a particle system without instancing
- never use glGet-functions in your main loop, try to cache the values, those functions block, because they need to execute all remaining OpenGL-commands in the queue to provide the requested value as accurate as possible
- check your texture formats, if you don't need an alpha channel use GL_RGB instead of GL_RGBA (or something similar), it saves a lot of memory
- texture lookups are the most expensive operation in a shader, try to use them as few as possible
- gDEBugger and GPU PerfStudio are amazing tools to analyze, debug and improve computer graphics applications
Performance improvement in Project One (mid-tier test system):
140 fps -> 230 fps idle, 80 fps -> 210 fps under heavy pressure
This will be the last update for now. I got some side projects and much pressure at work.
The full Update Notes are available here. The game is available for free from here, from Game Jolt or from IndieDB.