Another big technical improvement update has been released for BlastZone 2! As mentioned in the last update announcement, BlastZone 2 underwent a huge codebase overhaul to modernize it and make it more forward looking. With this release, the graphics renderer has been completely rewritten to use OpenGL 3.0 shaders to render the entire scene. Almost all the fixed function dependencies have been removed for the new renderer and every stage of the rendering pipeline has been brought internal to the engine. Only one feature of the old OpenGL renderer remains, which is a key part in optimizations that boost performance by roughly 40-50%. The rest of the new renderer was written to target the OpenGL 4.1+ core profile, but this one feature would require the compatibility profile, so OpenGL 3.0 is being targeted instead. This is still a huge leap from the old OpenGL 1.5/2.0 hybrid approach of the old renderer. It is worth noting that the new renderer is backwards compatible with OpenGL 2.0, so this release doesn’t affect compatibility at all.
There is an internal build of the game that targets the OpenGL 4.1+ core profile, but the big cut in performance with no graphical upside makes it counterproductive to release at this time. It will only be released if performance can be equalized with the current OpenGL 3.0 renderer, or if exclusive features are added to make the performance hit worth it.
The OpenGL 1.5 codepath is still fully functional for older hardware. Not only that, but the new renderer also improves OpenGL 1.5 codepath efficiency, better managing API calls so fewer are needed to render the scene. This code path is accessed by changing the “Renderer” option in game.
Here are the full release notes for v1.28.0.0:
- Upgraded the main renderer to be completely shader driven and target OpenGL 3.0 -Eliminated the old OpenGL 1.5/2.0 hybrid approach to be purely OpenGL 3.0 now -Maintains compatibility with OpenGL 2.0 -Created new shaders for every object type in the rendering pipeline -The entire rendering system has been overhauled to almost completely eliminate every aspect of the old fixed function pipeline -Only uses a single feature from the old pipeline that is required for optimizations that boost performance 40-50% -The new renderer otherwise targets newer versions of OpenGL, but usage of this one feature would require using a compatibility profile to function -There is another codepath that targets the OpenGL 4.1+ core profile, but this has been disabled because it cuts performance with no benefits
- Optimized the existing NormalMap and Water shaders by removing unnecessary calculations
- Slightly optimized the OpenGL 1.5 code path by reducing the number of API calls -Created a better API call management system to eliminate redundant calls
- Updated sky clouds to render using a higher polygon count -Improves fog rendering when using the OpenGL 3.0 code path -Fixes potential rendering issues with some hardware/driver combinations
- Replaced the "Shaders" option with a "Renderer" option -This applies to the in-game setting and configuration application setting -Allows for selecting the "OpenGL 2.0/3.0" or "OpenGL 1.5" renderer
And here are the release notes for v1.28.1.0, bringing further refinements and improvements to the new renderer:
- Improved lighting for the water shader in the Home Planet environment
- Updated a few shaders to improve efficiency
- Updated fog calculations in a few shaders to use per-pixel accuracy to improve image quality
- Added a few new shaders to improve efficiency for specific situations
- Removed a few remnants of the old fixed function pipeline from the new OpenGL 3.0 renderer
- Reduced the cloud layer triangle count to improve performance, but still above older versions to maintain fixes for edge case rendering issues
- Completed the new OpenGL ES 2.0 compliant renderer (disabled on the PC version)
To ensure you’re using the new OpenGL 3.0 renderer, make sure you have version “v1.28.1.0” or higher. Enjoy!