Archive

Showing posts tagged with GameCircle

This quick video will give you an overview of the Amazon GameCircle API. It will cover why developers should use GameCircle, how Whispersync for Games helps preserve player progress between devices, what experience points / cross-game achievements are, and cover the process for viewing engagement analytics through GameCircle’s Achievement Reports. Whether you are completely new to GameCircle, or have achievements already integrated into the existing gameplay of your app, this video will provide you a quick introduction on how to increase player engagement, improve retention, and enhance the customer experience.

For more information about player profiles and mobile development, see our online documentation:

In the realm of classic puzzle games for mobile apps, Bitmango is no newcomer to this genre. The South Korean company launched in 2011 and has a focus on casual mobile games that challenge the way people think. Games such as Draw Line Classic and Draw Line Bridge, (downloadable here) are available on the Amazon Appstore.

We recently chatted with Yewoon Seo who is the publishing team lead for Bitmango. Yewoon took us in depth on how Bitmango is performing on the Amazon Appstore, the team’s experience on getting their app onto the platform, and some things that surprised their team about our services.

“The decision to get our app onto Amazon was obvious”- Yewoon Seo

Expanding and reaching more customers has always been one of Bitmango’s priorities, which is why Bitmango decided to look into the Amazon Appstore. “I noticed that the Amazon Appstore platform was similar to Android so I immediately knew there was a huge potential here,” says Yewoon. The team initially built their apps on Google Play, so the team worked on moving their apps over onto Amazon Appstore. So how hard was it to transition their game over? The team was pretty surprised at the little amount of work needed to complete the task.

“There’s not much effort at all to port our app from Google Play to the Amazon Appstore. It took us approximately one to two hours per app, by just tweaking the API. For our app the certification process was only a day, which was something we have never seen before in any other store. ”- Yewoon Seo

The team has already received tens of thousands of downloads, which has given them the kind of expansion they were looking for.

ARPU that was worth the investment

“Results were great,” according to Yewoon. Their main app “Draw the Line: Classic” has performed really well in the Amazon Appstore in the US in terms of average revenue per user (ARPU).

But their app success didn’t stop there. When “Draw the Line: Classic” was compared to other app stores in terms of all the countries where the game was available, the app consistently outperformed others in terms of average revenue per user.

“Since the platforms between Google and Amazon are so similar there was not much effort needed to move our app over,” says Yewoon. In terms of effort needed to achieve these results, the team was very satisfied with the results.

From customer centric to developer centric

“The amount of detailed feedback that the Amazon reviewers provided during the submission process was a huge surprise to us and something we’ve never seen before. These are things that really saved us time and something we really appreciated,” says Yewoon. Yewoon mentions that they appreciated that the Amazon team provides help for their developers in a variety of ways to answers their questions. “Sites such as the Amazon Apps and Services Developer Portal really helped us when we needed help on specific topics or issues,” says Yewoon. The Amazon Apps and Services Blog is always updated with the latest announcements, updates, and also provides detailed tutorials.

If you followed along from the first part of this series you should be up to speed on how the Unity IDE works. In this post we will dig deeper into the code side of things. I am a big fan of C#, and while Unity Script is useful, eventually you will need a little more flexibility in your code. So, to help you along, I thought it would be valuable to write a quick primer on working with C# in Unity, as well as some of the most common APIs you will be using when we build our game.

Picking a Code Editor

In order to code in Unity you will need to pick an external editor since Unity doesn’t have one built in. By default, Unity ships with MonoBuilder, but you can just as easily switch it out for something a little more robust, such as Visual Studio if you are doing your development on Windows. Simply go into the Edit > Preferences menu and change the path to the external editor.

Once you have picked an editor you like, you are ready to start coding. In this post, I will be showing the code from Visual Studio, but MonoDeveloper will work similarly to Visual Studio but on Windows and Mac.

Data Structures

C# is a strongly typed language and is very similar to Java or ActionScript 3. If you have some background in JavaScript, it should feel familiar as well. Let’s take a look at the basics of the language. To start with, we will look at variables and lists, which are the building blocks of any language. To make a variable, simply declare it, like so:

var name = “Jesse Freeman”;

While C# is a typed language, it supports type inference, meaning that when you declare a variable you don’t always have to define the type. There are a few primitive types you should know about:

string name = “Jesse Freeman”;
int age = 34;
bool alive = true;

When it comes to numbers, you should also understand more complex types, such as Float:

float speed = 4f;

Notice that we use the f suffix for our float. Floats are numbers that contain decimals and are used for more granular positioning within the game world, as well as in the built-in physics engine. Ints are useful for whole numbers where you don’t need to perform calculations that would generate fractions, such as a player’s health. You should always be aware when using Int, Float, or other number types because you may be forced to cast it to a specific type in order to perform the calculation and you may incur a performance penalty. Here is an example:

float example = (float)age * speed;

You can learn more about the different types in the C# reference docs at http://bit.ly/1bwLAKW. The next set of building blocks is Array and List. An Array is collection of multiple variables, usually of the same type.

var stringArray = new string[2];

In C#, Array are fixed meaning you can’t alter their length. You can modify its contents via their position in the Array itself. The position is an id, which represents a unique number for each location in the Array. In C#, arrays start at 0.:

stringArray[0] = “Jesse”;
stringArray[1] = “Freeman”;

You can access values in an Array by their index just like we modified it. Here is how I would create a string with my full name from the above Array:

var name = stringArray[0]+” “+stringArray[1];

Unity also supports Lists as part of the C# library. In order to use this, you will have to import its package (System.Collections.Generic) at the top of your script, which I will show you how to do later on. For now, here is an example of a list:

List<int> listOfInts;

This is what we would call a generic List. The term generic refers to a dynamic type we can assign at runtime. Generics are a core part of the language, and something you should get familiar with as you gain more experience coding in C#. In this example, we can create a list with a type of Int. Now this generic list can contain whole numbers. For performance, you will want to use lists over arrays when you don’t know the exact size of the data and expect to be adding or removing values at runtime. An Array by contrast has a set number of items you can have in it and shouldn’t attempt to modify the length at runtime.

