Does Corona SDK support Amazon GameCircle?

My game was just rejected because it does not integrate with Amazon Game Circle.   So I am dead in the water with Amazon unless I can figure this out.   I was able to successfully get the game on Google Play.  Mind you, my point and click game does not keep scores, achievements, or use leader-boards???

“Games must integrate withGameCircle, including WhisperSync for Games and either Leaderboards or Achievements.”

From the above statements it sounds like I am pretty much dead in the water with Amazon??  

I would like to know why they (Amazon) would require a point and click game, which uses none of the things mentioned in the Game Circle services, to be forced to use their service?  Where Google Play does not?

Whoa - is that a new requirement?!  I think maybe you got a bad reviewer.  Can’t imagine them requiring that across the board.

OK my bad -  I misunderstood the message in my Amazon Developer console.  This is my first time publishing.   Game circle failed but they published the game anyway!   So I suppose I am okay - I hope…  I checked on my Kindle fire and searched for the game and it came up on their store :slight_smile:

Amazon Services Status In-App Purchasing
Passed
Mobile Ads
Passed
GameCircle
Failed
General Status Device Targeting
Passed
Device Compatibility
Passed
HD Optimized
Pending
High Resolution Screenshots
Passed
3rd Party Linking
Passed

whew … that would have been a nightmare!

Ahh. I have gamecircle working in Unity, cocos2dx but …not corona yet. 

Developer select = out of reach for everyone unless you can snatch up enterprise and bring in another library.

Any updates?

+1 Game Circle

Ceterum censeo Carthaginem esse delendam.

Best,

Andreas

Any news on the Amazon GameCircle plugin for Corona?  My game is languishing in the doldrums of Amazon’s sub-basement without it…

Stephen Lewis - Same issue with us. We have programmed our game for the Fire TV which can be played using remote and controller… Just waiting for the Amazon GameCircle to incorporate. Could anyone implement it before? any information about it will be helpful for us to complete it…

prmobiapp - you should be able to do this since your forum label says you are an enterprise customer.  you may want to talk to w.j. francis - earlier in this thread he mentioned doing it in enterprise.  just not available as a standard corona plugin at the moment

Jflowers45 @ Thanks for your quick response. I will try reaching to w.j. francis to get some help with it.

w.j. francis @ Could you please guide us how to implementing the Amazon GameCircle in our game? Thanks!

@prmobiapp

You can download the source code I wrote here.  It includes a readme and a sample app.  You’ll still have to set up your own Amazon GC account and copy the apikey file they generate into your project’s asset directory.

http://www.thingerjiggy.com/downloads/AGC.zip

@ w.j.francis - Thanks for the information. We will try it out and let you know for any further help!

w.j.francis - We tried amazon AGC.zip file and we have successfully built apk file and installed.Then open the installed apk file  when click the Initialize Amazon GC text it showed error alert box like ERROR:CANNOT_INITIALIZE.So Please help us ,how to solve this issue.

@prmbiapp

Do you still have the demo app pointing at my test Amazon game center / credentials?  You will have to create your own, and modify the code to use the IDs created for your leaderboards and achievements.  If you load the code to an actual device you can use ADB and logcat to get a specific failure message from the Amazon GC SDK.

Game center isn’t required to submit apps/games to Amazon, just for the promotion they are running.

Hi,

I just talked to Amazon, and they were asking if I could use Developer Select. The only thing missing is GameCircle :( 

Brian

PS, interesting! http://en.wikipedia.org/wiki/Carthago_delenda_est

Thanks! I just looked for a nice way to say “Yes, I know I’m nagging”, because I already posted about the need for Game Circle a few times. :slight_smile:

w.j.francis - I am trying to integrate GameCircle with my apps. now i created a new profile for apps and followed the instructions for that profile, but I half-suspect that profiles may be causing the errors. I did grab the latest SDK and I’m testing against the Android emulator.

The error is related to the API key. I’ve double-checked the MD5 I used and it seems correct. Could it be something with my emulator?

08-21 20:23:05.512: I/com.amazon.identity.auth.device.appid.AbstractAppIdentifier(17662): getAppInfo : packageName=com.crazy.crazyrocket

08-21 20:23:05.512: I/com.amazon.identity.auth.device.appid.AbstractAppIdentifier(17662): Finding API Key for com.crazy.crazyrocket

08-21 20:23:05.513: I/com.amazon.identity.auth.device.utils.ThirdPartyResourceParser(17662): Attempting to parse API Key from assets directory

08-21 20:23:05.516: I/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): Begin decoding API Key for packageName=com.crazy.crazyrocket

08-21 20:23:05.531: D/com.amazon.identity.auth.device.appid.APIKeyDecoder.PII(17662): APIKey:<obscured>

08-21 20:23:05.532: I/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662):  num sigs = 1

08-21 20:23:05.533: D/com.amazon.identity.auth.device.appid.APIKeyDecoder.PII(17662): Signature checking.:<obscured>

08-21 20:23:05.533: D/OpenSSLLib(17662): OpensslErr:Module:13(114:155); file:external/openssl/crypto/asn1/asn1_lib.c ;Line:142;Function:ASN1_get_object

