Publishing games with BLUR and Game Distribution – part 2: Game Distribution

Ok, So we have our game demos up and running, ready to be promoted in BLUR. Now, in the second article of the series, we will see how to add our full games to the Game Distribution platform, so the BLUR demos can point to them, and earn money from the traffic.

Note: this is a two-part series on adding your game demo to the BLUR app and getting the full version published on the Game Distribution portal.

First off, you should register your brand new account to have access to the dashboard where everything happens. If you do have an account already, then you can sign in immediately.

The dashboard

The dashboard lists all the games, and at the bottom there is an option to add a new one. If you click on one of the games, you will see all the details in the right panel.

GD dashboard

The first tab, Checklist, is exactly that – a checklist of all the actions you have to do to successfully submit the game. Next tabs allows you to:

  • Edit: fill in all the details like name and description
  • Upload: send the zip with your game’s source code
  • Assets: add all the banners in various sizes

Bundles are only needed if you have your game published in the iOS, Android or Amazon stores, and Requests is the list of significant actions like adding a game, or publishing it.

When writing details in the Edit tab remember to add “BLURGD” at the end of your game’s name to let the system know it’s being submitted as part of the BLUR-Game Distribution partnership, and you’ll get better terms on earning from the adverts.

Add the game, follow the tabs and fill all the details to request activation.

Implementing SDK

Before you request activation though you have to add the SDK to your game’s source code. Sometimes this can be complicated, but fortunately enough Game Distribution integration is as simple as it can get.

First off, it’s worth noting all the GD SDKs are open and hosted on GitHub – you can pick from the ones for Unity, Construct 2, Construct 3, or “plain” HTML5. The Wiki contains all the info about how to actually implement them – for example, if you’re using Phaser, this HTML5 one will come in handy.

There are only two things to remember when implementing the SDK: populate GD_OPTIONS and show the actual ad in the game.

GD_OPTIONS

This global object contains your game’s ID and some useful events, like turning the sounds and music on and off to properly play the video advert. Here’s the example code from the Flood Escape game, put in the new sdk.js file:

window["GD_OPTIONS"] = {
    "gameId": "1234567890",
    "onEvent": function(event) {
        switch (event.name) {
            case "SDK_GAME_START":
                EPT._manageAudio('on',game);
                break;
            case "SDK_GAME_PAUSE":
                EPT._manageAudio('off',game);
                break;
        }
    },
};
(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s);
    js.id = id;
    js.src = 'https://html5.api.gamedistribution.com/main.min.js';
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'gamedistribution-jssdk'));

As you can see the GD_OPTIONS object contains the gameID, and two events. First one, SDK_GAME_START, is launched when the advertisement is done, so the game logic should be resumed, and audio unmuted. Second event, SDK_GAME_PAUSE, pauses the game logic and mutes the audio. In the Flood Escape case the gameplay don’t have to be paused as the only place where the advert will be shown is on the Game Over screen, just before restarting the game.

Last few JavaScript lines are adding the script tag to the html document.

This is the sdk.js file that I include in the index.html. Then, in my game’s Game.js file containing the gameplay I’m adding gdsdk.showBanner(); in the function where the user would click on the Restart button, so before he starts playing again he will have to see the advertisement.

The best part? You don’t have to worry about things like a cooldown timer, so the player won’t be seeing an advert every single time he presses the Restart button – all the magic calculations are done on the server side of things and we don’t have to think about that at all.

Last thing to remember is that you need to have a proper manifest.json file with all the details of your game like name, description etc. Here’s mine:

{
    "name": "Flood Escape",
    "short_name": "Flood",
    "description": "Build your way up to escape the flood and be rescued in time. Tap on the screen to place new floor - try to match the position of the new over the previous one to have it as wide as possible.",
    "icons": [
        {
            "src": "img/icon.png",
            "sizes": "512x512",
            "type": "image/png"
        }
    ],
    "developer": {
        "name": "Enclave Games",
        "url": "https://enclavegames.com"
    },
    "start_url": "index.html",
    "display": "fullscreen",
    "theme_color": "#38464d",
    "background_color": "#38464d"
}

As you can see it’s all about the basic info – name of the game, description, path to icons, etc.

If you have the GD_OPTIONS set, have added the showBanner function and the manifest.json is in place, you can zip everything and upload the package.

Another cool thing about GD dashboard is that it lets you test your implementation immediately. You don’t have to send the zip via email manually to some integration engineers, hope for the best, and then get a response two weeks later that you made a typo in the url 😐

So, uploading the zip will allow you to test the build right away. There’s even a special uncached url for testing purposes, so you don’t have any issues with that. Wrong path? Fix it, upload, test – one minute later everything works as expected.

GD upload

To have the SDK fully confirmed you have to watch the full dummy advert video. After that, you are ready to go and request activation. After your game is activated, it will be ready to be live on the portal at games.theblurapp.com.

It feels like it was one of the easiest, if not THE easiest of my integrations so far, and I’ve had many of those in the past years.

HTML5 Game Developer, Enclave Games indie studio founder, js13kGames competition creator and Gamedev.js Weekly newsletter publisher. Mozilla Tech Speaker, Gamedev.js community firestarter. Organizes meetups / workshops / hackathons in Poland, passionate about new, Open Web technologies, excited about WebXR and PWAs. Likes eating sushi and playing Neuroshima Hex.

2 Comments

  1. jb says:

    i am curious what amount of money can an average game make with this site? what is their reach in total monthy player?

    • End3r says:

      Depends if you’re asking about the newly created portal for the BLUR + GD cooperation, or the Game Distribution itself. The first is still hard to guess, the second seems an interesting option given the positive response from the community.

Leave a Reply

Follow us

Gamedev.js Weekly newsletter

Or visit gamedevjsweekly.com directly.

Websites worth visiting

Log in

Forgot password?

Already registered? Log in


Register

Forgot password?