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.
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.
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-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
}
]
}
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 .