We are seeing an uptick in users migrating to brainCloud from GameSparks. Here is a collection of Frequently Asked Questions to help make evaluating brainCloud easier!
How does brainCloud compare to GameSpark's feature set?
brianCloud is extremely flexible and feature-rich, with new features being added every few months...
Key GameSparks features and their brainCloud equivalents include:
Player Data - provided by User Entities, or Owned Custom Entities in brainCloud
Custom Game Data - provided by Global Entities, or Unowned Custom Entities in brainCloud (Pro-tip: Unowned Custom Entities are much more scalable for large complex collections)
Events - brainCloud Events are real-time JSON messages sent between players.
Leaderboards - brainCloud has a rich and robust Leaderboard system, with built-in support for Tournaments, Divisions and Pacers as well. Apps can have an unlimited number of dynamically created leaderboards.
Messages - brainCloud supports Push Notifications for iOS, Google and Facebook. It also supports player-to-player Events, Messages (more structured, like in-app Email), and Online Chat.
Virtual Goods - brainCloud supports via the Item Management and User Items services.
Currencies - brainCloud's Virtual Currency service manages currencies server-side for the developer.
Teams - brainCloud's Group service allows for teams of players. Groups can have roles/permissions, private data (entities), leaderboards, and chat channels.
Achievements - brainCloud's Achievement functionality is available under the Gamification service.
Matchmaking - brainCloud offers both Offline Matchmaking (for asynchronous game types) as well as online matchmaking (via the Lobby service). Both support custom filters. Online Matchmaking also supports geo-filters.
Downloadables - Files can be stored and download by both the Global Files and User Files services.
Uploadables - User Files can be uploaded - and migrated to Global Files if desired.
Challenges - brainCloud Async Match service directly supports turn-based multiplayer. Challenges are normally implemented via player-to-player Events or Messages in brainCloud.
Authentication - brainCloud's Authentication service supports a rich set of authentication types. Plus you can add your own custom authentication using the "External Auth" feature.
SendGrid - brainCloud integrates with SendGrid, and supports both simple and dynamically templated emails - including support for attachments.
Callbacks - brainCloud RTT adds callbacks for real-time Events, Chat, Messages, Lobby Events and more. brainCloud also supports pre- and post- API hooks on the server - as well as support for webhooks.
Version Control - brainCloud keeps a history of all script changes - and saves a snapshot of all metadata before any metadata import or push deployment.
Preview / Live Stages - Developers can create multiple apps - each representing a stage in the development pipeline - and push the updating app configuration as the project progresses. (eg. Dev -> Stage -> Prod). Dev apps are free.
Redis - Though Redis is a key infrastructural component of brainCloud - brainCloud does not directly expose a Redis service.
HTTP Requests from Cloud Code - brainCloud's cloud code scripts are fully enabled to make http-based requests to external services. For security purposes, all outgoing HTTP targets must be pre-declared before calling them.
Bulk Job - brainCloud supports a User Batch API for sending a script to run on all users, or all users of the specified segment(s).
Script Scheduler - brainCloud provides a scheduling API for running scripts in the future.
SparkDigest - Client calls are secured, validated, and de-duped via SSL, packet-ids, and an MD5-based integrity check to ensure that messages are authentic and immune to man-in-the-middle attacks.
In addition to the above, brainCloud also provides a ton more features including:
Custom Room Servers
Profanity Filter Integration
Pricing / Promotions / Receipt Validation
Facebook Limited Login support
And... as a final topper, the team is heads-down working to add Amazon GameLift integration! It will be available this fall.
For a full inventory of brainCloud features, see this article.
Are there any hard limitations to consider when migrating to brainCloud?
brainCloud doesn't have a lot of hard limitations. There are MongoDB-related limitations - in terms of maximum object sizes (16MB) and such, but there are more practical recommendations to watch for I suppose:
Entity sizes - for best performance keep them under 200Kbytes - but that is not a hard limit. Plenty of apps have entities in the 600-700 Kbytes range (and larger) and are fine - but with mobile network conditions, smaller sizes are generally better.
# Entities - you definitely don't want to have > 1000 Global entities - and preferably max at 1-200. This is due to the indexing limitations of global entities. Un-owned Custom Entities are much more flexible and scalable because they have custom indexes.
Cloud Code script sizes - no hard-limits, though scripts tend to perform best (and are easiest to debug) when they are < 2000 lines long and simple. Scripts larger than that tend to be larger because they have a bunch of embedded middleware which can be very tough to debug...
Cloud Code timeouts - the default maximum execution time of a cloud code script is 90 seconds.
File sizes - The default maximum file size is 50MB - but that is a tuneable value that can be increased upon request.
What platforms does brainCloud Support?
brainCloud provides libraries for Unity and Unreal, and supports all major mobile and console platforms, as well as PC and Web.
Where are brainCloud's servers hosted?
brainCloud's Public BaaS is hosted on Amazon Web Services in the North Virginia (us-east-1) region. We host regional Room and Relay Servers in 9 regions throughout the world for low-latency multiplayer experiences.
brainCloud Private Licenses can be hosted anywhere, on any of the major cloud vendors.
How does brainCloud licensing / pricing work?
brainCloud also offers a private licensing model for larger more specialized customers who want to have their own brainCloud instance. Contact us via Chat to set up a call to discuss.
How can I migrate Gamesparks accounts over to brainCloud?
brainCloud has recently added some new APIs to make this easier. The recommended approach is to start by creating an updated version of your app that uses brainCloud.
Then, implement an Authentication PostFail hook that:
catches any users who don't have brainCloud accounts
connects to GameSparks to see if the account exists there and if it does...
creates a local user account for the user on brainCloud
populates the account with data retrieved from GameSparks
A similar approach is discussed in this knowledge base article.
Can brainCloud provide personnel to help with migrating our game?
brainCloud's parent company, bitHeads, is in the business of Custom Software Solutions and can gladly help in providing service teams to help move your game to brainCloud. Just message us in chat or send an email to sales @ bitheads.com.