Developer Console
Gracias por tu visita. Esta página solo está disponible en inglés.
Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

Showing posts tagged with GameCircle

July 04, 2013

Peter Heinrich

Continuing our series of success stories from developers around the world, we go to France, where developers are witnessing strong positive results less than a year after the launch of the Amazon Mobile App Distribution Program in August 2012.

Ubisoft’s PC and console titles have been available on Amazon for a long time, helping to build a great partnership between both companies over the years. As Ubisoft strengthened its mobile offering, it was a natural progression for their Android games to be made available on Amazon and to Kindle Fire users. Dominique Tardieu, Sales and Marketing Director at Ubisoft Mobile, explains: “Amazon and Kindle Fire tablets hold a significant potential for our mobile games as they become more and more widespread. Also, Amazon has developed a meaningful ecosystem for Kindle Fire games via Amazon GameCircle. This gives us the possibility to leverage the social aspects of our games, through Player vs Player functionality and leaderboards, for instance.”

Since September 2012, Ubisoft has successfully launched a variety of best-selling games on Amazon, including Rayman Jungle Run, Prince of Persia, and (more recently) Nutty Fluffies. An important element of these games’ success so far has been Amazon personalization and recommendations. Tardieu says, “The experience they bring in terms of customer relationship management and knowledge of the industry has made it possible for us to ensure a successful launch for all our titles. Amazon clearly benefits from the know-how acquired over the years working on Ubisoft’s console and PC games and has learned how to harness it to successfully promote the right content to the right consumers.”

About Ubisoft:
Ubisoft is a leading producer, publisher, and distributor of interactive entertainment products worldwide and has grown considerably through a strong and diversified line-up of products and partnerships. Ubisoft has offices in 26 countries and operates in more than 55 countries around the globe. It is committed to delivering high-quality, cutting-edge video game titles to consumers. For the 2011-12 fiscal year, Ubisoft generated sales exceeding €1 billion. To learn more, please visit: www.ubisoftgroup.com

 

June 30, 2013

Peter Heinrich

We just released a major update to Amazon GameCircle, our free game service providing achievements, leaderboards, and Whispersync for Games. Games on all Android devices (including Kindle Fire, of course) can now integrate GameCircle, which is easy because we support Java, JNI, and Unity3D. Whether you submit your game to Amazon or Google, customers will benefit from the GameCircle experience. In addition, Whispersync has been dramatically improved, becoming the first and only cloud-save service to:

1) Automatically resolve data conflicts between mobile devices and the cloud,

2) Queue updates to support offline operation, and

3) Offer a simple interface that can be integrated in minutes.

The result: Your customers’ game data will automatically sync across devices—even if they play your game while temporarily offline—and you can concentrate on using the data instead of persisting it. You’re not locked in, though; you retain ownership and can always get a copy of the data you store.

We also give you flexibility when it comes to GameCircle display options, with no intrusive splash screen and configurable notification toasts. You’re in control and choose where they appear.

I’ll provide more technical details about these enhancements in future posts, but for now, let’s take a closer look Whispersync and explore its powerful new features and simplified interface.

Whispersync for Games

Whispersync does the heavy lifting when it comes to synchronizing local data to and from the cloud. It handles the tricky scenarios that you would normally have to deal with yourself, like conflicting updates from multiple devices or sync requests from a device that’s temporarily offline. You can also stop worrying about scalability; behind the curtain, Whispersync (and all of GameCircle) is powered by Amazon Web Services like S3 and DynamoDB.

Using Whispersync is easy through an API that has been completely redesigned, providing an interface similar to SharedPreferences. Saving game data to the cloud and synchronizing it between devices is as easy as retrieving a variable from a map and using (or changing) its value:

    // Get the global game data map for the current player.
    GameDataMap gameDataMap = AmazonGamesClient.getWhispersyncClient().getGameData();

    // Look up the object representing the player’s skill rating.
    // If none exists, one will be created.

    SyncableNumber skillRating = gameDataMap.getHighestNumber("skillRating");
    System.out.println("skillRating = " + skillRating.asLong());

    . . .

    // Update the value. As long as this device is online (or as soon as
    // it is), local and cloud storage will be synced.

    skillRating.set(MAX_SKILLRATING);

Whispersync maintains a singleton instance of GameDataMap that acts as the root of your game data. It can track numbers, strings, simple lists, and other maps, and gives you complete freedom in how you represent your game data using these basic syncable types. You add new variables simply by retrieving them by name; if they don’t exist, they’ll be created on the fly and synchronized from that point on.

