Sign In Register

How can we help you today?

Start a new topic
Answered

Questions for quick migration to GameSparks

I just received an email that Soomla is shutting down their GROW services on May 31, and am looking for a quick backend replacement. I believe GameSparks is my best bet, but since I have to do such a fast implementation I wanted to ask the community to make sure the game fits my needs.


The game is Rue Runner, available on the iOS App Store. It's built using Cocos2d-x. The game currently uses the following:


Soomla Profile to allow players to log in via Facebook

Soomla Store to facilitate IAP (basically just a C++ wrapper for Cocos2d-x)

Soomla Levelup as a workaround for storing the progress of a player

Soomla Sync to facilitate game state saving and syncing.


The game has Rawhides, which can be earned randomly in-game or purchased in the store. Doing well in the game awards Cookies, which can not be bought for real money. Redeeming a Cookie provides a random roll for a cosmetic unlock for the main character (collars, bows, etc.). If you are awarded an unlock you already have, it goes up a level (e.g. a Level 3 blue collar). 


I need a backend that can:


Help facilitate C++ IAP

Facilitate login through Facebook, as well as social sharing actions

Save and sync the following progress for the player:

- Which cosmetic items are unlocked and what level they are

- Rawhide balance

- Cookie balance

- High score data


I know this is a very basic question, but I am now in a hurry to research backends to get a new build in the App Store by May 31. Thanks for all your input!


Best Answer

Hi Matthew, 


We support Facebook Authentication with our FaceBookconnectRequest which you can read about here. Our Virtual Goods can be linked to many stores including IOS, Google, Amazon, PSN, Steam and Windows once you have set up your integration for each particular platform, you can read about integrations here. Check out how to configure Virtual Goods hereYou can store and update player progress data in runtime collections. We have a Getting Started Guide which should help get you up and running on the platform, you can find it here.  If you have any other specific questions feel free to ask.


Thanks,

Liam


Answer

Hi Matthew, 


We support Facebook Authentication with our FaceBookconnectRequest which you can read about here. Our Virtual Goods can be linked to many stores including IOS, Google, Amazon, PSN, Steam and Windows once you have set up your integration for each particular platform, you can read about integrations here. Check out how to configure Virtual Goods hereYou can store and update player progress data in runtime collections. We have a Getting Started Guide which should help get you up and running on the platform, you can find it here.  If you have any other specific questions feel free to ask.


Thanks,

Liam


1 person likes this

Thanks very much for the link, I've read through most of the materials...are there any plans to update the tutorials for Cocos2d-x?


I'm trying to wrap my head around the paradigm for exactly how GameSparks would handle the tasks in my game. I think I understand it all, but I have a couple more questions:

  • The Facebook access token grants access to the user email, but in the Test Harness it seems the FacebookConnectRequest doesn't include the email address. Is there a way to automatically collect the email address using the Facebook token?
  • Based on what I'm reading in your response and in the docs, a runtime collection is the best way to store progress data. In this game, it would be a simple list of roughly 15 integers. However, it looks like runtime collections aren't cached on the device. I assume this means I would need to manually create failsafes in case the player loses connection or wants to play on an airplane. I'm thinking of the following workflow...are there any problems with it? 1) Client queries progress info from runtime cache, 2) Client stores info in encrypted JSON on device, 3) Game state as presented to the user is read from client-side JSON, 4) When any update to game data is made (consuming a virtual good, for instance, or setting a new high score, or unlocking a new cosmetic upgrade), the client submits the new information with a SetDurable(true) attribute, and when that's completed it requests a download of the game state, overwriting any unauthorized changes that may have been made to the local state.
  • Is the above a good method to manage a local game state while deferring to the cloud state as "authoritative"? The only thing I can't think of how to solve is consuming any currency if the player isn't connected to the internet...I'm not sure what would happen.
Overall, I'm incredibly impressed with the GS platform and wish that I had come to it first! Any information or advice is greatly appreciated. Thank you!

Hi Matthew,


Our FacebookConnectRequest will get the current players details from the Facebook and store them within GameSparks, it will also determine if any of your Facebook friends are also registered with the game. If you navigate to the NoSql browser in the portal and look at the externalAuthentication collection you will see what details are stored for a player. We don't store a Facebook users email I'm afraid. Yes a runtime collection would be the best way to store this data, if it's only going to be around 15 fields you could insert the default values of these into a collection when a new player is created, then update them as the player progresses through the game. Your flow sounds fine there. For currency you could also store the current balance locally and use it as a reference, so when someone tries to buy a virtual good while offline you can check it and if they don't have enough, don't queue up the durable request for when they reconnect. If you have any other questions just let me know.


Thanks,

Liam

Login to post a comment