The last data object I want to talk about is a vector. Unity makes use of a Vector3, but now with the addition of the 2D workflow, they now rely on Vector2D a lot more. Here are examples of both:

var v3 = new Vector3(0,0,0);
var v2 = new Vector2(0,0);

Vectors allow you to store 3D or, in this case, 2D points in space so you can access the value of x, y, and z from the vector. Here is an example:

Debug.Log(v3.x); // will output 0

One quick note is that you see I am calling Debug.Log. This will output the value to the console window.

This is similar to most other languages, such as JavaScript’s console.log and ActionScript’s trace. It’s also the first step in debugging your apps if you ever need to see the value of an object or property.

Classes

C# takes full advantage of classes, interfaces, and a host of other ways of packaging up code for reusability. Unity itself is built on a very easy-to-grasp composition system, which it favors over inheritance. Let’s look at how to make a simple class. Go to the Create menu and select a new script.

As you begin to create a new script, you will notice you can select from the three built-in languages. Select C# and call the script HelloWorld.

Unity will stub out the code you need for your class for you. Here is what it will look like:

using UnityEngine;
using System.Collections;
public class HelloWorld : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}

As you can see, you won’t need to memorize how to create a class from scratch, so I will simply focus on two main parts of the script: the import block and the methods. By default, each new class extends from MonoBehavior. There are numerous methods you can take advantage of, but we’ll start with the first two: Start and Update.

Let’s go back to our previous example of a generic list. While this isn’t the traditional way of doing a Hello World example, I’ll be able to show off in a little more detail what it is like to import external libraries, create properties on a class, and output that to the console window. To start, look at the top of the class at the import statement and add the following:

using System.Collections.Generic;

Now, just before the Start method, we are going to add a property. Properties are variables that are scoped to the instance of the class itself. That is a fancy way of saying that anything inside a block of code will have access to its contents. Depending on how we declare the property, other classes will have access to it as well. C# supports private and public variable denotations. If you don’t declare one, it will automatically default to private. Add the following property above our Start method:

public List displayText;

Now, in our Start method, add the following:

displayText.Add("Hello");
displayText.Add("World");

Now we need a way to display this text. Add the following to the Update method:

Debug.Log(displayText[0] + “ “ + displayText[1]);

Here you can see we are using the Debug.Log method again, and we are accessing the first and second values of our list. It’s important to note that arrays and lists are 0 based in C# just like Java, AS3, and JS. Now we have a script that will output Hello World to the console tab on each frame, but we don’t have a place to put it. Go back to the Scene and select our camera. From here, scroll down to the bottom of the Inspector panel and select Add Component. Now select our HelloWorld script and it will attach itself to the camera.

Now, if you run the game and look at the Console tab, you will see Hello World outputted on each frame.

While this is a simple example, let’s do something a bit more interesting. Go back into your script and let’s have the camera scroll to the right. The camera is a GameObject just like any other primitive you add to the Scene via the Create menu. All of these GameObjects share some common properties, with position, size, and scale being just a few of them. Also, all of these GameObjects share the same API we are taking advantage of right now, which are the Start and Update methods. Let’s look at how we can programmatically move the camera. To get started, let’s add a new property called:

public float speed = 2f;

Next we’ll want to replace our Hello World Debug.Log call with the following:

transform.Translate(new Vector3(speed, 0, 0) * Time.deltaTime);

As you can see, we have taken the transform position property and are modifying it with a new Vector3 that contains our speed value and is multiplied by the Time.deltaTime. If you simply increased the x position by speed, you are not taking into account any slowdowns in the game itself. By using the delta between each frame, you are able to keep your movement consistent from frame to frame, regardless of dips in the frame rate. This isn’t a magical formula; all it means is that your GameObject will move at the desired distance over time. So if the frame rate drops, movement will look jerky but won’t slow down or speed up as the FPS naturally fluctuates based on other things going on in the game.

If you run the game, you will see the camera move. It will appear like the box that we created earlier is simply scrolling off the left side of the screen. Stop the game and take a look at the camera’s Inspector panel. If you scroll down to the script area, you will see we now have a new input field called Speed we can alter.

This is an important concept in Unity. Basically, any public property on a script can be edited from the IDE in the Inspector window. So, while it’s important to create default values for your properties, just know that you can alter those values on an instance-by-instance basis, and even temporarily at runtime when you are debugging. This is incredibly powerful and something we will be taking advantage of later on. Not only does this work with simple properties, such as Strings, Numbers, and Booleans, but it also works with collections, such as Arrays and Lists.

If you remember back to our first example, we had a list called displayText, which we also made public. You should see it in the Inspector panel as well, but the value is hidden. Simply click on the arrow next to its property name. You can even add new items to it by changing the Size value.

So, at this point, you should have a basic concept of how scripting works in Unity. Everything we covered here will be re-introduced in the following chapter. There is just one last thing I want to cover, which is how to think through scripts for GameObjects.

Composition over Inheritance

If you come from a traditional computer science background or have worked with other object-oriented programming languages before, you may be familiar with the argument on composition over inheritance. One of the cornerstones of OOP languages is the concept of polymorphism. While inheritance plays a large role in game development, Unity strives for the use of composition as much as possible. I consider scripting in Unity to follow the decorator and component design pattern. Each script adds additional functionality to your GameObject, but they are mostly self-contained. While some scripts rely on others to function, as we will see in the game we end up building, we really strive to create small, reusable blocks of code that can be applied to multiple GameObjects. When put together, each of these smaller scripts build up to a greater set of logic that builds up the functionality of each GameObject. While inheritance is possible, I strongly recommend thinking through composition as a means to not only create more modular, self-contained code but to also separate and encapsulate independent game logic. This kind of thinking is critical when it comes to grasping the true power of creating scripts in Unity.

Wrapping Up