How Whispersync applies updates and resolves conflicts depends on the way you access each syncable variable. For example, suppose you want to retrieve the current user’s best (highest) level across all devices:

    GameDataMap gameDataMap = AmazonGamesClient.getWhispersyncClient().getGameData();
    SyncableNumber bestLevel = gameDataMap.getHighestNumber( "bestLevel" );
    System.out.println( "bestLevel = "  + bestLevel.asLong());

In this case, because “bestLevel” is retrieved as a highest number, it will always reflect the maximum value ever assigned to it, from anywhere, on any device.

String values can also be synced. You could easily set the name of the latest power-up collected:

    gameDataMap.getLatestString( "lastPowerUp" ).set("Super Boingo"); 

The syncable string associated with “lastPowerUp” will always reflect the value most recently assigned to it.

The online documentation and Javadoc included with the SDK have more information on the syncable types Whispersync supports, as well as the ways in which each may be accessed.

Practical Applications

Let me provide a few more examples to illustrate just how straightforward synchronization can be.

Recording Star Count for Several Levels

A common pattern in many games is to show stars and unlock status for each level on a level selection screen. Here’s an example of using Whispersync to track individual star values for multiple levels:

  SyncableNumber[] getLevelStars() {
     GameDataMap gameDataMap = AmazonGamesClient.getWhispersyncClient().getGameData();
     SyncableNumber[] stars = new SyncableNumber[NUM_LEVELS];

     // Get the star counts for all levels.
    
for (int i = 0; i < stars.length; i++) {
        stars[i] = gameDataMap.getHighestNumber("levelStars" + i);
     }

     return stars;
  }

The first time the score values are accessed (from anywhere), Whispersync will create entries for them in the cloud, so there’s no need to declare them ahead of time.

Accumulating a Running Total

Some progress, like coins collected or time played, represents a running total that is always updated using a delta amount. Instead of setting the value directly, you just submit the amount by which it should change. Whispersync automatically adds or subtracts this value to update the current total. For example:

 void addTimePlayedToTotal(long timePlayed) {
    GameDataMap gameDataMap = AmazonGamesClient.getWhispersyncClient().getGameData();
    SyncableAccumulatingNumber totalTime =        gameDataMap.getAccumulatingNumber("totalTime");

    // This object may be incremented/decremented with long, double, and
    // BigDecimal values.

    totalTime.increment(timePlayed);
    System.out.println("Total time played: " + totalTime.asLong());
 }

Keeping a Map of Maps

By embedding a map within a map, you can create a hierarchical data structure. If your game has multiple worlds, for example, you might keep a separate GameDataMap for each one. Each of these might contain additional maps—say, one for each level.

 GameDataMap getWorldData(String name) {
    GameDataMap gameDataMap = AmazonGamesClient.getWhispersyncClient().getGameData();

    // Get all the string keys associated with top-level GameDataMap objects.
    Set<String> worldNames = gameDataMap.getMapKeys();

    // Look for a match among the maps.
    for (String currentName : worldNames) {
       if (currentName.equals(name)) {
          // A map exists for the name specified.
          return gameDataMap.getMap(currentName);
       }
    }

    // No match found. Don't create one.
    return null;
 }

Maintaining a List of Numbers

A racing game might save a player’s top three best times using a syncable number list. In this case, you could create a list for low numbers—they decrease as times improve—but you could easily choose to retain a collection of the highest or most recent values in other situations.

 // We'll initialize this once the application has launched.
 AmazonGames agsGameClient;
 GameDataMap agsGameData;
 SyncableNumberList agsBestTimes;

 // Create a callback to handle initialization result codes.
 AmazonGamesCallback agsGameCallback = new AmazonGamesCallback() {
    @Override
    public void onServiceReady(AmazonGamesClient client) {
       agsGameClient = client;
       agsGameData = AmazonGamesClient.getWhispersyncClient().getGameData();

       // Establish how many slots will be allocated and preserved.
       agsBestTimes = agsGameData.getLowNumberList("bestTimes");
       agsBestTimes.setMaxSize(3);
    }

    . . .
 };

  void finishLap(double time) {
   // Every time a lap is completed, try to add the lap time
   // to our list of best times. Only the lowest three will
   // ever be preserved.

   agsBestTimes.add(time);
 }

Every time the player finishes a lap, finishLap() would be called to update the number list. The value specified will be discarded unless it is lower than one of the current entries.

More to Come

