1. BlastZone 2
  2. News

BlastZone 2 News

Bugfix release - Multithreading fixes, log output, reduced vram usage(v1.32.7.1)

A new update has been released for BlastZone 2. (v1.32.7.1) This update makes a few technical improvements, such as debug log output, reduced video memory usage, and adding more advanced options. This update also fixes a few multithreading bugs, including rare instances of game speed irregularities and crashes.

One point not listed below is that the multithreading bug fixes also fix stability issues when running BlastZone 2 under Linux using Wine. There is no official port for Linux and it is not a supported way to play the game, but these fixes should help alleviate some issues for those attempting that path. Specific testing hasn’t been done for Steam Proton under Linux, but there is potential for better compatibility there as well.

Here are the full release notes for v1.32.7.1:
  • Reduced memory usage for Medium and Low texture detail settings
    -This was done by building a new texture downsampler that works for more textures
    -Reduces vram usage by up to 5-6mb for these detail levels
    -High and VeryHigh texture detail settings are not affected by this change
  • Added debug log output for initializing the OpenGL renderer
    -Outputs to the "GLinit.log" file in the game directory
    -This can be submitted to the developer if the game crashes on launch
  • Reduced the multithreading stack size to the default value
    -Uses less memory (~1mb)
    -Launches new threads slightly faster
  • Fixed occasional erroneous multithreading behavior for some systems
    -Fixed rare thread timing issues that could throw off the game speed
    -Fixed rare crash issues related to thread synchronization
    -This was done by changing how thread encapsulation is handled
  • Added new Advanced Options menu items
    -Particle Multithreading
    -Sound Multithreading
  • Disabled large address support
    -May fix compatibility issues with some systems
  • Adjusted particle precaching to reduce hitching in specific cases

As usual, to make sure you have the latest update, launch the game and check the lower left corner for “v1.32.7.1” or higher. Enjoy!

*Hotfix released 6/29/21 - Fixed a startup crash for some video cards

Improved performance, faster startup loader, improved gamepad support(v1.32.7.0)

A new update has been released for BlastZone 2. (v1.32.7.0) This update improves particle and rendering performance, has a new sound loader, improves startup loading time, and upgrades from DirectInput 7 to 8.

Improvements made to particle thread workload balancing can improve performance by up to 1%-10%, depending on the number of particles being processed and the number of CPU cores in the system. Performance gains will be closer to 1-2% in heavier load areas. Optimizations have also been made to draw call batching. This means when there are many objects on screen, such as bullets or enemies, performance will be increased by up to 5%.

A new sound loader has been built internal to the game engine, it no longer uses the “alut.dll” external library and it has been removed Also, the game startup loading time has been reduced by up to 87%. This was done by taking the heaviest area of loading, hundreds of enemy behavior script files, and loading them in the background once the main menu starts. The most important data will be ready by the time mission mode starts, so this won’t affect gameplay at all.

The DirectInput upgrade from 7 to 8 has no effect on XInput gamepads, but improves support for some devices.

Here are the full release notes for v1.32.7.0:
  • Improved particle system update performance by up to 1-10%
    -This was done by more evenly distributing the workload across CPU cores
    -The amount of performance gained depends on the number of particles on screen and number of CPU cores/threads
    --Performance gain is increased when there are more CPU cores/threads available
    --Performance gain has less of an impact when there are a greater number of particles on screen
    --For example, having a 10 core CPU running 10,000 particles, will result in up to a 1% performance gain
    ---The same CPU running 1,000 particles will reach up to a 10% performance gain
    -The amount of performance gained varies frame-to-frame, but results in more consistent performance overall
    --The lowest performance points received the greatest boost in performance, bringing them closer to the higher performance points
  • Built a new in-engine sound loader that eliminates dependencies on alut.dll
    -Removed the alut.dll file from the game
    -This slightly reduces game installation size, and uses slightly less memory
    -General performance of the loader is similar to the old system it replaces
  • Much faster game startup loading time
    -Startup loading time has been cut by up to 87%
    --Internal testing has shown loading times reduce from 8 seconds down to 1 second
    -Enemy behavior scripts are now loaded in the background during the main menu
    --By the time gameplay starts, the enemy data will be ready for use
  • Improved overall rendering performance by up to 5%
    -This was done by improving draw call batching
    -This performance boost has the greatest impact when there are many objects on screen, such as bullets or enemies
  • Migrated from DirectInput7 to DirectInput8 for non-XInput gamepads
    -This doesn't affect XInput gamepads at all
    -This improves general support for DirectInput devices, fixing potential bugs and compatibility issues
  • Increased the deadzone area for DirectInput devices to fix drifting issues on some gamepads
    -This doesn't affect XInput gamepads
  • Added a limit of 33 messages to the command console
    -Prevents using excessive memory in some circumstances
    -Prevents drawing offscreen messages