By now I am sure you are itching to get into more coding, so start playing around with some of the great tutorials out there on Unity. We’ll continue to add new posts about Unity, especially with working with the new 2D workflow, over the next few months so make sure you keep checking back.

Also, don’t forget that to checkout Amazon’s GameCircle plug-in for Unity to help you integrate cross-platform leaderboards, achievements, and game data synchronization. The plug-in works on iOS, Android, and Fire OS plus with the built-in Whispersync for Games component you can back up all of your user’s game data to the cloud across all three platforms. You can now download it from the Scripting/Integration section of the Unity Asset Store.

One of the questions we hear frequently from developers is which platform they should target first when building their app. Adrian Barritt, head of development at Barnstrom Games, along with his team asked the same question when planning their app The Chase. The Chase first launched in August of 2013 and was the first app that the team decided to launch in the Amazon Appstore. The app allows a team of four challengers to play against a machine to test their knowledge. When asked why they chose the Amazon Appstore, Adrian said that “the opportunity was huge, and [we] saw similar apps performing really well on the Amazon Appstore”. The team also mentioned that “it doesn’t hurt when you hear good things from others [Square Enix] and how impressed they were with the coverage they received” says Adrian.

Recently, we had the chance to sit down with Adrian to discuss how they got their app to rise to the top of the charts in the UK, and how they view their experience with Amazon Appstore. Here are some of Adrian’s observations:

500% Increase in Sales Upon Launch of Amazon Coins

“Our sales went pretty ballistic when Amazon launched Amazon Coins.” says Adrian. Amazon Coins are generally used by customers to explore and try out new apps. Customers can get Amazon Coins in a variety of ways such as purchasing or earning Coins for free. Developers can really benefit from this since there are a lot of customers waiting to use up their Coins on different apps. Barnstorm Games specifically saw their app benefit from this.

“Our sales went up 10-fold (1000%) for about a week during the Amazon Coins promotion when Amazon gave away a vast amount of Coins to their customers. Even after the promotion we saw a 500% increase in sales from what we used to get.”- Adrian Barritt

Part of Adrian’s strategy is understanding when consumers usually purchase apps. The team made sure that their app would be ready for launch before the holidays. As a result the team saw a “2000% increase on Christmas Day compared to our average sales we usually get per day”. Since then, the team continues to see a consistent increase of 200-300% in sales after the Coins promotion ended and is now consistently ranked among the top 3 apps in the UK.

“We are more than happy with our performance in the Amazon Appstore and our expectations have been exceeded” – Adrian Barritt

Transitioning the App to Google Play with Ease

One of the goals for Barnstorm was to expand their app onto more platforms. Since the team initially built their app on the Kindle Fire, they knew that Android would be a natural transition. So how was the process for transitioning the app over to Android? “The transition for creating an Android version was very easy since Kindle Fire was just designed that way.” says Adrian. You may recall that 75% of Android tablet apps that we tested just work on Kindle Fire with no additional development needed so it’s not surprising that Adrian said that “there was no additional work needed beyond supporting GameCircle and thinking what services to use. Other than that it was very simple.”

“Even though we are on Google Play as well now, the majority of the time the Amazon Appstore still performs better than Google Play in terms of revenue”.

Using GameCircle to increase Engagement

One service that Barnstorm is using to increase customer engagement is the GameCircle API. “With GameCircles’s achievement feature, it’s definitely helped us retain and engage our users” says Adrian. The team uses achievements to mark how well players are performing against others in “The Chase”, which has really improved average session length. After seeing the success with GameCircle, Adrian is currently looking into more services such as Amazon’s Device Messaging API to engage the audience even more by pushing out notifications to them.

Next Step for Barnstorm

The team has a new app that they just released in the Amazon Appstore called Tipping Point. The app is already topping the charts in the UK as well and the team has high hopes for it. Barnstorm also just participated in Amazon’s Free App of the Day program as well, helping them get even more exposure to customers.

One Game, Everywhere

Gone are the days where you can make a game and publish it to a single platform and expect to be successful. Like any business that sells consumer products, you need to go where the people are. That means the games you make should run on a multitude of different platforms and accept any number of different input types. There’s also one more catch: your players expect to be able to share their game data across all of these different platforms, especially if they are paying for your game multiple times. With that in mind I have outlined what I call “responsive game design,” which is modeled loosely after some of the core concepts of responsive web design. It’s also a framework that will help you think about enabling your games to scale across multiple platforms.

Applying Responsive Design Concepts To Games

On the web, responsive design is a set of guidelines and best practices that help websites scale from desktop to mobile. Web developers discovered early on that it was too difficult to maintain separate designs for desktop and mobile so this solution allows a site to re-adjust to any resolution based on a set of ideal screen sizes. While responsive design on the web focused solely on adapting a site’s visual design based on common viewports, the notion of responsive game design builds on this concept to include other key aspects you need to consider when making multi-platform games.

Responsive game design can be summed up in the following key requirements:

Game graphics and UI support multiple resolutions

Game mechanics work across multiple types of input

Publish to multiple platforms with the same codebase

Saved data is synced across all platforms

While most of these are already best practice for games in general, the collection of them represent a guideline for game designers moving forward to help reach the broadest audience possible.

1. Scaling Game Visuals Across Different Resolutions

If you come from desktop game development this is not going to be a big shock to you since it’s common practice to support multiple-resolutions and varying computer performance. While mobile development is relatively new in this space, over the past few years, mobile device resolutions have tended to normalize around a few key aspect ratios (3:2, 4:3 & 16:9) allowing the same desktop game concepts to be applied:

Build for aspect ratios not fixed resolutions

Create simplified, dynamic UI that can adapt to different resolutions

Have degradable graphics that can adapt to the power of the device

It’s also important to note that optimizing a game’s graphics goes well beyond just the resolution. Each system has different performance so being able to dynamically scale the game’s visual effects across these different platforms is critical as well. Especially when dealing with high pixel density displays, you could actually end up pushing incredibly high resolutions on devices that can’t fully support them. Also you may need to tone down specific special effects on mobile verses desktop or perform special optimizations when going to TV to account for slower display refresh rates. Make sure that you take into account these limitations and plan accordingly.