The GameCircle improvements released in the latest update deserve more attention than the brief overview I’ve given here, so I’ll add details in the coming weeks. Look for articles dedicated to JNI; advanced API features; and using GameCircle with frameworks such as Unity3D, Cocos2d-x, and Marmalade. I’ll also dive deeper into Whispersync, discussing the difference between mergeable and non-mergeable data (and why it’s important), considerations when synchronizing currency across offline devices, and migration from the previous version. Stay tuned!

In the meantime, check out the new GameCircle release and give it a whirl. You’ll benefit whether you use the simplified Whispersync API and its expanded functionality, create a universal build to run on Kindle Fire and Android, or take advantage of the other features included with this update.

April 10, 2013

Peter Heinrich

Not familiar with Amazon GameCircle? Read how easy it is to add achievements, leaderboards, and save-to-cloud features to your next game.

From a game developer's perspective, the Amazon GameCircle API offers a lot of advantages over home-grown achievements and leaderboards, not to mention data synchronization to the cloud or between devices. It instantly provides a social aspect to your game with very little coding, and simplifies progress saving and back-up (two of the features most requested by customers).

GameCircle isn't just about developer convenience, though--customer experience is also critical. We see again and again how integrating GameCircle improves user engagement and conversion, so we know it provides value to game players as well as game developers. More engagement and better conversion leads to increased average revenue per user, so GameCircle may add directly to your bottom line.

With this in mind, we've developed a few guidelines to help maximize GameCircle's contribution to your game. These best practices have grown out of our own experience, as well as those of other developers with successful games using GameCircle. If they seem like common sense ways to make the user experience better, you're right.

Leaderboards

Order – Keep in mind that the first leaderboard listed for your game will be the one to appear on the GameCircle summary screen. Give that slot to a leaderboard that will provide useful information game-wide, as opposed to a specific level or section. The Amazon Mobile App Distribution Portal supports drag-and-drop ordering of leaderboards, so making changes is easy.

Descriptions – It seems obvious, but each leaderboard should have a description, making it clear to the player what is being tracked.

Draft/sandbox – Remember that leaderboards (and achievements, too) are considered "draft" until they're published from the Distribution Portal. Only players who have been added to the GameCircle sandbox for your app can view unpublished leaderboards or post scores to them. When you're ready to make the leaderboard publicly available, check the appropriate Status box to mark it Ready to Publish, then click Start Publishing.

Note that this step cannot be undone, as un-publishing a live leaderboard might lead to a poor user experience if an app expects a leaderboard to be available. However, after publishing a leaderboard, you'll still be able to reset a leaderboard's high scores from the Distribution Portal, which may be useful for weekly quests or contests.

Multiple game support – You can easily share one set of leaderboards (and achievements) with multiple versions of your game. If you release separate Free and Paid versions, or offer Standard and High Definition variations of your game, choose one version of your game to be identified as the "master," and then create your leaderboards and achievements for that version only. Then just add the package/signature pair of each version that will use the shared leaderboards and achievements to the “master” whitelist registry.

Achievements

Order – GameCircle automatically shows users the next locked achievement, encouraging them to keep on playing. Arrange achievements in the order they're likely to be earned and they'll be recommended in the same order and the progression will seem natural. Like leaderboards, achievements may be reordered on the Distribution Portal using its simple drag-and-drop interface.

Descriptions – Like leaderboards, achievements should have clear descriptions so players know what they're striving for. You don't have to lay out the precise steps to earn each achievement—hints or a simple phrase are fine—but keep in mind that a rich description may provide more incentive to unlock the achievement. If the description is too vague, earning it may feel like luck rather than skill.

Locked/unlocked descriptions and icons – GameCircle allows you to specify different text and icons for locked and unlocked versions of each achievement. Adjust the description for an earned achievement to describe what was done or to congratulate the player. For example, "Defeat the Spider King" may describe an achievement until it's unlocked, after which "You Killed the Spider King!" might be more appropriate.

Similarly, the images should be noticeably different. Color is a good mechanism to indicate lock status, with neutral or gray-scale imagery signifying an achievement not yet earned. Other options include different backgrounds, an overlay or watermark, or a common image shared by all locked achievements (with an achievement-specific icon for the unlocked state).

Use hidden achievements sparingly – GameCircle supports "hidden" achievements, which are not visible to the player until actually earned. Since the user doesn't know about them (let alone how to earn them), hidden achievements are best used for incidental progress—things that might happen through ordinary game play, requiring no specific effort. If your game's achievements are all earned through special actions, you should probably avoid hiding them.

