1. BlastZone 2
  2. News
  3. Major technical improvements and bug fixes for BlastZone 2 (v1.30.0.0)

Major technical improvements and bug fixes for BlastZone 2 (v1.30.0.0)

A new update has been released for BlastZone 2 (v1.30.0.0), bringing major technical improvements and a few bug fixes.

The biggest part of this update is a newly overhauled VBO code path for the engine subsystem that processes geometric detail. Overall performance of this code path has increased by 35-75% depending on system hardware and settings, and triangle throughput has increased by up to 200%. This was originally exclusively used on Android for compatibility and performance reasons, but these improvements have made it the new default option on PC. It also has the most consistent performance across a wide range of hardware configurations. It addresses a performance drop issue for NVidia hardware running VeryHigh/Extreme terrain detail, and greatly increases Intel graphics performance across the board compared to previous releases. A new option was added to the external configuration program to switch back to the old DisplayList code path, as it is still the more performant choice for AMD/Radeon graphics, but only by a 10% margin.

The particle system has also seen big improvements for this release. Particle count efficiency has increased by up to 35%, depending on system specs and settings. This was achieved in part by increasing the amount of reused data between frames, and a new concurrent vertex streaming system.

Several optimizations have been done to reduce load times as well, both for game startup and switching scenes. These are a combination of serial and multicore optimizations, and running VeryHigh or Extreme quality terrain sees the most benefit.

Graphics hardware feature level checks have been added to the game as well, improving compatibility with old systems. Now, systems that don’t support OpenGL 2.0/3.0 will fallback to OpenGL 1.5. Also, systems that don’t support OpenGL 1.5 will fall back to earlier levels of 1.X, but going down too far compromises the experience. Despite the compatibility improvements, it is still highly recommended to stay within the minimum spec of the game.

The game executable and all dll’s have migrated to the VS2015+ runtime as well, so the old VS2010 runtime is no longer necessary.

A few bug fixes have been included in this update as well, detailed below.

Here are the full release notes for v1.30.0.0:
  • The game now defaults to a newly overhauled VBO-based draw call code path
    -This changes how geometric detail is managed in memory and submitted to graphics hardware, greatly affecting performance across the entire game
    -A new "DrawCallType" option has been added to the external configuration program to change this back to the old DisplayList code path if needed
    -This option can be changed independently from the version of OpenGL renderer used
    -There are 2 available options:
    "VBO" - A new draw call code path that provides the most consistent performance across the widest range of hardware configurations
    -This was previously only used for the Android version of the game, but is a viable option on PC now
    -This has been completely overhauled, including the following features:
    -Analyzes every model loaded and selects the most optimal rendering method for each one
    -When optimal, model data is transcoded to a compressed format in memory
    -Performance has been greatly improved compared to this same code path in previous versions of the game
    -Triangle throughput has increased by 100-200%, depending on how each model is built
    -Terrain triangle throughput in particular has increased by about 200%
    -General performance has increased by 30-75%, depending on the combination of hardware and settings
    -Scene change loading times are reduced significantly
    "DisplayList" - The draw call code path used for previous versions of the game
    -Option suggestions for each graphics card vendor:
    AMD/Radeon - DisplayList is preferred, being 10% faster than VBO
    NVidia/Geforce - VBO is preferred, it fixes a severe performance issue when using VeryHigh/Extreme quality terrain with DisplayLists
    Intel integrated - VBO is many times faster in all situations than DisplayList and should always be used
  • Added graphics hardware feature detection in several areas
    -If the OpenGL 2.0/3.0 renderer is used for hardware that does not support atleast OpenGL 2.0, it will automatically fallback to the OpenGL 1.5 renderer
    -If the graphics hardware does not support the full OpenGL 1.5 spec, the renderer will automatically fallback to the highest feature level supported
    -Can fallback to a minimum of OpenGL 1.1 if needed
    -Using these fallbacks will only occur for hardware below the minimum spec for the game, so features will be missing and graphics may not look correct
    -This was done to allow very old systems to atleast run the game, but in a compromised state
  • New optimizations for the particle system
    -Improved per particle efficiency by up to 35% depending on system specs and settings
    -More data is now reused between frames, reducing workloads on both the CPU and GPU
    -Dynamically switches between multiple rendering code paths to achieve the best performance depending on the number of particles on screen
    -Built a new concurrent streaming system for vertex data, improving frame pacing and performance
  • Improved game startup time and scene change loading times
    -Improved scene change time with multithreading optimizations
    -Improved startup screen loading time by improving per-thread performance for the model loader
    -The biggest difference is observed when using VeryHigh or Extreme quality terrain
  • Improved performance for VertexLit and NormalMap shaders
  • Added the ability to keep the command console open for multiple commands by pressing the tilde '~' button
    -The existing 't' single command hotkey is still available to use old behavior
    -Press Esc to close the command console
  • Added an option to turn off particles from the Configuration Program
    -This option was previously only available in-game
  • Fixed compatibility issues with the external model loader for a few model file format variations
    -All models currently included with the game did not cause any compatibility issues
    -This prevents new models from causing issues in the future
  • Fixed an intermission player booster not displaying when one player dies right before beating a level in a 2 player game
  • Fixed the player revive text occasionally flashing in a 2 player game
  • Fixed a startup bug that attempted to compile HUD models before OpenGL is fully initialized
  • Fixed a single incorrectly rendered frame after completing the startup loading screen
  • Fixed a potential OpenGL resource conflict in the particle system when applying new in-game video settings
  • Fixed particle emitters occasionally spawning too many particles when running at a low frame rate
  • Migrated to newer versions of a few 3rd party libraries
    -FreeType v2.10.1; Used for generating fonts
    -LibOgg v1.3.4; Used for music playback
    -cURL v7.66.0; Used for leaderboard uploading/downloading
    -SteamAPI v1.46; Used for Achievements, friends list, and Steamworks Online Multiplayer
  • Rebuilt a few 3rd party libraries with Visual Studio 2019 - Utilizes the latest compiler optimizations and bug fixes
    -LibVorbis v1.3.6
    -LibPNG v1.5.30
    -zLib v1.2.11
  • The game executable now requires a Visual Studio 2015 or higher runtime installed
    -This is now included with the Steam download, so it will be installed automatically

As usual, to make sure you have the latest update, launch the game and check the lower left corner of the title screen for “v1.30.0.0” or above. Enjoy!