Pular para conteúdo

Using Remote Configuration in Mobile Games

Remote configurations gives developers the ability to adapt and evolve a game without endless updates. Remote configuration, or "remote config", allows you to externalize various parameters of the game out of the code base, and thus be able to modify them on-the-fly. Let's do a quick overview of how you can effectively use remote configs using our demo game.

The Lobby: Make a Strong First Impression

Many games begin in a lobby – a gateway for players. This may be a place in any app or game that you should frequently update and adjust. From adding new content to changing layout to dynamic offers, there is so much you can do here to keep the audience engaged. With dynamic remote configs, you can do this with ease.

Configurable Elements

Lobby Cards Determine which games a player can select, the image to show, how much it costs to play.
Background image Set the background image.
{
    "Lobby": [
        {
            "Bundle": "GameA",
            "Title": "Wild West Adventure",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_calm_01.jpg"
        },
        {
            "Bundle": "GameB",
            "Title": "Island Explorer",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_calm_02.jpg"
        },
        {
            "Bundle": "GameC",
            "Title": "Far Land",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_calm_03.jpg"
        }
    ],
    "Settings": {
        "BackgroundImage": "https://assets.HOST.com/img/mini-joy/lobby-bg/calm_01.jpg"
    }
}
{
    "Lobby": [
        {
            "Bundle": "LobbyCards",
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/offer_1_for_10_a.jpg"
        },
        {
            "Bundle": "LobbyCards",
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/player_of_the_day_elva.jpg"
        },
        {
            "Bundle": "GameA",
            "Title": "Wild West Adventure",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_calm_01.jpg"
        },
        {
            "Bundle": "GameB",
            "Title": "Island Explorer",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_calm_02.jpg"
        },
        {
            "Bundle": "GameC",
            "Title": "Far Land",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_calm_03.jpg"
        }
    ],
    "Settings": {
        "BackgroundImage": "https://assets.HOST.com/img/mini-joy/lobby-bg/calm_01.jpg"
    }
}
{
    "Lobby": [
        {
            "Bundle": "GameA",
            "Title": "Wild West Adventure",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_illustration_01.jpg"
        },
        {
            "Bundle": "GameB",
            "Title": "Island Explorer",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_illustration_02.jpg"
        },
        {
            "Bundle": "GameC",
            "Title": "Far Land",
            "Action": "Platformer",
            "Cost": 20,
            "Image": "https://assets.HOST.com/img/mini-joy/lobby-cards/game_illustration_03.jpg"
        }
    ],
    "Settings": {
        "BackgroundImage": "https://assets.HOST.com/img/mini-joy/lobby-bg/illustration_01.jpg"
    }
}

With a simple change in configuration you can add offers, change the theme, or even make new games available to players. All of this can be done instantly.

Different Lobby

Fine-Tuning Game Play

A simple platformer game, but with a twist! Just about every aspect is customizable. Make your game harder, easier, or just give it a fresh look, all without an update.

Configurable Elements

Character Speed How fast does your character moves.
Jump Height Define the vertical limits.
Gravity How fast does your character falls.
Background & Character Change the background and character image.
Platform Locations Decide where the platforms are placed.
{
    "CompletionAward": 100,
    "JumpForce": 330,
    "Gravity": -300,
    "MoveSpeed": 6,
    "BackgroundImage": null,
    "CharacterImage": null,
    "Platforms": [
        {
            "Position": {
                "x": -140, "y": 132
            },
            "Length": 90
        },
        {
            "Position": {
                "x": 70, "y": 10
            },
            "Length": 150
        },
        {
            "Position": {
                "x": -80, "y": -140
            },
            "Length": 150
        },
        {
            "Position": {
                "x": 145, "y": -140
            },
            "Length": 50
        },
        {
            "Position": {
                "x": 120, "y": -244
            },
            "Length": 160
        }
    ]
}
{
    "CompletionAward": 100,
    "JumpForce": 530,
    "Gravity": -200,
    "MoveSpeed": 10,
    "BackgroundImage": "https://assets.HOST.com/img/mini-joy/game-bg/balloon_city_desat.jpg",
    "CharacterImage": "https://assets.HOST.com/img/mini-joy/game-characters/dino.png",
    "PlatformColor": "#ff6f61",
    "Platforms": [
        {
            "Position": {
                "x": -140, "y": 132
            },
            "Length": 90
        },
        {
            "Position": {
                "x": 100, "y": 10
            },
            "Length": 90
        },
        {
            "Position": {
                "x": -140, "y": -140
            },
            "Length": 90
        },
        {
            "Position": {
                "x": 100, "y": -140
            },
            "Length": 90
        },
        {
            "Position": {
                "x": -140, "y": -244
            },
            "Length": 90
        }
    ]
}

By externalizing the game's configuration, you can easily change the look and feel. Change the game's difficulty by adjusting the platform positions, gravity, and jump force. Additionally, create multiple configurations for different levels, and have them be generated by AI.

Game Configs

The In-Game Store: Dynamic Pricing for In App Purchases

Many games have an in-game store where players can buy credits using in-app purchases. With Joystick and dynamic remote configs, you can modify pricing and create discounts without touching the game's core code. The operations team can have much more flexibility.

Configurable Elements

Active Pricing Packages Set which packages are available for players to purchase.
Pricing Package Details Setup the price and how many credits the each package awards.
{
    "packagesInUse": [
        "Pkg-05-050",
        "Pkg-10-100",
        "Pkg-20-200"
    ],
    "Definition": [
        {
            "Key": "Pkg-05-050",
            "Price": "$5",
            "Award": 50
        },
        {
            "Key": "Pkg-10-100",
            "Price": "$10",
            "Award": 100
        },
        {
            "Key": "Pkg-20-200",
            "Price": "$20",
            "Award": 200
        }
    ]
}
{
    "packagesInUse": [
        "Pkg-01-010",
        "Pkg-02-060",
        "Pkg-05-150",
        "Pkg-10-300"
    ],
    "Definition": [
        {
            "Key": "Pkg-01-010",
            "Price": "$1",
            "Award": 10
        },
        {
            "Key": "Pkg-02-060",
            "Price": "$2",
            "Award": 60
        }
        {
            "Key": "Pkg-05-150",
            "Price": "$5",
            "Award": 150
        },
        {
            "Key": "Pkg-10-300",
            "Price": "$10",
            "Award": 300
        }
    ]
}

Lobby Offer Configs

Make it more Powerful with Dynamic Content

In reality, you would probably want to setup segmentation or AB test many of these elements. For example, only showing special offers to players who qualify, or showing a new game at a certain time. Joystick has a powerful dynamic content and segmentation engine that can help you target, schedule changes and ab test anything.

Closing

Harnessing the power of remote config offers unparalleled flexibility. With it, you can experiment, adapt, and keep your app or game fresh and engaging. And the best part? Players won't need to wait for updates. User remote configuration to let your game evolve in real-time!

What's Next?

Get a Free Sandbox Account

Equip your team with rocket boosters. Get a free Joystick account today .

Join the Community

Head over to our Discord server for tips, support and more: Discord