Alrighty, buckle your seatbelts and hold onto your BaaS, it’s going to be a long post (with a lot of stupid butt jokes).
Double Coconut, our game dev shop, has worked on a bunch of games over the years, for many different genres, budgets, and types of clients. We’ve tried and inherited pretty much every BaaS provider out there, as well as written our own back-end services. So I’d like to share what we’ve learned.
It really comes down to four choices:
- Don’t use a server.
- Use a popular game BaaS provider (we’ll cover five of ’em below).
- Roll your own entirely.
- Write game-specific stuff atop a generic BaaS provider.
Don’t Use A Server
So… No. Don’t even consider. Horrible idea. For even the most simple indie art game you’ll want a back-end service at the least for stuff like:
- In app purchase receipt verification, to be sure your revenue is real.
- Keeping key values like the number of gems you can get for $1.99 on the back end, so you can adjust it and run flash sales without having to do a huge update.
- Basic analytics to know how many peeps is playing / retaining / spending.
And any free to play game worth its salt really should be:
- Keeping all of your game economy and levels in the cloud, so you can constantly tweak based on analytics and add onto the game without updates.
- You also want to keep your player data in the cloud, to way more easily avoid cheating and hacking, so you can easily transfer people between devices, deal with customer support issues, and make sure they never ever lose their progress.
Use a Popular Game BaaS Provider
NOTE:This section does not cover BaaS providers that specialize in multi−player games, since that′s a separate topic.
Now you’re talkin’!
These guys are frigging CHEAP. Costs compared to rolling your own, the costs are something like:
Let’s break down costs per provider based on Monthly Active Users (MAU). The Y-axis is $US Dollars.
And most cost nothing at all to develop on, so you’re not paying anything until you have at least a few hundred real users on a live, revenue-generating game.
Let’s touch on some of the offerings:
- GameSparks - Really crisp and powerful system built atop sockets and a NoSQL db. Supports most game frameworks. Much more customization of the back-end and dashboard, but requires more heavy lifting and scripting and understanding of database-y stuff.
- BrainCloud - Nice simple system with a bit more focus on social and light multiplayer gameplay.
- Flox - Pretty cool solution, but for Flash only.
- Saltr - Interesting, with focus on server-based level design, but seems like no longer supported.
Roll Your Own Entirely
Initially expensive but some huge advantages.
- Your data. Nobody’s ever gonna use it in a way you don’t way.
- No vendor lock-in. If a BaaS provider dies or sells to their best customer, you’re safe from losing your whole back end. If a Baas provider thrives, you’re safe from price gouging.
- Bespoke. Integrate your customer support, CRM, accounting, A/B test, analytics and other systems. Your info presented the way that makes the most sense to you.
Just a thought: None of the top 50 grossing games use a BaaS provider. :)
Write Atop a Generic BaaS Provider
Use a BaaS provider for the tough stuff:
- Scaling up to support tons of users
- Authentication / user administration
- Data storage
- General cloud logic
- Basic analytics
And then write your own game specific stuff such as virtual goods systems, game leveling, achievements, leaderboards, quests, or multiplayer / social.
Some products to try:
- Firebase (Google)
- AWS Web Hub (Amazon)
- Azure App Service (Microsoft)
- App42 Cloud
If you’ve got the budget and want to go big, write your own back-end system. But it’s harder than it looks so make sure to use experienced people.
If time and cash is tight but you need to cover your BaaS, I recommend PlayFab or GameSparks. They’re each easy enough to set up in about a day so poke around them both and see which one better suits your needs and tastes.
For a heavy slide deck for a talk I gave on this subject at 2017 GDC, see here.