2. Supporting A Single Control System Across Different Input Types

A single game can support three types of input (mouse + keyboard, controller and touch) based on the device they are on. While thinking through each of these inputs, game designers should consider how their game will work going from desktop to tablet to phone and TV. Will the controls hold up on a system without physical buttons or should the gameplay be simplified a bit to account for the lowest common denominator?

It’s completely possible to have games work with a single input mechanic but a lot of planning and consideration must go into the overall design of the game. Most devices accept a game controller at this point so while not ideal, players can still plug one in if virtual controls are too frustrating. It’s especially important to take into account that not everyone who plays your games will have access to a controller. The Fire TV ships with a remote by default so if you want to capture the largest audience possible you’ll want to make sure you support the remote out of the box. You can still publish a controller only game but keep in mind that each input limitation you place on your game shrinks your potential audience accordingly.

3. Publishing a single game from the same codebase.

For years, developers had leaned on C++ as a cross platform solution to making games that work across multiple platforms. A successful port could be anything above 50% core reusability. I still know developers who build their own game engines that allow them to manually port from platform to platform but that process can be time consuming and if you are a small indie developer, the additional bug testing time may not possible to maintain across all the devices you want to support. That is why it is critical to find a cross publishing solution you feel comfortable with.

The most popular game engine today for indies is Unity 3D. From there other solutions, which grow in complexity, are Unreal Engine, CryEngine. There also some smaller more specialized game engines like GameMaker Studio. If pre-built game frameworks are not your thing, consider some cross compilers like HaXe, Monkey and CocoonJS. Either way there are many options and each will have some kind of impact on your end result or the platforms you can reach so do your research while designing your game.

4. Saving State Across Devices

What good is having a game that can be played on multiple platforms but the player needs to restart their progress every time? A key component to the responsive game design concept is allowing a single game session to extend across different devices allowing your player to start on one platform and continue on another. Imagine being able to play a Fire TV game at home then continuing your game on the go on any mobile device?

Steam was one of the first game publishing platforms to introduce cloud based game saving and since then more companies have offered similar solutions. The biggest issue is that these services are platform specific. For a developer to support different platforms, they would have to roll their own solution. However, built into our GameCircle API is WhisperSync, which can be used to not only have cross platform leaderboards but also sync game data across different mobile devices.

By adding GameCircle’s WhsperSync to your game, you can leverage this to let your players go from mobile (iOS, Android and FireOS) to the Fire TV for the full 10-foot experience then sync their game data back across all of these devices. While GameCircle doesn’t support PC syncing today, being able to have a consistent saved game mechanism for your mobile and Fire TV builds is a huge advantage for your players and a step in the right direction.

Where Do We Go From Here?

While this is just the foundation for a larger concept in game design, it’s up to you as the game designer to help define and shape the future of what gaming on multiple platforms means to the player. At Amazon we are incredibly focused on the customer and we build tools to help you as the developer serve them better. Over the next few years we will see more and more games that reach across platform walls to enable a gamer to pick the device and play style they want and with the correctly designed game, that player will have the same experience no matter where they choose to play your game.

Player engagement is the key to success for most mobile games, and Amazon GameCircle is designed to help developers increase engagement through player Achievements, Leaderboards, and game data synchronization. We recently added two new features: (1) expanded player profiles with cross-game experience points, called XP, which allow players to track and share their total play time and (2) GameCircle-created achievements across multiple games, called Badges, which enhance players’ overall GameCircle Profile. Players will enjoy these features as they offer new reasons to revisit favorites as well as incentives to try new games.

Your GameCircle-enabled game now helps players build their public reputation with their friends and the GameCircle community, an advantage over games without GameCircle enabled. The new GameCircle Badges help new players discover your game and re-engage existing customers as they return to satisfy the requirements associated with your game.

Longer Play Time with Experience Points

If your mobile game integrates GameCircle, then your players will automatically earn Experience Points (XP) for the time they spend playing your game; no changes are required to your code. In addition, each achievement in your game now carries an XP reward from 0 to 100 that you specify, up to a total of 1,500 XP for the entire game. We recommend allocating no more than 1,000 XP when launching a new title, leaving at least 500 XP for future expansion in case you add more achievements later. You can change XP allocation at any time for draft achievements, but once an achievement is published, its corresponding XP value is fixed for good.

By earning experience points through playing your games, a player increases their GameCircle Level compared to their peers. GameCircle Level increases steadily as players earn XP for spending time and unlocking achievements in GameCircle-enabled games. For current players with an existing GameCircle account, Amazon has already given them XP, and the appropriate GameCircle Level, based on the achievements they unlocked in the past. New players joining after today will begin at Level 1.

Integrating GameCircle into your mobile game benefits your players, who automatically receive more XP the longer they play. If you take advantage of the GameCircle Achievements service, your game becomes eligible for cross-game badges which offer even more opportunity for players to advance.

Badges Mean More Discoverability

In addition to Experience Points, GameCircle also includes new support for special Badges. Badges are cross-game achievements awarded by GameCircle. These are earned by completing challenges associated with unlocking specific achievements in select games of similar type or in a particular game genre. Up to three badges can be displayed on the player’s profile so he or she can show off favorites earned so far.

For example, players can earn the Zombie Killer badge for unlocking certain achievements in three zombie-related games. Similarly, the Burning Rubber badge is awarded for unlocking specific objectives in two driving games. At launch, there are close to forty special badges available.

Zombie KillerBurning Rubber

For players who don’t know your app (but have played similar titles), genre-spanning Badges or Badges connecting similar achievements in other games may serve as an introduction to your product. Existing customers may rediscover your game as they explore Badges in game categories that intere them.

GameCircle: Designed to Increase Engagement

GameCircle has always offered Achievements, Leaderboards, and game data synchronization through Whispersync for Games. With these updates to the player profiles—including Achievement XP, GameCircle Level, and Badges—players can easily track and compare their progress across all GameCircle-enabled games.

