BlastZone 2 cover
BlastZone 2 screenshot
Genre: Indie

BlastZone 2

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!

Maintenance Release (v1.32.3.5)

A new update has been released for BlastZone 2. (v1.32.3.5) This is a maintenance release that makes a few technical improvements to the game engine.

Terrain loading speed on startup has been improved, primarily for running the game from a mechanical hard drive. The biggest difference can be noticed for VeryHigh and Extreme terrain detail.

For more details, here are the full release notes for v1.32.3.5:

  • Optimized background particles CPU load
    -Improves CPU-side performance by up to 38%
    --Combines multiple particle update operations into a single pass
    --The main game doesn't use background particles, so most users won't see a difference in performance
    -Does not affect foreground particles (explosions, bullet trails, etc)
  • Improved terrain loading speed on startup for mechanical hard drives
    -Makes the biggest difference for VeryHigh and Extreme detail terrain
  • Fixed a rare issue when the startup loading bar or score uploading bar may briefly not display the correct fill value

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

Leaderboards fixed!

The world leaderboards are now fully functional again! Apologies for any inconvenience, as they were down for a while following a server migration. All score data has been fully recovered as well.

Please note, this is a server-side fix and does not require a game client update to work.

PS: I've noticed a number of players have surpassed me (EagleEye) in the leaderboards! I accept the challenge, and will be working hard to regain those top spots! ;)

Improved sound multithreading, dialog box scripting, loading bars (v1.32.3.4)

A new update has been released for BlastZone 2! (v1.32.3.4) This makes a few improvements to sound system multithreading, including a new sound event handling system. This fixes many very rare crash issues and rare missed sound events. These issues may have never been seen by most players, and required very specific timing of thread collisions, but have now been addressed.

This update also improves the dialog box scripting system. The effects of this aren’t noticeable when playing the game, but makes it easier to adjust dialog boxes from a development standpoint. Also, loading bars have been completely reworked, improving progress smoothing, rendering performance, and being better designed so more improvements could be made in the future with less effort.

For more details, here are the full release notes for v1.32.3.4:

  • Reworked the way sound system events are handled
    -Fixes very rare crash bugs related to audio multithreading
    -Fixes very rare instances of sounds not playing
  • Updated dialog box script file format
    -Uses slightly less disk space
    -Makes it quicker and easier to change dialog text
  • Reworked loading bars
    -Improved smoothing of loading bar progress
    -Optimized rendering and multithreading support
    -Applies to the game startup loading bar and the leaderboard score uploading bar
    -Unifies all loading bar logic to prevent bugs and makes it easier to make more improvements in the future
  • Added antialiasing to the startup loading screen and the leaderboard score uploading bar

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

Particle system improvements (v1.32.3.3)

A new update has been released for BlastZone 2! (v1.32.3.3) This makes a few improvements to the particle system, including a fix for occasional explosion particle flickers. Also, the maximum CPU cores/threads supported by the particle system has been raised from 16 to 128. This allows the particle system to take full advantage of any consumer CPU available. The previous cap was set to prevent bugs before the big particle system upgrade in the v1.32.0.0 release. Extra time for testing was taken since then to ensure stability before increasing the cap.

This update also makes improvements to the texture loader, now supporting full texture format autodetection. For more details, here are the full release notes for v1.32.3.3:

  • Fixed occasional flickering explosion particles
  • Increased the particle system CPU core/thread limit from 16 to 128
    -The particle system now fully scales to 64 core, 128 thread cpus if available
    -Older versions had bugs with using more than 16 threads, but improvements from v1.32.0.0 fixed them
    -Extra time was taken to test high thread counts to ensure stability
  • Added support for automatic compressed texture format detection
    -Allows for swapping out compressed textures of different formats without needing to update the game executable

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

Improved enemy bullet rendering (v1.32.3.2)

A new update has been released for BlastZone 2! (v1.32.3.2) This is a smaller update that improves enemy bullet rendering and a few other adjustments. Occasional Z clipping issues for background enemy bullets have been fixed, and the front of bullets have been made more prominent.