08-21 20:23:05.534: D/com.amazon.identity.auth.device.appid.APIKeyDecoder.PII(17662): Fingerpirint checking:<obscured>

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): Failed to decode: Decoding fails: certificate fingerprint can’t be verified!

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): java.lang.SecurityException: Decoding fails: certificate fingerprint can’t be verified!

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.amazon.identity.auth.device.appid.APIKeyDecoder.verifyPayload(APIKeyDecoder.java:332)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.amazon.identity.auth.device.appid.APIKeyDecoder.doDecode(APIKeyDecoder.java:127)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.amazon.identity.auth.device.appid.APIKeyDecoder.decode(APIKeyDecoder.java:91)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.amazon.identity.auth.device.appid.AbstractAppIdentifier.getAppInfo(AbstractAppIdentifier.java:85)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.amazon.identity.auth.device.authorization.api.AmazonAuthorizationManager.<init>(AmazonAuthorizationManager.java:123)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.amazon.ags.api.AmazonGamesClient.initialize(AmazonGamesClient.java:144)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.crazy.crazyrocket.MainActivity.onResume(MainActivity.java:30)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1197)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.app.Activity.performResume(Activity.java:5343)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2950)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2993)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.os.Handler.dispatchMessage(Handler.java:110)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.os.Looper.loop(Looper.java:193)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at android.app.ActivityThread.main(ActivityThread.java:5292)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at java.lang.reflect.Method.invokeNative(Native Method)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at java.lang.reflect.Method.invoke(Method.java:515)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)

08-21 20:23:05.535: W/com.amazon.identity.auth.device.appid.APIKeyDecoder(17662): at dalvik.system.NativeStart.main(Native Method)

08-21 20:23:05.537: E/GameCircleClient(17662): Unable to read api key.  GameCircle requires an api key to be included in ‘assets/api_key.txt’.  GameCircle will not initialize.

08-21 20:23:05.537: E/GameCircleClient(17662): java.lang.IllegalArgumentException: Invalid API Key

08-21 20:23:05.537: E/GameCircleClient(17662): at com.amazon.identity.auth.device.authorization.api.AmazonAuthorizationManager.<init>(AmazonAuthorizationManager.java:126)

08-21 20:23:05.537: E/GameCircleClient(17662): at com.amazon.ags.api.AmazonGamesClient.initialize(AmazonGamesClient.java:144)

08-21 20:23:05.537: E/GameCircleClient(17662): at com.crazy.crazyrocket.MainActivity.onResume(MainActivity.java:30)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1197)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.app.Activity.performResume(Activity.java:5343)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2950)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2993)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.os.Handler.dispatchMessage(Handler.java:110)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.os.Looper.loop(Looper.java:193)

08-21 20:23:05.537: E/GameCircleClient(17662): at android.app.ActivityThread.main(ActivityThread.java:5292)

08-21 20:23:05.537: E/GameCircleClient(17662): at java.lang.reflect.Method.invokeNative(Native Method)

08-21 20:23:05.537: E/GameCircleClient(17662): at java.lang.reflect.Method.invoke(Method.java:515)

08-21 20:23:05.537: E/GameCircleClient(17662): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)

08-21 20:23:05.537: E/GameCircleClient(17662): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)

08-21 20:23:05.537: E/GameCircleClient(17662): at dalvik.system.NativeStart.main(Native Method)

08-21 20:23:05.537: D/ActivityThread(17662): ACT-AM_ON_RESUME_CALLED ActivityRecord{425abe20 token=android.os.BinderProxy@425ab5f8 {com.crazy.crazyrocket/com.crazy.crazyrocket.MainActivity}}

08-21 20:23:05.538: V/PhoneWindow(17662): DecorView setVisiblity: visibility = 0 ,Parent =ViewRoot{42643a58 com.crazy.crazyrocket/com.crazy.crazyrocket.MainActivity,ident = 0}, this =com.android.internal.policy.impl.PhoneWindow$DecorView{425b41a0 V.E… R…I. 0,0-480,800}

08-21 20:23:05.539: D/ActivityThread(17662): ACT-RESUME_ACTIVITY handled : 1 / android.os.BinderProxy@425ab5f8

08-21 20:23:05.540: V/InputMethodManager(17662): onWindowFocus: null softInputMode=288 first=false flags=#1810100

08-21 20:23:05.540: V/InputMethodManager(17662): START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView{425b41a0 V.E… R…I. 0,0-480,800} ic=null tba=android.view.inputmethod.EditorInfo@426c8720 controlFlags=#100

08-21 20:23:05.986: D/OpenGLRenderer(17662): prepareDirty (0.00, 0.00, 480.00, 800.00) opaque 1 <0x60a23008>

08-21 20:23:05.986: D/OpenGLRenderer(17662): finish <0x60a23008>

@prmobiapp

From your logs it looks like your app is not finding the api key at runtime.  Amazon GC SDK requires this be in a resource file (boo).

08-21 20:23:05.537: E/GameCircleClient(17662): Unable to read api key.  GameCircle requires an api key to be included in ‘assets/api_key.txt’.  GameCircle will not initialize.

I guess this could be an emulator problem but I doubt it.  Use the DDMS file browser in ADT to connect to your emulator and browse the /assets directory for the api_key.txt file.  For a Corona SDK app, you can include this file just by dropping it in the same directory as your main.lua file before building.  The Amazon GC console generates the file for you. Check out the sample in my ZIP file if you are unsure of the directory structure.