GameCircle is designed to increase player engagement, improve retention, and enhance the customer experience when playing mobile games on iOS, Android, or Fire OS. For more information about player profiles mobile development, see our online documentation:

Note: Effective 08-26-2015 Free App of the Day (FAD) has been replaced with Amazon Underground.

Reviving the Classics

DotEmu is a Paris based company that specializes in breathing life into classic games on modern platforms founded by Xavier Liard and Romain Tisserand. After being established in 2007, they quickly made a name for themselves as a developer with well received ports of games like Square Enix’s Final Fantasy VII and VIII for Steam, SNK Playmore’s titles such as Metal Slug 1,2,3,X and King of Fighters 97. More recently, DotEmu became a publisher as well and released popular brands such as Double Dragon, Another World, R-Type and Raiden. They have been moving to mobile and chose to publish their Android based ports on the Amazon Appstore.

I was a huge fan of these games growing up so getting the chance to find out how DotEmu was finding success on the Amazon Appstore was a personal thrill.

With so many games being released for the Amazon Appstore, DotEmu tackled the problem from the top down. “From a business perspective we needed to make sure all the costs associated to the publishing of our games on Amazon were below the revenues we could expect.” But this all comes down to an important question on how you can manage the time investment for supporting a new platform like Fire OS and maximize the return on investment (ROI) at launch.

Integrating GameCircle into an Existing Codebase

DotEmu’s Android games are built with Cocos2d-x on top of their own custom technology with features to handle multiple achievement/score API support, controllers support and more. When approaching the way to integrate Amazon’s GameCircle API into their existing codebase, DotEmu took a forward thinking approach. They spent the time upfront to integrate the GameCircle API correctly into their framework. While this integration initially took them two weeks for their game engine, it now takes only a few days per game thanks to the effort they initially invested upfront. With this quicker development time plus an additional 1-2 days of QA time for each new port, DotEmu can now easily bring additional games over to the Amazon Appstore that offer the extra features that GameCircle provides.

After receiving a few thousand purchases per game released on the Amazon Appstore, DotEmu is already seeing a return on their time invested. That means moving forward, any additional release with GameCircle support is immediately profitable after launch given the upfront work the put in early on. But there’s more to being successful in the Amazon Appstore than just the time that goes into integrating our APIs.

Working Closely with Amazon for Launch

Marketing your game in the store makes all the difference and DotEmu took advantage of working with our editorial team to create the biggest impact they could at launch. “Amazon is [a] very efficient [way] to advertise our games to the gamers liking retro games.” said DotEmu. In addition since the team didn’t require much help with the porting process, they were able to focus more on the marketing side things.

The good news is that this sort of help form Amazon isn’t reserved for top publishers. Any developer can apply for our Free App of the Day (FAD) promotion to work directly with us to help promote your game and gain brand awareness once you are accepted into the program.

Premium Pricing Still Works

So how did the team do? According to DotEmu, they “generated between 10.000€ and 50.000€ of net revenue on the Amazon Appstore in total”, all of which came from premium priced apps (as opposed to in-app products or advertising). Of course it helps to have a game with a recognizable brand for customer loyalty but it also depends immensely on the quality of the end product. The experience has been a success for DotEmu as they received a positive return on their investment in getting their first game into the Amazon Appstore.

By taking the time to implement Amazon’s GameCircle APIs in a way that supports future projects they can now release games with deeper integration on the platform and continue to increase their ROI. “The way to be successful with Amazon is to really think about long term business relationship and not to just release one game and pray for results without any support from the Amazon team.” according to DotEmu. This way of thinking is true about any platform, not just ours.

Let Us Help You Succeed

The audience for retro gaming is growing in the Amazon Appstore and with the help of great partners like DotEmu we are helping expand that category and open it up to our user base. We can’t do it without more great games like the ones being produced by DotEmu so keep them coming and take advantage of our platform’s unique APIs such as GameCircle as well as marketing opportunities like FAD to help grow your audience.

Screenshot from Another World on the Kindle Fire.

According to DotEmu “Today getting noticed in the digital world is extremely difficult and we can bet it will be more and more difficult in the future” which is why they also went on to say that “building up a long term business relationship with Amazon is consequently a no-brainer”.

Additional Resources

For more resources on publishing Android games to Fire OS, integrating with GameCircle and the FAD program, check out the links below:

Founded in 2011 Pixowl, Inc is a mobile games developer headquartered in San Francisco, CA. With the success of its four iOS games, The Sandbox, Greedy Grub, Doodle Grub and Safari Party, Pixowl has made a name for itself in casual mobile games. Their game, The Sandbox, is a unique world-building and crafting game in 2D with touch controls and access to over 150+ physics elements. Players can craft amazing worlds, create pixel art, chiptune music, electric circuits or just play with physics.

I had a chance to sit down with Sebastien Borget, COO and Co-Founder at Pixowl and ask him about Pixowl’s experiences porting The Sandbox to the Kindle Fire, what type of success Pixowl has seen in the Amazon Appstore, and what it was like implementing many of the APIs available in the Amazon Mobile App SDK.

Betting on the Amazon Appstore pays off

“We have built with Amazon an improved version of The Sandbox which is deeply integrated with Amazon’s GameCircle service for a more seamless experience on Kindle Fire.” – Sebastien, Pixowl

Pixowl was able to submit The Sandbox early on in the Amazon Appstore’s launch. “We were present at an event organized by Amazon UK to present other developers success stories on the Amazon Appstore. While it was still in an early stage of maturity we were really impressed by the performance the apps had already seen there. This convinced us we had to be among the early movers and adopt a cross-platform strategy fitted for each partner. Now, we couldn’t be happier about this decision as the Amazon team has held all of its promises and has been over achieving for us.” recalls Sebastien.

For the Kindle Fire version of The Sandbox, Pixowl decided to integrate Amazon GameCircle allowing a more seamless experience. GameCircle is a free, cross-platform API from Amazon that provides everything you need to implement achievements, leaderboards, and saved game syncing across any device, regardless of mobile platform. Once you integrate GameCircle, customers can play and interact with other gamers across any mobile device.