Mix up the difficulty – If all the achievements in your game are easy to earn, users may do so quickly and be less likely to keep playing. If the achievements are all hard, there may not be enough regular rewards to keep players coming back. A mix of easy and hard achievements delivers positive reinforcement while rewarding those who put in the extra effort to complete them all.

Likewise, you may wish to alternate between incidental rewards and ones that require complicated actions or special effort. As with hidden achievements, this depends on your philosophy—some developers prefer not to define achievements that are awarded through the course of normal game play. If you do choose to include incidental rewards, maintain a balance by offering complex achievements, too.

Pace achievements throughout the game – An achievement early on (completing a tutorial, for instance) should kick off a steady flow of positive feedback throughout the game, leading to a final achievement at completion (if appropriate).

Draft/sandbox – Like leaderboards, achievements are created in "draft" mode by default. This means that they're only visible to players who have been added to your game's sandbox via the Distribution Portal. The process for publishing an achievement is identical to that for a leaderboard, and is also irreversible, for similar reasons.

Note that unlike leaderboards, achievements cannot be reset once they're published. Until then, the Distribution Portal can be used to clear an achievement from all users in the sandbox, but that option disappears once the achievement becomes publicly available.

Multiple game support – See the note under Leaderboards, above.

Whispersync For Games

First sync on a fresh device – The very first time your game is run on a fresh device, there will be no local saved data; the game should simply copy down whatever cloud data exists for the user. To do this, call synchronize() with a conflict resolution strategy of AUTO_RESOLVE_TO_CLOUD (the default, PLAYER_SELECT, will prompt the user to choose between device and cloud—obviously not appropriate in this situation.)

First sync of the game – Every time your game starts (except on a brand new device—see above), you should call synchronize(). The latest cloud data will be retrieved, if appropriate, or updated, if a local data change is pending. If the data conflicts, the user will be prompted to choose the authoritative source.

Sync at major checkpoints, pause, and exit – Whenever a player reaches a significant milestone or stopping point in your game, you should save state to the cloud with synchronizeProgress().

Sync description – It's critical to associate a useful description with each progress update, since this information will be presented to the user in the case of a conflict, or if you allow them to restore to a save point. GameCircle will include the date and time automatically, but a friendly description such as, "Completed Level 3," or, "Round 7: 12 minutes in," can help the player choose which data they want to use.