As usual, to make sure you have the latest update, launch the game and check the lower left corner for “v1.32.7.0” or higher. Enjoy!

Added a new Advanced Options menu (v1.32.6.0)

A new update has been released for BlastZone 2. (v1.32.6.0) This update adds a new “Advanced Options” menu to the game, reorganizing existing options and adding a few new ones. The external configuration program has been updated as well with similar changes as the main game. The release notes are pretty self explanatory for this one.

Here are the full release notes for v1.32.6.0:
  • Added a new "Advanced Options" menu
    -This is a submenu of the regular Options menu
    -Moved the existing "Renderer" and "Draw Call Type" options to this new menu
    -Added a few new options:
    --Game update multithreading
    ---Enabling this improves performance (default)
    ---Disabling this reduces input lag at the cost of performance
    --Particle helper threads
    ---Enabling this greatly improves particle performance (default)
    ---Disabling this can be used to test CPU core scaling performance
    --Display switch compatibility
    ---Enabling this fixes a bug for secondary displays for laptops with a discrete GPU
    ---Disabling this allows taking advantage of secondary monitors with greater than a 60hz refresh rate
    -Added in-game descriptions of each of the advanced options at the bottom of the screen
  • Added a new "Advanced Options" menu to the external configuration program
    -All new options and options moved mirror the same changes made to the in-game advanced options menu
    -Added a new "Show Advanced Options" button to show them (hidden by default)
  • The external configuration program now defaults to the Primary monitor when upgrading from an old version of the game

As usual, to make sure you have the latest update, launch the game and check the lower left corner for “v1.32.6.0” or higher. Enjoy!

Greatly improved particle CPU core scaling and bug fixes (v1.32.5.0) (+Hotfix)

A new update has been released for BlastZone 2. (v1.32.5.0) This update focuses on greatly improving multithreading core scaling for the particle system.

This update greatly improves particle system workload distribution to CPU cores. This improves overall particle performance for all CPUs with more than 2 cores/threads, and makes the amount of performance gained much closer to linear with the number of CPU cores/threads available. For example, a 6 core/12 thread test system has a 57% particle performance boost from this update, and now has a 5x performance boost when compared to single threaded performance. In previous versions, core scaling was closer to 3.2x for the same system. Also, a 4 core/8 thread test system now scales at 3x performance when using multithreading, compared to about 2x in previous versions.

As a measure of absolute performance, this latest release can run over 110k particles at 60fps on a 6 core/12 thread CPU, while previous versions were limited to 73k to maintain the same framerate on the same machine. Maximum particle counts seen in regular gameplay scenarios are around 20-25k at VeryHigh detail, so it will run at full performance on lower end, lower core count CPUs.

This update also includes a game-side mitigation for drifting issues that affects some XInput gamepads. This was caused by faulty gamepad hardware, and this update should fix it for most users, or at least reduce it.

This update also migrates to the latest Steam API release v1.51.(up from v1.46) This includes all the latest fixes and improvements for Steam functionality.

**A hotfix has been released for this update that fixes a critical Demo version startup softlock. This also includes a particle system precaching bug fix, saving about 30mb of memory.