“Amazon is proving that Android users could be as engaged with games as on other platforms and made it worth considering alternative distributions models, with a huge revenue potential.” – Sebastien, Pixowl

“For us, the decision making process was relatively easy. On a business perspective, we wanted to make sure that the platform had enough of our core audience: kids and casual players, from 5 years old to 20+ . On the technical side, we had to check what level of compatibility with existing Kindle models was, evaluate the adaptations required and make sure we could provide the best game experience on the devices.” says Sebastien.

Quick porting process and easy Amazon Mobile App API integration

Pixowl already had an existing Android version of The Sandbox so moving to the Amazon Appstore was relatively quick. “The overall porting process took us 2 weeks maximum including development and testing. We are developing in C++ with Cocos2DX and everything worked almost seamlessly.” says Sebastien.

The Sandbox follows the “freemium” monetization model; a free download to all Amazon customers the games utilizes Amazon’s In-App Purchasing API to unlock additional campaigns of level or acquire elements faster.

The API offers a completely Amazon hosted checkout experience to customers and integrates fully with their Amazon account. They can choose to utilize their 1-Click purchase settings as well as Amazon Coins which now work on both Android and Kindle Fire devices.

According to Pixowl the Amazon Appstore represents 5% of the total downloads volume from all Android marketplaces, but over 20% of their total Android revenues. Some days, it’s could be as high as 50%! “That’s very close to the performance we’re seeing with Apple iOS!” says Sebastien.

According to Pixowl Amazon is proving that Android users can be as engaged with games as on other platforms. It made it worth Pixowl considering alternative distributions models, with a huge revenue potential. “Success is no longer determined just by the amount of downloads, but by their quality. Go for the full experience with Amazon. It’s really worth it!” says Sebastien.

You can check out The Sandbox in the Amazon Appstore here. You find out more about the Amazon In-App Purchasing API here and the cross-platform GameCircle API here.

In a previous case study, you heard about the tactics that Big Blue Bubble uses to monetize their free to play (F2P) games. In this study, we’d like to share how June Software increased their app exposure by going from an iOS-only producer to an iOS and Android platform producer, and how their presence in the Amazon Appstore has racked up higher Average Revenue per User (ARPU) than any other app store.

June Software is a small San Francisco based software company founded in 2008. They build casual, arcade games and e-learning games for children. Initially June Software only built games for iOS where they have titles such as Math vs. Zombies and Guess the Movie, which is ranked #3 worldwide and is #1 in Australia.

June + Unity + Amazon Appstore = Less Friction, More Revenue

To grow their customer base, June Software decided to address the Android marketplace. June chose to port their iOS games to Android using Unity. Unity allows them to build their app once and deploy it to multiple app stores, including the Amazon Appstore.

When we asked about their experience on Amazon apps store, June Software Director Products Saurabh Jain said: “On Amazon, we have seen 2x times the ARPU [we see] from Google Play, and 1.2x [more than] than Apple AppStore. The overall downloads aren’t there yet, but the revenue makes it a very good market for us.”

Increasing Time in Games Increases Potential Income

One effective strategy that Saurabh implemented is that they have integrated Amazon IAP and GameCircle features in their games, which increased potential revenue and player engagement. GameCircle includes features such as leaderboards and achievements that keep players engaged and can increase user session time and session frequency, giving uses more opportunities to make IAP purchases. And it works on Android and iOS. This is exactly what June Software needs for their games available for both platforms.

What can you do?

To learn more about using Amazon GameCircle in your Unity apps, read this blog post and refer to this documentation.

If you develop apps or games with Unity, you may already be using Amazon’s GameCircle plug-in for Unity to integrate cross-platform leaderboards, achievements, and game data synchronization. The plug-in works on iOS, Android, and Fire OS, connecting your app to Amazon’s GameCircle service. Its leaderboards and achievements encourage friendly competition and replay, while its Whispersync for Games component backs up game data to the cloud, improving the customer experience. With GameCircle, gamers won’t lose their progress if they reset their device or buy a new one.

If you haven’t used the GameCircle plug-in yet, you can now download it from the Scripting/Integration section of the Unity Asset Store. Accessible directly from within the Unity development environment, the Unity Asset Store makes it fast and convenient to add editor or game functionality through third-party extensions like the GameCircle plug-in.

This official GameCircle plug-in is compatible with iOS and Android phones and tablets, as well as Kindle Fire, Kindle Fire HD, and Kindle Fire HDX devices. Add the plug-in to your project to access GameCircle leaderboards, achievements, and Whispersync for Games.

In addition, the GameCircle plug-in also works with the Unity Social API, which provides a unified interface to social back-ends such as Game Center and Xbox Live. Set the active social platform to GameCircle and calls to the Unity Social API will pass through to the GameCircle service in the same way:

Since Unity’s Social API is designed to be a generic interface that works across many services, it doesn’t support every feature of every back-end. GameCircle leaderboards and achievements work seamlessly, for example, but Unity’s Social API provides no hooks for game data synchronization. To use some advanced features of GameCircle, like Whispersync for Games, simply call the API through the normal GameCircle interface. It’s easy to use the two APIs side-by-side, and the plug-in includes a sample scene to help you get GameCircle and Unity’s Social API up and running together.

Check out the official GameCircle plug-in in the Unity Asset Store. It’s easier than ever to get started integrating GameCircle’s leaderboards, achievements, and Whispersync for Games in your Unity-based game for most mobile devices. You can also visit our developer portal for more detailed information about using GameCircle and Unity together, as well as links to help you call other Amazon services from your Unity projects.

Note: Effective 08-26-2015 Free App of the Day (FAD) has been replaced with Amazon Underground.

Getting the right exposure for your app is a key ingredient to making it successful. Amazon already has several programs which developers can leverage to help drive visibility to their apps, and developers who want even more visibility think outside the box to tailor their customer experiences to increase engagement with their apps. Tribeplay is one of those game publishers who did just that, by issuing a price discount promotion that drastically increased their revenue.

