A few smaller updates have been released recently for BlastZone 2. The biggest updates included are improvements to the “Interp/Predict” client smoothing to work better across a wider range of network conditions. The “Interp Only” option is still the default, as it is the most reliable, but the “Interp/Predict” option is very close now and should provide a better experience for most users. This update also includes a number of other improvements and fixes listed below:
Greatly reduced occasional object rubberbanding when using client "Interp/predict" motion smoothing with poor internet connections
Improved packet loss compensation for the "Interp/predict" motion smoothing
Improved multithreading for beam animations and hit detection
Fixed double beam animation for the client in online multiplayer
Fixed an occasional flicker for the player ship booster
Fixed player throwback at the start of the next area when completing the previous area with a power weapon
Improved multithreading concurrency in several areas -Thread concurrency was slightly reduced in v18.104.22.168 to fix a few crash issues, but the crash fixes have been improved so there is no concurrency sacrifice anymore
As always, to make sure you have the latest update, start the game and check the lower left corner of the title screen for “v22.214.171.124” or higher. Be sure to leave any feedback in the forms. Enjoy!
A new update has been released for BlastZone 2! (v126.96.36.199) This update overhauls the particle system, resulting in huge performance gains when many particles are on screen. Testing shows that roughly 20-30x more particles can be shown on screen for the same performance levels of previous versions. Not only that, but performance can be improved even more through a new Particle Thread Count option. The game defaults to dedicating 2 threads to particles to ensure the best experience for Single-Core and Dual-Core CPUs, but can easily be raised up to 8 threads in the Configuration Program to take full advantage of Quad-Core or Octo-Core CPUs. Please note that the thread count cannot be changed in game. These performance gains can be tested through the “Stress Test” and “Stress Test 2” custom addon packs for those who are curious. I strongly suggest raising the particle detail level to “High” or “Very High” now, even for lower end machines.
There are a number of other bug fixes and improvements included in this update. Here are the full release notes:
Made big improvements to the particle system -Allows for 20x-30x more particles on screen for the same performance level of previous versions -Takes much better advantage of multithreading to achieve this -Now has a more even workload between threads -Can now scale up to any amount of cpu cores (previously capped at 2 cores)
Updated the configuration program to select the amount of threads dedicated to particles (This option is not available in game) -The minimum threads selectable is "2", which is 1 render thread and 1 update thread -Using a higher thread count keeps the 1 render thread, but splits the update workload between multiple threads
Added a new client motion smoothing option for online multiplayer - "Interp Only" -This option fixes potential erratic object movement for poor internet connections, but introduces hitching instead -This is now the default option to accommodate the widest range of internet connection quality -Renamed the original smoothing option from "On" to "Interp/Predict" -Interp/Predict is the recommended option for mediocre and good internet connections
Added antialiasing to all HUD meter bars
Fixed several very rare crash scenarios from the recent multithreading updates
Fixed occasional oversized player ships in online multiplayer
Fixed the client player incorrectly showing a beam fire animation at the beginning of the next wave when finishing the previous wave with a beam weapon when playing online multiplayer
As always, to make sure you have the latest update, start the game and check the lower left corner of the title screen for “v188.8.131.52” or higher. Be sure to leave any feedback in the forms. Enjoy!
A new update has been released for BlastZone 2! (v184.108.40.206) This update is a follow up to the recent online multiplayer improvements update and makes further improvements to the netcode. The primary improvement included is out-of-order packet detection and discarding to help reduce juttery object movement for the client player that still remained after the motion smoothing improvements. Another improvement is generalized object movement packet loss tolerance to produce more consistent behavior for the client beyond several key cases that were covered before the update. This includes covering sudden behavior for bosses and enemies in mission mode and is tuned to work well with motion smoothing as well.
Here are the full release notes:
Added packet discarding for online multiplayer when packets are detected as out of order -Prevents old data from being displayed -Fixes erratic object movement as well -Object behavior from these removed packets is accounted for when using the recently added motion smoothing
Improved packet loss tolerance for object movement in online multiplayer -This is a generalized approach that improves many areas, previous packet loss improvements targeted specific situations -This works well for sudden movements and in tandem with the recent motion smoothing update
Fixed rapidly switching client player ship type when there is high packet loss for the online multiplayer lobby screen
To make sure you have the latest update, start the game and check the lower left corner of the title screen for “v220.127.116.11” or higher. Any feedback would be greatly appreciated in the forums. Enjoy!
A new update has been released for BlastZone 2! (v18.104.22.168) The focus of this update is to improve the experience of the client player when playing online multiplayer games. This is primarily done by adding a new “Motion Smoothing” option for the client player that uses a combination of interpolation and prediction to generate additional object positions to what is being sent by the server. This makes the client side experience appear much closer to how the game looks for the host/server even when a lower 20hz or 30hz tickrate is used. This has a big advantage of greatly cutting down the bandwidth and send rate needed for a great experience. Also, this can fill in the gaps and account for packet loss to improve the experience for lower quality internet connections. However, the drawback is that there is some additional perceived latency on a moment-to-moment basis. The amount of latency added peaks at about 50ms when a 20hz tickrate is used, but averages at about 20-25ms or so for the same tickrate, and is lower when higher tickrates are used. During testing, this amount of latency wasn’t enough to adversely affect overall enjoyment and playability of the game. However, if a particularly laggy internet connection is being used and latency needs to be reduced as much as possible, the option exists for the client to disable motion smoothing.
Here are the full release notes for this update:
Added client-side motion smoothing to online multiplayer -Smooths out animations for the client player, even when a low tickrate is used -Allows for much lower bandwidth usage with a similar or better experience as earlier versions -This uses a combination of interpolation and prediction to achieve smoother playback -However, this slightly increases latency (10-50ms depending on the situation)
Added an option to disable client-side motion smoothing -This eliminates the slightly higher latency of smoothing if this behavior is desired
Fixed enemies glowing on spawn for the client player in online multiplayer
Improved robustness of netcode
To make sure you have the latest update, start the game and check the lower left corner of the title screen for “v22.214.171.124” or higher. Any feedback would be greatly appreciated in the forums. Enjoy!
NOTE: Another update will be released in a few days with further improvements to netcode. This discards packets received out of order to fix juttery client behavior that still may occur in this update. More info will be released about this soon!
Announcing the release of BlastZone 1! This is a completely free game release that is now bundled with both the Demo and Full versions of BlastZone 2. The purpose of this release is to address a frequent question I’ve been asked over the years of how people can play the original BlastZone game. Before now, I’ve directed such questions to the Classic A game mode of BlastZone 2, which is a greatly improved version of BlastZone 1, but that probably isn’t what people have been asking for. Now, everyone can experience the original game in its original form! Keep in mind, the original game was built for the TI-85 and TI-86 graphing calculators back in the 1990’s, so it is very crude by today’s standards. Also, this release is a faithful recreation of BlastZone 1 and not a precise emulation of the original code. There are a few improvements over the original TI-85/86 version, including higher resolution ASCII characters and improved control responsiveness. Also, a few of the menus have been consolidated and combined together to streamline the experience. Despite these changes, it still maintains a very faithful experience to the original to give everyone an idea of what the game was like back then. The final version number for the TI-85/86 is v1.1, so I incremented this release to v1.2 to differentiate it.
To play BlastZone 1, make sure you have the v126.96.36.199 BlastZone 2 update or higher, then start up BlastZone 2 and select the top “BlastZone 1” main menu option. Any questions and feedback are welcome in the forums or via email. Enjoy!
A new update has been released for BlastZone 2. This update is mainly a follow up to the recent big v188.8.131.52 update that had substantial improvements to the engine tech. This update addresses several areas that weren't covered by the multithreading improvements in that update. Overall performance will only get a small bump from this, but this update smooths out hitching in a few areas and improves responsiveness slightly during gameplay. Here are the full release notes:
Added multithreading support for several areas left out of the v184.108.40.206 multithreading improvements, including: -All menus -Loading operations after the initial startup -Gamepad input -Console input -Leaderboard communication
Fixed brief discolored border of horizontal screen wipes
Fixed an internal error when uploading or downloading leaderboard data
As a side note, I have a big surprise coming for the next update of BlastZone 2! The only hint I'll give is that it's something people have been asking about for a while now. Anyway, enjoy today's update and stay tuned for the next one!
A big new update has been released for BlastZone 2! The most notable new feature in this update is a greatly improved online lobby screen. Now it is at the same level of information and presentation as other ship selection screens in the game.
In addition, there are many technical improvements to the underlying game engine. This includes improved frame pacing and framerate cap selection, which now allows for single frame increments and a much wider range of selection. This is ideal for a wide range of high refresh rate displays and adaptive-sync displays such as g-sync or freesync. To facilitate this, multithreading has been improved to support up to 6 cpu cores, or take better advantage of dual core and quad core cpu’s. This better sustains higher frame rates, which also helps lower end multicore machines to sustain playable framerates. In addition, the net code has been greatly improved to be more robust and tolerate much higher packet loss without causing bugs. For more information about this and the many other improvements and bug fixes, here are the full release notes:
Greatly improved the online multiplayer lobby screen -Now shows ship previews for each player -Reorganized the screen to present ship information better -Added stat bars similar to other ship selection screens
Updated framerate cap selection to allow for any value of the range 20-240 or unlimited -Previously only allowed for 4 fixed values of 20, 30, 60, and unlimited -Allows for increments of 1 fps for the highest precision of desired framerates -This improves support for high refresh rate and adaptive-sync displays -Allows for high refresh rate displays to take advantage of the power saving and heat reducing properties of frame rate caps without resorting to using uncapped framerates -This can also be used on standard 60hz displays with vsync off to reduce control response times without increasing heat and power consumption much
Multithreading improvements; Split the main game update and rendering operations into separate threads -Can now take advantage of up to 6 CPU cores/threads if available -Improves parallelism and core usage for dual core and quad core systems -Improves performance for multicore systems (up to 10% depending on the system and situation) -Doesn't adversely affect performance for single core systems -This doesn't increase control latency, which often occurs in other implementations -This is ideal for better maintaining high frame rates for high refresh rate displays or maintaining a smooth experience for lower end multicore systems
Improved frame pacing consistency to reduce hitching when using framerate caps -Can now maintain constant frame times with occasional variance down to 0.02ms or lower
Greatly improved robustness of the online multiplayer netcode -Improved packet loss tolerance in many areas, including bosses, object spawning, wave progression, and cutscene skipping -The netcode can now tolerate up to 75% constant packet loss without causing bugs and can occasionally allow for spikes up to 80% packet loss or higher
Added the ability for gamepads to hold the left or right direction in menus to quickly scroll left or right (previously only had this behavior for up and down)
Fixed a bug when pressing Escape to leave the online multiplayer lobby screen that would internally keep the game in online mode, causing a number of other bugs
Fixed occasional model corruption after applying new video settings in game or pressing Alt+Enter
Adjusted positioning of leaderboard submission text in the game over screen
Updated the mouse cursor draw order so it doesn't appear on top of text messages or dialog boxes
Screen wipes now render behind dialog boxes so they aren't obscured during cutscenes
Fixed slight player booster misalignment during wave/area intros and outros
Eliminated all Classic A/B weapon firing during wave intermissions to prevent accidental chain resets or wasting ammo
Updated the config program to be compatible with the new Framerate options and disabled manual value entry for most options to limit them to dropdown values
Upgraded to the latest Steam SDK (v1.40)
To make sure you have this update, start the game and check the lower left corner of the title screen for “v220.127.116.11” or above. Since this is a pretty big update, I would greatly appreciate any feedback including bug reports in the forums. Thanks and enjoy!
Two new updates have been released for BlastZone 2! These address a few critical issues, including some antivirus software falsely detecting BlastZone 2 as a virus. I can assure everyone that these were false positives and they were caused by BlastZone 2 using a hidden cmd window to execute cURL commands to upload and download leaderboard data. This was addressed by migrating to a completely internal solution that uploads and downloads leaderboard data directly within the game without the use of a hidden command prompt window. This will prevent any antivirus software from flagging BlastZone 2 in the future. For anyone who has already experienced this issue, it is completely safe to remove BlastZone 2 from your antivirus blacklist and play as normal. I apologize for any inconvenience this may have caused.
Other fixes in these updates include a critical online multiplayer bug and improvements include a new enemy definition property for level editing among other improvements and fixes. Here are the full release notes:
Fixed a critical wave progression bug for the client in online survival multiplayer games
Improved packet loss tolerance for a few key events for online multiplayer
Added the ability to show extra timing debug info -Press F1 multiple times to cycle between: -No debug info -Only framerate -Framerate with update/render/particle/framePrep/frameFlip timings -Framerate with update/render/particle/framePrep/frameFlip and sound/steam/directIp timings
Changed the way leaderboard communication works to prevent issues with some antivirus software -Now communicates natively with the leaderboard server without the need for external executables -The old behavior launched a hidden CMD window to execute a cURL command to upload/download data to the leaderboard. This was deemed suspicious behavior by some antivirus software and would blacklist BlastZone 2
Enemy definitions now can define item drops **NOTE: This update breaks compatibility with enemy definitions made for older versions of BlastZone 2 -All officially released missions and addon packs have been updated to work with the new spec -A new property has been added to the end of all enemy definitions in the "enemydefs.dat" files *Item drop values include: -Forcing no drop -The old random drop chance behavior -Specifying which item drops from this enemy, including points, health, and stat upgrades
Explosion particle counts have now been capped to improve performance in extreme situations -This cap limits the total amount of particles that can be displayed on screen and doesn't affect individual explosions when this cap isn't reached -The cap value is proportional to the particle detail level specified in the game options -The "very high" particle detail level maintains the old uncapped behavior if no cap is desired
Added "Press Pause/Escape to skip" text to all cutscenes; This functionality has always existed, but was not obvious to the player
When first starting the game and viewing highscores, the gamemode category now defaults to Mission mode
Fixed items not being dropped from enemies while one player is respawning in multiplayer
As usual, to make sure you have the latest updates, launch the game and check the lower left corner of the title screen for “v18.104.22.168” or higher. Please leave any feedback or questions in the forums. Enjoy!
A new update has been released for BlastZone 2! The focus of this update is to greatly improve particle multithreading and fix the broken client side communication for Direct IP online multiplayer games. There are a number of other bug fixes and improvements included in this update, here is the full change list:
Numerous general code improvements across many areas of the game; prevents many potential issues
Greatly improved thread timing and synchronization for multithreaded particles -Improves overall parallelism and performance when many particles are onscreen -Reduces overall cpu usage by up to 25% -Improves visual smoothness of particle animations -Allows particle updates to scale beyond 60hz for high refresh rate displays -Improves efficiency even more when running on a slow machine that is unable to maintain 60fps
Fixed broken client side communication for Direct IP online multiplayer games
Fixed incorrect rendering for client side powerup items for online multiplayer games
Small tweaks to the frame pacing algorithm
Adjusted description text positioning for game mode and difficulty selection screens to have less overlap with menus
Tweaked the enemy explosion start frame to transition from an unexploded ship better
To make sure you have this update, launch the game and check the lower left corner of the title screen for “v22.214.171.124” or higher. Enjoy!
** Update ** Two additional updates have been released since this announcement was made. The version number is still v126.96.36.199. Updates include:
Additional multithreaded concurrency improvements to further improve performance when many particles are onscreen for multicore cpu's
Fixed a menu sequence break bug when pressing Fire2 or Escape during the level addon pack selection screen