1. BlastZone 2
  2. News
  3. Native XInput support and UDP multiplayer data syncing improvements (v1.32.1.0)

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!