Roadmap - efroemling/ballistica GitHub Wiki

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

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 more limited 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. In the future we can also use workspaces to do things like host cloud servers with custom mods.

Ballistica 1.8 (In progress)

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: Asset Packages. It will finally show up here though. That will open the door to adding more maps and characters and all that to the game much more easily than has been possible until now.

  • 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.) The game will be able to join or host using any of its contained protocols, meaning we can keep the 'V1' protocol around to allow joining existing servers or hosting games joinable by old clients while we work on a 'V2' protocol that makes fundamental changes/improvements to low level things (such as the dependency system below). Eventually servers can transition to hosting V2 once V2 client support is widespread enough, and then the cycle can repeat for V3, V4, etc. This should free us being constrained by backwards compatibility, which has been a major hindrance in trying to improve the low level engine layer up until this point.
  • 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 (for games hosted on the V2 protocol).

Ballistica 1.9

I'm revising my plans for this version, as much of what I had written here before is not a strict requirement for 2.0 and should not delay it any longer. Basically this version will be a 'soft launch' of 2.0, getting its essential functionality and new play modes in place without making it the default yet for most players.

Goals:

  • Online-centric play mode with secure cloud based servers, squads, matchmaking, ranked multiplayer, etc. (while still keeping classic modes intact)
  • Netplay code improvements to reduce perceived lag and bandwidth usage and allow for uncompromizing competitive online play.

Ballistica 2.0

The big official 2.0 release may be more of a 'relaunch' than an update. It will bring together all the pieces that have been put in place over the previous versions (cloud hosting, v2 accounts, online-centric play, frictionless asset updates, more flexible modding, etc.) and make that the default experience. At the same time there will be a large focus on finally releasing long-awaited ports.

Goals:

  • Make new online-centric play mode the default
  • Additional official platform support such as iOS, Apple TV, Steam, and Switch.

Beyond 2.0...

Plenty of ideas to list here, but don't want to get ahead of myself...