This update also improves the final player death red screen fade. For more details, here are the full release notes for v1.32.3.2:

  • Fixed occasional Z clipping issues for enemy bullets in the background
  • Made the front of enemy bullets more prominent than the tail to improve visibility
  • Fixed the final player death red screen fade not affecting enemy bullets, particles, or the HUD

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

Player ship booster improvements (v1.32.3.1)

A new update has been released for BlastZone 2! (v1.32.3.1) This is a smaller update that makes a few improvements to the player ship booster. The way the booster is rendered has been improved to both fix occasional Z clipping artifacts and slightly improve performance.

Here are the full release notes for v1.32.3.1:

  • Fixed occasional Z clipping artifacts for the player ship booster
  • Slightly optimized player ship booster rendering

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

Added a new “Desktop” resolution option (v1.32.3.0)

A new update has been released for BlastZone 2! (v1.32.3.0) This adds a new “Desktop” resolution option to the game, supporting any resolution not previously listed as a discrete option. This is done by matching the current desktop resolution and automatically adding black bars for any non-16:9 aspect ratio. This also allows support for vertically oriented displays while in fullscreen mode.

This update also changes the default resolution to “Desktop”, making the first time running the game more seamless. All the performance optimizations made over the years should make the game run well at the desktop resolution for the vast majority of systems.

Here are the full release notes for v1.32.3.0:

  • Added a new "Desktop" resolution option
    -This auto detects the resolution to run the game at depending on what the current desktop resolution is
    -This allows for running the game at any resolution not previously supported as a discrete option
    -This also allows for running the game in fullscreen mode for vertically oriented displays
    -Any resolution that doesn't use a 16:9 aspect ratio will automatically have black bars applied to it
  • Changed the default resolution option to "Desktop"
    -This provides the best display compatibility by default when first starting the game after a fresh install
  • Updated the external configuration program to include the new "Desktop" resolution option

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

Added monitor switching support (v1.32.2.0)

A new update has been released for BlastZone 2! (v1.32.2.0) This adds support for monitor switching for multiple monitor setups. In previous versions, the only way to start the game on a different monitor was to change the primary monitor in the Windows settings. Now, the monitor used to start the game on can be switched using the options menu in-game, or the external configuration program. The default value is “Primary”, which uses the same behavior as previous versions.

Monitor switching also has a hidden “MonitorSwitchCompatibility” option in the game config file. This is enabled by default, and it ensures monitor switching works with all systems. The drawback is that monitors other than the primary one will be limited to 60fps when vsync is enabled for high refresh rate displays. Disabling this option fixes this issue and ensures the framerate on every monitor correctly matches vsync. However, disabling this option also causes the game to hang on startup for some NVidia Optimus laptops when using a secondary monitor.

Here are the full release notes for v1.32.2.0:

  • Added support for selecting the monitor to display the game on for multimonitor setups
    -Previous versions only displayed the game on the primary monitor
    --Running the game windowed could be moved to another monitor, but would always start on the primary monitor
    -To change monitors, adjust the "Monitor" option in the game's Options menu and press "Apply"
    -Allows for running the game fullscreen on a secondary monitor without workarounds
    -The default value is "Primary", which always selects the main monitor, no matter which monitor number it is
    -There is a hidden "MonitorSwitchCompatibility" setting in the config file
    --The default setting is "Yes"
    ---This ensures monitor switching works correctly on all system configurations
    ---However, all monitors other than the primary monitor will be limited to 60fps when vsync is enabled
    ----The primary monitor will still work okay at over 60fps with vsync enabled for high refresh rate displays
    --If this is set to "No", all monitors with refresh rates over 60hz with vsync on can achieve frame rates above 60fps, but has compatibility issues with some systems
    ---One test laptop using NVidia optimus graphics with Intel integrated graphics has a startup hang when running the game on the non-primary monitor
    --This should be left as default for most users
  • Built entirely new code to handle changing the monitor resolution when running in fullscreen code
  • Added a new monitor selection box to the external configuration program
  • Fixed potential compatibility issues with a theoretical future OpenGL 5.X release
    -This ensures that the maximum version used is OpenGL 4.6
    -If a newer version of OpenGL beyond 4.6 is released, BlastZone 2 will need to be updated with explicit support for it to be used