The team which is based out of China has been building apps since 2012 and created the series of games under the title Dr. Panda that first appeared on iOS and Android. According to Tribeplay, making their Android Apps available on the Amazon Appstore required “little to no extra tweaking.” Tribeplay added that “one of the best things about the Amazon Appstore is that there wasn’t much work to get our apps on there. We already develop for Android, so getting our games on the Amazon Appstore was a real breeze.”

The games are available worldwide, but the team wanted to increase sales in Europe so they discounted the price of their apps by more than 50% in select countries. By doing so, Tribeplay saw their gross revenue more than double in UK, Germany, France, Italy, and Spain.

So how did the team accomplish this? Tribeplay ran banners highlighting their price promotion, which caught the attention of customers in the Amazon Appstore. When the Amazon Appstore recognized that their app was trending in customer popularity, Amazon assisted by providing more visibility for the app. “The suite of tools for promotions and sales [that Amazon provides] to help market our apps on the Amazon Appstore more effectively are very valuable.” said Tribeplay, the creators of Dr. Panda. The team saw the app’s sales more than double during the time period, when they increased the visibility of their app.

Aside from the sales uplift, Dr. Panda was also able to reach a new and unique developer audience on Amazon. “Amazon Appstore is a fantastic platform for us and continues to get better. Through Amazon we’ve been able to reach a whole new demographic and really succeed with them. The fact that the Kindle Fire device line is so integrated to the store has also been a great benefit for both developing and marketing our apps with Amazon customers in mind.” The teams recently joined the Appstore Developer Select program and integrated the Mobile Ads API and are excited to see how the results will turn out. By participating in these programs, the team will receive additional impressions for their app, home page placements, and customized ads for their app in the US.

So how can you increase visibility? Besides having your app perform well, you can ensure your app qualifies for the Appstore Developer Select program, or get your app featured in the Free App of the Day program. If you’re looking for something similar to what Tribeplay did with their promotion, check out the Developer Promotions Console, which allows you to easily discount your apps. Getting your app onto these programs only requires a couple pre-requisites and they all aim at providing visibility for your app. For example, for your app to qualify for the Appstore Developer Select program, it must utilize relevant API’s such as Amazon In-App Purchasing, Amazon Mobile Ads, and Game Circle that all contribute to enhancing the user’s experience in your app. If you need help with these requirements we have a lot of resources available as well. “The Amazon team has always been amazing with their help and advice. Questions we ask are always answered promptly and accurately, and any problems we’ve had have been solved super quickly.” says Tribeplay.

Adobe AIR Native Extensions for the In-App Purchasing and GameCircle APIs are now available for mobile app developers. If you create your mobile games using Adobe’stools, you can now use these extensions to rapidly add both In-App Purchasing for virtual goods and GameCircle for leaderboards, achievements, and Whispersync for Games.

The Adobe Gaming SDK enables developers to package ActionScript code into native apps for Kindle Fire, along with other devices. The Gaming SDK and the Adobe Game Developer tools are designed to help developers create rich,interactive experiences expertly and efficiently, supporting popular features such as hardware-accelerated graphics.

The new AIR Native Extensions are available today for free as part of the Amazon Mobile App SDK. You can download the latest version here. Just follow the simple instructions in the documents to get started. Of course, you’ll also need AIR in order to use the extensions.You can learn more about the Adobe Gaming SDK and Adobe Game Developer Tools here.

We recently released an update to the Amazon Mobile App SDK that includes improvements to GameCircle and some related components on both Android and iOS. It updates GameCircle’s dependency on the latest version of Amazon Insights, corrects a few bugs, and expands API coverage of the Unity3D plug-in. For all of these reasons, we recommend migrating to the latest SDK when convenient.

Both GameCircle and its Unity3D plug-in now take advantage of the latest version of Insights, part of Amazon’s Analytics service and the piece responsible for generating Achievements Reports. Insights SDK on iOS removed a dependency on CoreTelephony.framework, while the Android version corrected an issue specific to certain device Locales and improved support for other IAP frameworks. In addition, session timeouts now behave more consistently across platforms.

GameCircle initialization has also been optimized on both iOS and Android, and GameCircle now ensures that its Javascript components are updated when migrating to a new version of the SDK. The Unity3D plug-in supports the latest Whispersync for Games syncable type, DeveloperString, which should make it easier to store arbitrary, non-mergeable game data from your Unity3D game. The plug-in also exposes the ability to show the GameCircle sign-in page.

Check out these latest changes to the SDK, and watch this space or future updates. We’re always working to improve performance, usability, and reliability of our services for mobile apps and games.

Amid all the hoopla around GameCircle’s expansion to iOS and a major update to Whispersync for Games, you may not have noticed two other powerful features were also released recently. The GameCircle team quietly added support for bulk creation of leaderboards and achievements on the Mobile App Distribution Portal, as well as the ability to internationalize them in up to eight languages besides US English. Both have been popular feature requests.

Internationalization means that GameCircle will display the title and description of your leaderboard or achievement in the language appropriate to your player’s locale, provided they have specified it in their mobile device settings. You can provide translated descriptions in any or all of these languages:

You enable these alternative versions by selecting them from the Add a Language dropdown list on the Leaderboard or Achievement view for your game. To view your game’s leaderboards, for example, go to the GameCircle configuration page and follow the View link in Leaderboards column.

Adding an additional language is not reversible, but you specify which ones to publish, so there’s no harm done if you change your mind or add the wrong one: simply don’t publish that version of the title and description.

Once you add a language, you will see a new corresponding line item for each leaderboard or achievement, which is independently editable.

Providing alternative versions for each title and description, while straightforward, may become unwieldy when you are translating for a lot of locales, or just have lots of leaderboards or achievements. In fact, as the number of leaderboards and achievements goes up, entering all of the other information required to create them definitely makes manual entry time-consuming.

