1. BlastZone 2
  2. News

BlastZone 2 News

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!

Huge technical improvements! (v1.32.0.0)


A big new update has been released for BlastZone 2, (v1.32.0.0) focusing on several big technical improvements to the underlying game engine. Among these is adding UDP Direct IP multiplayer support to the game. This has much better latency, responsiveness, and smoothness than the existing TCP Direct IP option. Steamworks multiplayer already uses UDP, so it is still the best way to play online. However, UDP Direct IP helps when using offline mode, if Steam isn’t available, or when on a LAN. The TCP option is still available as a last resort when using a poor internet connection that may produce bugs with UDP, but this should be very rare. Updated descriptions of each online option has been added so it is clear which is the best option for a given situation.

The second big part of this update is huge improvements to the particle system. Previously, only a portion of particle effects were part of the highly optimized particle system. Now, it has been generalized to incorporate virtually every particle effect in the game. This cuts the draw calls per frame from an average of 500-600, to around 150-170, reducing CPU usage and graphics driver overhead. Also, much more of the particle processing pipeline now scales up to many cpu threads, greatly benefiting quad cores and above. In synthetic stress tests (with over 500k particles), the particle system can now handle up to 4-5x as many particles on screen at the same performance levels for most system configurations. Regular gameplay scenarios will see a maximum of a 100% performance gain in specific situations on older machines with slower CPUs and GPUs and allow for higher particle detail settings. Newer and faster machines will see much less of a performance improvement in game, but will see a reduction in frame hitching. A few new particle effects have been added as well, including firing effects for normal bolts, flurry shots, and wave shots.

A third big part of this update is a brand new model loader. It uses a new proprietary model format that uses half the disk space and loads up 5x faster than previous versions with no effect on quality. Loading the Extreme quality terrain models at startup is reduced from 30 seconds down to about 5-6 seconds on many systems. This reduces ram usage by about 6-7% as well.

This update also adds a few new renderer frame stats. This includes triangle count, draw call count, and particle counts. This helps illustrate how scalable the rendering options are, ranging from about 50,000 triangles at low details, to over 10,000,000 triangles at extreme details. This also shows how hard the particle system is being pushed at any given time. This info is mainly used for development and optimization, but it may be interesting for those who are curious. To access this, press the F1 key 3 times at any time in the game.

This update includes a number of bug fixes and other improvements as well. Here are the full release notes for v1.32.0.0:
  • Added UDP Direct IP multiplayer support
    -This improves online multiplayer responsiveness and smoothness from the existing TCP Direct IP code path
    --Internal testing has shown that devices connected via wifi or a 3G/4G connection gain the greatest benefit from UDP
    -However, this has the drawback of potentially introducing bugs for poor connections
    --Many poor connection countermeasures are in place to mitigate this, but it's not perfect
    -UDP should be used for most users, only use TCP to fix issues for very poor connections
    -Steamworks multiplayer already uses UDP
    --Those who use Steamworks multiplayer will be unaffected by this
    -This new UDP multiplayer option adds more flexibility for those who want to play over a LAN, or cannot connect to Steam
    -To use this, select "Online (UDP)" from the multiplayer menu
    -Renamed "Online (IP)", to "Online (TCP)" to eliminate ambiguity
    -UDP uses the same 50768 port as TCP Direct IP
  • Huge particle system improvements and optimizations
    -Greatly reduces the number of total draw calls during gameplay
    --Cuts the average draw call count from 500-600 down to 150-175
    --Reduces CPU load and rendering overhead to render particles
    -Reduces frame hitching when many player bullets are on screen
    --This mostly affected systems that are just barely able to maintain 60fps
    -Brings many more particle effects into the main, highly optimized, particle system
    --Player bullet trails
    --Player charging animations
    --Player damage animations
    --Player final death explosion
    --Background speed particles
    --Explosion flares
    -General particle management optimizations
    --Improves overall performance and reduces particle thread processing time
    -Added CPU thread scaling above 2 threads for background particles
    --Foreground particles already scaled above 2 threads in previous versions
    --Background particles are not used in the main game, only in a test level pack
    -A greater portion of the particle update pipeline now scales up to 16 cpu threads if available
    --In previous versions, only rendering-related particle operations scaled above 2 threads
    --Now, particle update simulations also scale up to 16 threads, significantly improving performance on high core/thread count cpus
    -Greatly improved thread parallelism
    --Improves game responsiveness and frame rate when the particle system is heavily loaded
    --Particle animations can slow down independent of frame rate if the particle system is heavily loaded with a slow CPU
    ---The above optimizations make any kind of particle-related slow downs more rare anyway
  • Added new particle effects when firing the following weapons:
    -Normal bolt
    -Flurry shot
    -Wave shot
  • Added a completely new model loader
    -Uses a new proprietary binary model format
    -Uses about half the disk space for identical model data
    -Loads model data at startup much faster
    --Game startup now takes 20% of the time compared to previous versions
    -Converted all models in the game to the new ".bin" format
    -Moved all models that used to be compiled into the game executable to separate ".bin" files
  • Reduced the executable file size by 75% without any effect on game functionality
  • Reduced RAM usage by about 3-7% depending on detail levels
  • Updated the player ship booster charging animation during the wave intermission screen
  • Added an additional startup loading thread to reduce loading time
    -The startup loader now scales up to 9 CPU threads if available
    -Loading times are also reduced for lower core count cpus by more consistently loading all available cores
  • Added more frame stat displays
    -Includes the following new stats:
    --Triangle count
    --Draw Call count
    --Foreground particle count
    --Background particle count
    -Press F1 3 times to access this info
    -Shows scene complexity and allow for better comparing each detail level
  • Moved the frame stats display further to the right to improve game visibility
  • Updated the test background particle effect of test_pack_1 to use more particles
  • Updated the online multiplayer menu item descriptions to better describe which option to choose
  • Reduced renderer blocking time after failing to connect to a TCP server
  • Improved game process shutdown time after previously playing a TCP multiplayer game
  • Fixed background enemy animations not being cleared when quitting out of a level
  • Fixed occasional particle-related graphic glitches
  • Fixed incorrect alpha channel of background particles
  • Fixed a crash bug when starting a custom game with test_pack_1, then quitting out and starting a new game
  • Fixed a bug for an online multiplayer client that would use incorrect game settings when the server selects "Training" difficulty
  • Fixed a rare crash in the particle system related to multithreading and particle emitters
  • Fixed a broken TCP server state after creating and shutting down a server when no client was connected
  • Fixed enemies occasionally being stuck in a glowing state when hit
  • Fixed occasionally incorrect background particle Z sorting

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.32.0.0” or above. Enjoy!


**UPDATE**
A hotfix was released shortly after the initial patch went live with the following changes:
  • Fixed client ship flickering on the server side during cutscenes and flyin animations in online multiplayer
  • Fixed background flickering on the client side during online multiplayer
  • Fixed an occasional crash when opening the Steam friends list when some friends have special characters in their name
  • Fixed an occasional game freeze when entering Area 5 of Mission mode
  • Changed the rendering order of terrain blocks to improve fragment occlusion culling
    -Will have a