Enjoy the added convenience for multiple monitor setups!

Native XInput support and UDP multiplayer data syncing improvements (v1.32.1.0)

A new update has been released for BlastZone 2! (v1.32.1.0) The big feature of this update is adding native XInput support for gamepads. This expands gamepad compatibility and adds several new features, including hotplugging support, more descriptive button binds, and binding to triggers. Previously, XInput gamepads were supported through a DirectInput compatibility layer, but some gamepads could not work this way. Most users should use the new “XInput” option in the game options menu, it will automatically use the specified gamepad number without having to set it up manually. The old “Gamepad X” options are still available for legacy DirectInput-only gamepads if needed, but won’t be available if only XInput gamepads are connected.

Another big part of this update improves data syncing for UDP multiplayer, both for DirectIP and over Steamworks. If the connection between players becomes poor, or there is a short connection interruption, the client can now detect this and request a full data resync from the server. This fixes occasional corrupted or missing objects on screen for the client and provides a more stable experience. Countermeasures for connection quality issues were already in place in previous versions, but this provides an additional “last resort” recovery if other methods fail. UDP and Steamworks are the recommended ways to play online multiplayer, but the TCP option is still available if needed.

There are also a few bug fixes and improved particle time scaling. Here are the full release notes for v1.32.1.0:

  • Added native XInput gamepad support
    -Previously, XInput gamepads were supported through a compatibility layer with DirectInput
    --This worked for most gamepads, but some had compatibility issues with this
    --Many XInput-only gamepads that were previously incompatible will now work correctly
    -DirectInput is still supported, but its only used for gamepads that do not support XInput
    --To use DirectInput, select an explicit controller number in the config screen, the same as previous versions
    -XInput gamepads are now the default option
    --For most users upgrading from a previous version, it will seamlessly migrate gamepad selection to XInput without any changes needed
    --Only users who have a DirectInput-only gamepad connected in addition to an XInput gamepad will need to explicitly change the option
    -XInput gamepads are bound to the player specified on the gamepad number display and can't be changed
    -Allows for binding actions to the gamepad triggers
    -Enables more descriptive button binding displays
    --DirectInput only uses button numbers
    --Now, button A, B, X, Y, right bumper, right stick, right trigger, etc. can be specified
    -Allows hot swapping gamepads while the game is running
    --DirectInput required restarting the game for new gamepads to work correctly
    --Fixes bugs when disconnecting a gamepad while the game is running
  • Updated the external configuration program to support the new XInput options and explicit gamepad bindings
  • Full data syncs are now used for very poor connections in UDP or Steamworks online multiplayer
    -The client machine can now request a full data sync from the server when needed
    --The client automatically detects when the existing packet loss countermeasures are not enough on a moment to moment basis
    ---If there is a temporary connection interruption, the client also detects when the connection returns to normal
    --This is only used as a last resort and is almost never needed for good quality connections
    -This greatly reduces the chance of corrupted data on the client side when there is very high packet loss
    --It is still possible to have client data corruption with UDP, but only occurs for extremely poor connections that would be unplayable anyway
    -This reduces the need for a TCP connection, but the option will remain just in case
    --TCP eliminates all data syncing issues, but runs slower
  • Added adaptive time scaling support to the particle system
    -This corrects particle movement slowdown when the particle system is heavily loaded (100k+ particles on slower CPUs)
    --Particles now always move at their normal speed, but can scale to a lower frame rate independent of the rest of the game in extreme load situations
    -This also fixes the particle "pile up" effect that would compound drops in performance when the particle system is heavily loaded
    --This allows particles to evaporate at their normal rate, so the on screen particle count doesn't get artificially inflated during a slowdown
  • Fixed overlapped "Player X" text in the ship selection screen when playing local multiplayer with a mouse as the Player 2 control device
  • Fixed incorrect Player 2 respawn animation during online multiplayer

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