This is where GameCircle’s new bulk upload facility becomes really handy. Rather than create each achievement individually, for example, you can create a file of comma-separated values (CSV) defining all of your achievements at once. From the list of Achievements for your game, click the Bulk Add Achievements button.

On the page that appears, download a CSV template via the click here link. Open the template and fill in the columns as appropriate, then save it locally. See the Create Multiple Achievements section of Implementing Achievements for more information on each column. You will notice, for example, that there are separate columns for each possible translation of title, locked description, and unlocked description. Icon ids for locked and unlocked versions of the achievement are shared across all languages.

Before you can upload the CSV file defining your achievement (or leaderboard) metadata, however, you must upload the icons it refers to. GameCircle provides an Icon Gallery for this purpose, which allows you to add, delete, and rename icons individually or by dragging and dropping them on a web page. You can view the Icon Gallery for your game from the GameCircle configuration page. See Using the Icon Gallery for more information.

Once the icons have been saved and the CSV file updated to reflect your achievement metadata, you’re ready to upload. Click Choose File and navigate to the file you just edited, and then upload it.

Mobile apps and games distributed through the Amazon Appstore for Android are available in nearly 200 countries worldwide, and now GameCircle allows you to provide title and description translations for several of them. Entering the metadata that defines your achievements and leaderboards also got easier, now that you can upload it as a CSV file. Added in response to developer feedback, these features were designed to complement each other and make working with GameCircle fast and simple.

"The $2.87 eCPM we saw through Amazon far exceeded our expectations. Now we're racing to get Amazon integrated in all of our apps across all Android stores," says Mahesh Khambadkone, Co-Founder of Games2Win. See how Games2Win uses the Amazon Mobile Ads API to increase their earning by 733% on their Kindle Fire apps with eCPM up to $2.87. Click here for more monetization tips.

As I was reviewing our catalog of blog posts and thinking about blog posts we should write in the coming weeks, I was impressed by the number of ways Amazon helps developers monetize their apps. I thought it would be a good idea to recap those here!

Programs and Promotions

APIs

(no coding required)

(coding required)

Amazon Coins

In App Purchasing

Free App of the Day

Mobile Ads

Test Drive

Mobile Associates

Personalized Recommendations

Game Circle

A|B Testing

To learn more about the items above, please continue reading below.

Reach

No development effort is required to take advantage of Amazon’s reach.

• In nearly 200 countries - The Amazon Appstore is available in the hottest app-buying markets in the world.

• The only store on Fire - The Amazon Appstore is the only app store on Kindle Fire, the best selling Android Tablet worldwide.

Programs and Promotions

No development effort is required to take advantage of our programs, but you do need to sign up for Free App of the Day.

• Amazon Coins – a virtual currency that users can get for up to a 10% discount, but still pay the developer the same as actual currency

• Free App of the Day – Just tick the checkbox when submitting your app and you will be considered for the program.

• Test Drive – By removing friction for customers who want to try apps, the more apps they will try. Those customers are more likely to find apps they are excited to download. In this way, Test Drive helps customers understand the value of premium apps and helps drive downloads of freemium apps. Since Test Drive launched, it has been enabled on over 16,000 apps.

Development is required to make money with our APIs, and we’re working hard to make that effort as easy as possible. These are the APIs I’d like to talk about now.

In-App Purchasing (IAP): If you wish to sell digital assets like game currency or access to features or data within your app, the In-App Purchase (IAP) API has three good options for you:

Selling lasting items: If you have an app in which users need ownership of something durable, say, a new sword for their dungeon crawler character, you would use an IAP entitlement transaction. If you have a productivity app that has a set of advanced features you want to sell at a premium, you don’t need to have a free and a paid version of your app in the appstore; you need only one free version with an IAP entitlement inside to purchase access to the advanced features.

Delivering content or value over time: You could even collect $0.99 every month for the advanced features of your app if your users would rather subscribe to advanced features. For this, you would use the subscription IAP item. Access to advanced features would be available while the subscription was active, and inactive otherwise. You can also use subscription IAP items so a user can subscribe to a stream of entitled items like magazines. As long as you are subscribed, you get issues that you become entitled to even after your subscription ends.

Consumable items: If you have an app in which the user spends game currency, you would want a consumable IAP transaction. In a consumable IAP transaction, users get a set quantity of something, usually power-ups, hints, un-do actions or coins that they consume during play. Once they are out, they can buy more.

Mobile Ads: If you want to collect revenue by displaying ads on your site, then the Mobile Ads service is for you. You can display a traditional banner advertisement (anywhere on your screen above the fold), you can display expandable interactive ads, and you can even pop up large views displaying our largest ads for an interstitial ad experience.

Mobile Associates: If your app is a natural compliment for a physical good, then you will like the Mobile Associates program and API. If, for example, you have a GPS phone app, you could probably earn some revenue share income by offering hiking or outdoor-related items from the Amazon.com store to your customers. Your revenue-share in the Mobile Associates program varies depending on the category of the item sold, but you can use this API set to sell one item and never have the user exit the context of your app, or you can collect a rev-share on an entire shopping-cart of items that a user will purchase in the Amazon.com UI.

Other APIs

Okay, these APIs don’t generate revenue directly, but they are so important to generating revenue I had to find a way to get them in this post.

A|B Testing: Now you can test to see what makes more money in the real world.

Have you ever wondered if placing an In-App-Purchase dialog box at the beginning of a level or at the end of a level would result in more revenue? Now you can find out which is actually best with real users. You can test any set of conditions and successes to find the combination that is most profitable for you. And you can change the variables and the mix without having to re-submit your app. (works on all Android app stores).

GameCircle: The current version of GameCircle is free, and provides your users with saved game syncing, achievements, and leaderboards that work on most Android apps sold from any Android marketplace. The cross-store capability is nice, but the big take-away here is that games with GameCircle make 83% more average revenue per user than games that don’t.

So it turns out that there are a lot of things Amazon is doing to help you make the most from your app (documentation for the APIs can be found in our dev portal here) It’s easy to start selling your apps on Amazon. Just click here to create a free account today.