Virtual goods – If you store entitlements locally (that is, you don't handle virtual goods through an authoritative server), it's important to either exclude this data from Whispersync updates or disallow save points. If you don't, a restore to an earlier save point may wipe out your customer's purchases—a guaranteed way to generate complaints.

Troubleshooting

CANNOT_BIND from the emulator – Remember that GameCircle works only on registered Kindle devices, including emulators. If you encounter this error while running on the emulator, make sure you have actually registered and signed in from there as well. You can do this from Settings | My Account.

This problem can also arise if the Target is incorrect for the Android Virtual Device you are using. It should start with "Kindle Fire…" to ensure Amazon functionality is available.

Don't forget to publish Achievements/Leaderboards – This is a very common oversight, but fortunately simple to correct. Be sure to publish your achievements and leaderboards using the Distribution Portal once your game is ready be made publicly available.

Game alias only available if corresponding setting is enabled – If you are unable to retrieve the GameCircle alias/nickname when testing, make sure the appropriate setting is enabled. This is accessible from Applications | Amazon GameCircle. "Share your GameCircle Nickname" should be set to Show.

CANNOT_AUTHORIZE due to app signature – Note that on most platforms, the keytool command line program will silently accept the wrong password when generating a keystore signature. In some circumstances, you may need to run the command in the same directory as the keystore you are processing. See Authenticate Your Game with Amazon GameCircle for more information.

NoClassDefFoundError at runtime – If your application links without errors but throws this exception at runtime, ensure that the amazon-gamecircle-1.2.x.jar is actually included in the .apk. Simply adding the jar file to the build path is not necessarily sufficient. In Eclipse, for example, you may need to add the file or create a link to it in /libs.

No negative leaderboard values – Leaderboards do not currently support negative scores, so you will experience errors if you submit them.

Javadoc errata

·       FRIENDS_ALL_TIME is not currently a valid LeaderBoardFilter value

·       AchievementsClient.resetAchievement() and its plural counterpart do nothing

February 20, 2013

Amazon Mobile App Distribution Program

In a recent study of more than 500 games that utilize in-app purchasing on Amazon, we found that mobile games using Amazon GameCircle’s leaderboards and achievements monetized significantly better than other games.

For the three-month period from November 2012 to January 2013, games using GameCircle produced 38 percent higher conversion rates and 33 percent more in-app orders per paying customer than games that didn’t use GameCircle. Conversion was measured by calculating the percentage of app users that made at least one in-app purchase. Combining the impact of both of these variables, GameCircle-enabled games earned 83 percent more average revenue per user (ARPU) than non-GameCircle games. 

 

 

The free-to-play (or freemium)  model, where consumers download and play a game for free, has become one of the most prominent business models in mobile gaming today. However, the biggest challenge for game developers following the freemium model is figuring out how to generate more revenue by converting non-payers into payers and keeping those paying users engaged.

Many of Amazon’s mobile game developers have discovered how GameCircle’s services–Achievements, Leaderboards and Whispersync–have contributed to their success at Amazon. GameCircle lets players connect with other players to compare achievements and compete for higher scores. These social elements get the competitive juices flowing, which may increase a user’s willingness to pay for in-game content, leading to higher conversion rates for developers. “PlayFirst's games on Amazon have performed above and beyond our expectations, and we believe GameCircle has enhanced our ability to connect and engage with Amazon customers, encouraging more play sessions," said Paul Chen, VP of Business Development at PlayFirst.

GameCircle also offers new discovery mechanisms that are an important factor helping drive increased engagement rates. For games that have integrated with GameCircle, players can see their friends, achievements, and leaderboard activity before launching the application, since all of this information is visible right from the user’s game library. Leading games such as Skylanders Cloud PatrolDiner Dash, and Temple Run 2 have already integrated with GameCircle. The image below showcases how a user’s library is populated with GameCircle meta-data.

This added visibility is a powerful engagement tool. A related study that we conducted in January 2013 found that, on average, games using GameCircle over-indexed on the number of player sessions (defined by the number of times users opened the applications on their device) by 32 percent when compared to the average for the entire games category. For freemium games that monetize by selling in-game content, this enhanced level of engagement is critical to expanding customer lifetime values. "We see superior engagement, retention and monetization from players who download our games from Amazon. The GameCircle integration is helping us achieve 40 percent better per user monetization rates compared to non-Amazon players," said Sean Thompson, Vice President of Mobile Deluxe.

For you, GameCircle represents another opportunity to provide gamers with a more seamless and entertaining in-game experience, which can lead to increased engagement and monetization. Please visit the following links if you would like to learn more about the Amazon GameCircle and In-App Purchasing APIs.

January 21, 2013

Amazon Mobile App Distribution Program

Today we released a new tool to help you integrate Amazon APIs into your Android apps. The AmazonMobile App SDK Eclipse Plugin (beta) allows you to rapidly and reliably integrate Amazon APIs into your Android projects, speeding up development and cutting down on project setup time.

The Amazon Mobile App SDK Eclipse Plugin (beta) is a design-time tool that is easy to install, simple to control, and builds on your familiarity with Eclipse to increase your productivity in developing apps and games for distribution on Amazon. The plugin generates the appropriate config entries for the APIs you select, then copies over the relevant API jar files. If desired, you can also use it to quickly undo API integration, without affecting the original state of your Eclipse project.

Eclipse-1new

Benefits of Using the Amazon Mobile App SDK Eclipse Plugin:

  • Free to use: As with other resources we make available, the plugin is free for developers distributing their apps on Amazon.
  • Easy to use: Developers have indicated that it is surprisingly fast to deploy and use the plugin. The deployment of this tool follows the typical Eclipse plugin download and installation experience and does not require a new usage paradigm.
  • Gives you control of APIs and versions: The plugin allows you to use the latest version of the APIs in the Amazon Mobile App SDK that you have on your system and will alert you if your project is using an older version of the APIs.
  • Works for all apps and games: The plugin helps you to quickly develop any Android app that you plan to offer via the Amazon marketplace, including Kindle Fire tablets and Android smartphones.

What’s Next?

Click here to learn how to install the Amazon MobileApp SDK Eclipse Plugin. Take it for a spin, add it to your toolbox, and then tell us what you think by completing this brief survey. We welcome your feedback and appreciate learning what more we can do to help increase your productivity.

 

January 16, 2013

Amazon Mobile App Distribution Program

With the OpenFeint shutdown on December 14, 2012, many mobile app developers find themselves having to evaluate other social gaming platforms. One such platform that offers tremendous value to developers is Amazon GameCircle for Kindle Fire tablets.

GameCircle makes achievements, leaderboards, and sync APIs accessible, simple, and quick for you to integrate, giving gamers a seamless and entertaining in-game experience.

Additional benefits of GameCircle include:

  • Whispersync for Games: synchronize user game progress to the cloud, across multiple Kindle Fire tablets. Delight your customer by enabling them to save their progress, achievements, leaderboard scores, and all of the content they have unlocked--securely in the cloud.
  • Discovery: when integrated with any GameCircle feature, you have the opportunity to be featured on Amazon, including in the Games Starter Pack on Kindle Fire.
  • Plug-ins: GameCircle comes with plug-ins for many popular engines like Unity, Adobe Air ANE and Cocos2d-x,with more on the way. Even better, they are free. The new plug-ins are available here.

For detailed information on how to migrate from OpenFeint to GameCircle, click here.

August 26, 2012

Amazon Mobile App Distribution Program

Jeremy Cath, Kindle Technical Evangelist, is our author for this post.

The Amazon GameCircle API gives players more ways to connect with your game and with each other using Achievements, Leaderboards, andcloud-to-device Sync. Achievements add an engaging way for players to track their progress in your game, Leaderboards let them see how they stack up against their peers, and Sync allows users to save progress to the cloud so they can resume their progress across their devices.

One issue we have seen developers encounter with GameCircle integration is the CANNOT_AUTHORIZE exception when they are initializing the AmazonGamesClient service. This message can occur even if developers have registered the signature for their application with the GameCircle whitelist.

If you encounter this error, there are a number of things worth checking:

1.      Are you testing on Kindle Fire or on a Kindle Fire Emulator?
Amazon GameCircle features are only available on Kindle Fire and in the Kindle Fire emulator.

 

2.      Is the device signed in with an Amazon account?
GameCircle uses the account that the device is signed in with to authenticate the player against the service. Most physical devices will be registered and signed in, but if you are using the emulator, by default it is not registered or signed in (you can do that from the Settings | My Account option)

 

3.      Make sure the device has been updated to the latest version of the Fire OS.
It is important that you are running the latest version of the OS. To check this, go to the top menu, tap More, tap Device, click the Update your Kindle button if it is enabled.

 

4.      Make sure you're using the latest version of the GameCircle API.
The current version is 1.2.1, but you can check if this has changed in the GameCircle API documentation.

 

5.      Make sure you got a valid result from the key tool command you used to get the signature.
To do this, run the first part of the command line separately:

keytool -exportcert -alias androiddebugkey -keystore

[path to your keystore file]

 

 

This command should return a very long string that represents your certificate.  If the path to your keystone is wrong, it will return an error message. After you get valid results from this command, run the full command line to get the signature:

 

 keytool -exportcert -alias androiddebugkey -keystore

 

[path to your keystore file] | openssl sha1 -binary |openssl base64

 

 This will return your signature string.  Please check that this is the string that you have registered in the GameCircle Portal.


 

 

1.     Are youtesting on Kindle Fire or on a Kindle Fire Emulator?
Amazon GameCircle features are only available on Kindle Fire and in the Kindle Fire emulator.

 

2.     Is thedevice signed in with an Amazon account?
GameCircle uses the account that the device is signed in with to authenticate the player against the service. Most physical devices will be registered and signed in, but if you are using the emulator, by default it is not registered or signed in (you can do that from the Settings | My Account option)

 

3.     Make surethe device has been updated to the latest version of the Fire OS.
It is important that you are running the latest version of the OS. To check this, go to the top menu, tap More, tap Device, click the Update your Kindle button if it is enabled.

 

4.     Make sureyou're using the latest version of the GameCircle API.
The current version is 1.2.1, but you can check if this has changed in the[GameCircle API documentation][link to API doc]

 

5.     Make sure you got a valid result from the keytool command you used to get the signature.
To do this, run the first part of the command line separately:

keytool -exportcert -alias androiddebugkey -keystore

[pathto your keystore file]

 

This command should return a very long string that represents your certificate.  If the path to your keystone is wrong, it will return an error message. After you get valid results from this command, run the full command line to get the signature:

 

keytool -exportcert -aliasandroiddebugkey -keystore

[path to your keystorefile] | openssl sha1 -binary | openssl base64

 

This will return your signature string.  Please check that this is the string that you have registered in the GameCircle Portal.

Want the latest?

appstore topics

Recent Posts

Archive