Skip to content
Eric Froemling edited this page Jul 21, 2022 · 61 revisions

Note: versions listed here are for the Ballistica engine, but there will be corresponding BombSquad releases for each.

Ballistica 1.5 (done!)

Goals:

  • Transitioning all existing BombSquad 1.4 functionality to the Ballistica codebase, and squishing the inevitable resulting bugs. (see Ballistica vs. Original BombSquad)
  • Though some of the script layer refactoring is still incomplete and there are a number of rough edges, things should be 'frozen' for now and made shippable, simply to remove the ongoing burden of maintaining parallel 1.4 and 1.5 branches. Later versions (namely 1.8) will focus on the remaining script layer reorganization.

Note that if you are a mod developer, you may want to instruct your players to freeze their installations and avoid updating to 1.5 for now so that your mods continue to work. You are also more than welcome to port your mods to work with 1.5, though I expect that APIs will still be shifting around significantly until 1.8, so you need to be prepared for this if you choose to do start porting now.

Ballistica 1.6 (done!)

Goals:

  • Adding in a basic 'host in the cloud' feature allowing anyone to spin up a private game online which friends can join. This is intended to replace the 'Google Play' connection option which was recently discontinued and should allow friends to easily play together online while 2.0 is still in development.
  • Fixes for any bugs discovered since 1.5.

Ballistica 1.7 (done!)

(though bug-fixes and porting is still ongoing)

Originally this version was intended to include the new dependency system, but along the way I have been adding V2 Accounts (originally slated for 1.9/2.0) and Workspaces and I think it makes sense to cut a specific release containing just those changes. V2 Accounts was necessary in order to implement Workspaces, which was needed to replace user-storage-based modding in Android which has become largely impossible in recent versions of Android due to increased security.

  • 'V2 Accounts' are a completely new account system which will slowly replace existing 'legacy' accounts and which is a fundamental building block of the 2.0 update. These accounts include much better security and a new option to create an account using an email and password which can be used on all platforms. They also contain user-selectable globally-unique names instead of using the name of your GooglePlayGames/GameCenter/etc. account (which were not guaranteed to be unique). It will be possible to migrate old accounts to the new system (details forthcoming).
  • 'Cloud Based Workspaces', a new feature of V2 Accounts, is a way to mod the game by uploading scripts to your account (or editing them directly on a webpage). The game can automatically sync your cloud workspace to itself and run scripts within it, meaning there is no longer a need to manually copy scripts to obscure places on your phone or computer. It also means that any platform the game runs on can be modded equally easily.

Ballistica 1.8

This version will center on one major feature, which was originally intended for 1.5.0 but which has kept slipping as other things have proven more important. It will finally show up here though.

  • SceneProtocols, a prerequisite of the new dependency system, is first on the todo list here. This will split out all of the low level game components (scene nodes, assets, materials, etc) into independent bundled versions (probably called SceneV1, SceneV2, etc.) This means we can ship the game with both 'stable' and 'development' SceneProtocols (or possibly more), allowing us to freely evolve all aspects of the game environment without worrying about breaking compatibility with existing versions (which will be handled by the 'stable' protocol). Maintaining strict backwards compatibility has been a major impediment to making progress on low level game bits, and this should mostly resolve that. For starters, this will allow us to implement the new dependency system as part of SceneV2 while keeping existing behavior intact as SceneV1 so we can still connect to old servers/etc.
  • New dependency system with asset-packages, allowing modders (and myself) to distribute their work automatically. I've been somewhat avoiding adding new maps/characters/etc. to the game for a while to keep the install size small, but this will no longer be an issue after this release as things can be downloaded dynamically.

Ballistica 1.9

This version can complete much of the modernization work started in 1.5 in order to stabilize the APIs and prepare for the 2.0 release.

Goals:

  • Finish separating the ba and bastd packages to give modders a much cleaner, more organized system to work with.
  • Finish adding type safety to the places where it is still missing, including node attributes, custom mini-game classes, game configs, custom player data, resources, etc.
  • Hopefully a proper UI API (classes instead of giant ugly monolithic functions).
  • Miscellaneous other API cleanup and simplification.
  • In general, the API should be decently stabilized for modding purposes at this point. Any modders holding off on upgrading from 1.4 might find this to be a good time to jump in whole-heartedly.

Ballistica 2.0

Once 1.9 has stabilized, the focus will shift to 2.0, which introduces big user-facing changes built on this new foundation. Significant progress has already been made on some of these goals (cloud server code, net play code) but it has been set aside for the moment in the interest of getting 1.5 out the door.

Goals:

  • New online-centric play mode with secure cloud based servers, squads, matchmaking, ranked multiplayer, etc. (while still keeping classic modes intact)
  • Modding functionality allowing scripts to be uploaded and played worldwide in cloud games (in a secure fashion).
  • Additional official platform support such as iOS, Apple TV, Steam, and Switch.
  • Netplay code improvements to reduce perceived lag and bandwidth usage (depending on how necessary this is after cloud servers are working).