Blitz:Build - Cloud Build Tool for PlayCanvas ⚡

Hi Community,

Our PlayCanvas Cloud Build solution “Blitz:Build” is now live! We’re very excited to share this tool with you to make your work with PlayCanvas even more efficient.

It can help to improve your production pipeline by creating builds lightning fast and distributing them with ease.

The main features are:

:toolbox: Builds

  • Easy builds: Conveniently generate builds with one click.
  • Automate processes: Set up auto builds (nightly builds) and have a new build from your main branch ready in a given time interval.
  • Restrict access: Set all of your builds to public or private. Or do it individually for each build - it’s up to you!

:love_letter: Distribution

  • Mobile testing: A QR code is generated, so you can test the build on your mobile device without typing the URL.
  • Sharing: Builds get automatically uploaded to a server and are easily shareable (e.g. with your customer).
  • App splitting: Split builds to allow asset loading from cross-origin URLs and external CDNs.

:hash: Versioning

  • Semantic versioning: The version number gets automatically incremented and is displayed next to the build. Easily track bugs and feedback and associate them with the correct build version.
  • Pin engines: Pin your PlayCanvas engine version from your previous builds to guarantee a longer lifecycle of your projects.

:lady_beetle: Debug

  • Logging: Throw errors or warnings at build time, e.g. when you have whitespaces in your asset names.
  • File size overview: Hunt down the biggest files in your build.

:arrow_right_hook: Post build actions

  • Actions: For instance, automatically add the “viewport-fit=cover” meta tag to your index.html, so your game gets displayed fullscreen on iOS devices.
  • Files: Add and inject custom files into your builds.
  • Webhooks: Add Webhooks and trigger external services after your build has finished (e.g. upload to AWS S3, trigger team notifications, etc.).

:hammer_and_wrench: Custom settings

  • Branches: Choose which branch to build from.
  • Scenes: Add or remove scenes per build if needed.
  • Settings: Change settings (e.g. Allow Cheats YES/NO) per build. Also custom fields with primitive values are supported and can be accessed in runtime.

:star: Special features

  • Loading screen wizard: Dynamically edit and preview your custom loading screen. Easy configuration, no coding skills required!
  • User management: Add multiple users via E-Mail address and set different collaboration permissions.
  • Auto deletion: Old builds can be automatically deleted, to free up server space.

The tool uses the PlayCanvas REST API, thanks a lot for providing it @dave @will and the PlayCanvas Team.

We are already using this tool for our own games, but as it has reached Beta state now, we are eager to get your feedback & ideas for improving the tool even further!

In case you need any assistance, shoot us your question here - or we can jump on a quick call on Discord to help you.

We are looking forward to hearing your feedback!

Best regards,

Rene & Team

13 Likes

A very handy feature is that Blitz:Build can automatically inject values into builds, such as:

  • Version Number: Display the auto-incremented version number at start of the game to easily associate feedback and bug reports with the correct build version
  • Branch Name: Use the branch name to display along the version number or to adapt to various environments or conditional behaviour in your game, e.g. for AB testing
  • Balancing Variables: Define custom variables and change their values for every build, e.g. for player movement speed, enemy spawn frequency etc. which you can then easily access in your gameplay logic

In order to create custom settings and balancing variables, just select your project in Blitz:Build and hit Settings (1). On the bottom you can define a new variable of type boolean, integer, float or string and click “Add Setting” (2). From now on you can modify the value for every build you create. (3)

From now on, those values get automatically injected into your game via a buildconfig.json file, which can look like this:

{
    "version": "0.4.11",
    "branch_name": "main",
    "...": "...",
    "my_custom_boolean": true,
    "my_custom_integer": 8,
}

In order to use these configuration values in your project, you need to fetch the file and create a JSON from the response to be able to use it:

/**
 * This script is an example of how to fetch and apply balancing values from Blitz:Build.
 * In the example we move the player entity at a certain speed.
 * The speed value is defined in the configuration file that can be edited in Blitz:Build.
 * For this example we are using the "my_custom_integer" property.
 */

var PlayerMovement = pc.createScript("playerMovement");

PlayerMovement.prototype.initialize = function() 
{
		this.movementSpeed = 0;

    // We fetch the configuration file and convert the response into JSON
    fetch("buildconfig.json")
        .then((response) => response.json())
        .then((configuration) => {
            // Now we can access the "my_custom_integer" property and use it to set
            // the speed of our player entity.
            this.movementSpeed = configuration["my_custom_integer"];
        });
};

PlayerMovement.prototype.update = function(dt) 
{
    // We move the player by the speed value we have fetched earlier
    this.entity.translate(this.movementSpeed * dt, 0, 0);
};

You can check out and fork a complete Example Project.

We’ve added some example scripts in there for you to see how easy it is to fetch the configuration file and using these settings in your project.

Happy coding! :sparkles:

1 Like