For more details, here are the full release notes for v1.32.5.0:
  • Particle system now scales much better with more CPU cores/threads
    -Up to a 57% performance gain for particle system updates
    -This was measured using a 6 core 12 thread 4.0ghz CPU test system
    -Systems with more cores will scale better than this
    -Stress tests have shown over 110k particles running at 60fps with these optimizations
    -This was measured using a 6 core 12 thread 4.0ghz CPU test system
    -In previous versions, this same system would be limited to 73k particles to maintain 60 fps
    -The particle subsystem that calculates and distributes CPU thread workloads has been greatly improved
    -Speeds up the time it takes to calculate the workload for each CPU thread
    -Has the ability to launch all CPU thread workloads simultaneously
    -Greatly improves CPU core parallelism
    -Previous versions would gradually load each CPU core as the workloads were prepared, leaving some CPU cores idle some of the time
    -Performance now scales close to linearly with the number of CPU cores/threads available
    -This update does not affect machines with 1 or 2 CPU cores/threads
    -This requires atleast a 4 core, or a 2 core/4 thread CPU to take advantage of these improvements
  • Increased XInput gamepad analog stick deadzones by 25% to fix drifting issues for some gamepads
  • Migrated to Steam API v1.51 (from v1.46)
  • HotFix - Fixed a particle precaching bug
    -Reduces memory usage by about 30mb
  • HotFix - Fixed a startup soft crash for the demo version
  • HotFix - Fixed a text flicker when opening the final demo quit screen
  • HotFix #2 - Smoothed out particle emitter behavior for low framerates
    -Takes inter-frame time intervals into account when calculating new particles

As usual, to make sure you have the latest update, launch the game and check the lower left corner for “v1.32.5.0” or higher. Enjoy!

P.S. - You may have noticed most updates over the last year or more have focused on technical improvements and optimizations, with gameplay-related elements only getting occasional adjustments. This is because I’ve been working on a new game project that shares the same engine as BlastZone 2. All engine improvements I’ve been making for the new game have been released for BlastZone 2 so everyone can benefit from them. More information is coming soon!

Greatly improved minimum and average particle performance (v1.32.4.0)

A new update has been released for BlastZone 2. (v1.32.4.0) This update improves performance in a few aspects of the particle system and fixes bugs.

The biggest improvement in this update is a big performance boost when hitting the foreground particle cap. This dramatically improves the minimum particle update rate when the whole screen is filled with particles. This applies to all particle detail levels except for VeryHigh, as that doesn’t have a particle count cap. The amount of performance gain has a wide range and depends on the rate of new particles being spawned while the cap is reached. This ranges anywhere from about a 10% boost, all the way up to a 800% boost for extreme test case scenarios. In common gameplay scenarios, the boost is around 50-60% in specific cases, which is still quite substantial. Please note this only affects the asynchronous update rate of particle movement and has no effect on the framerate of the rest of the game.

Player ship booster particle rendering has been optimized to run many times faster, improving overall performance by 5-10% at all times during gameplay. This was done by combining all booster particles into a single draw call. It was the last remaining particle effect lacking this optimization after the v1.32.0.0 overhaul a few months back.

For more details, here are the full release notes for v1.32.4.0:
  • Improved performance for player ship booster particles
    -Improves overall performance during gameplay by 5-10%
    -This completely reworks how the player ship booster is rendered
    -In isolation, the booster now renders 20x faster
    -This was the last particle effect not upgraded to a single draw call from the v1.32.0.0 update
  • Greatly improved performance when the foreground particle limit is reached
    -Affects all particle detail levels, except VeryHigh
    --VeryHigh has no particle limit
    -Greatly improves the minimum update rate for particles in the most intense scenarios
    -Improves particle performance from 10% up to 800%
    --Depends on the rate new particles are being spawned
    --The 800% figure is from an extreme stress test scenario
    --More common in-game scenarios will be closer to 50-60% in specific cases
    -This update deletes the oldest particles when the limit is reached
    --In previous versions, older particles were culled out, but were still being simulated
    -This update has no effect on the rendered framerate of the rest of the game
    --Only improves the asynchronous update rate of particles
  • Improved particle multithreading when both foreground and background particles are on screen
    -Improves performance by up to 16% when both particle types are on screen
    -Makes no difference in performance when only foreground or background particles are on screen
    -The main game doesn't use background particles, so most players won't notice a difference
  • Added an opening fade in animation for the gameover screen
  • Fixed the gameover screen default menu selection being incorrect
  • Fixed a rare bug that didn't clear out all particles when changing scenes
  • Fixed rare background particle graphic artifacts
  • Slightly improved background particle rendering performance
  • Reworked how draw call and triangle counting is calculated for debug displays
    -Much more accurate now, previous versions missed some draw calls and triangles in the counting process
    -This is only used for debug displays, not used otherwise

As usual, to make sure you have the latest update, launch the game and check the lower left corner for “v1.32.4.0” or higher. Enjoy!