Backend selection

Started by
7 comments, last by hplus0603 3 years, 10 months ago

We have an established game, with a backend hosted on GameSparks.

We are considering a port to a new BaaS, as GameSparks has stagnated. There are various options out there and I'd like to hear your opinions / experiences before making a decision.

The game has approx 1000 concurrent users (100k MAU), constantly sending game-state updates to all of their connected friends and to a persisted game state. (The players are effectively connected in a mesh, they aren't partitioned into separate games).

The game is continuous, it never ends.

The features of GameSparks that are key are:

  • Persisted gamestate, sharable between players
  • Sockets connection for sending/receiving live updates
  • Open ended friends lists (not closed player cohorts)
  • SDK support for Unity - iOS, Android and WebGL.
  • Custom server-side logic

Any advice or insights into alternative backends would be appreciated.

Advertisement

There aren't that many “full service” solutions for games, because there are so many games that need so many different solutions.

Honestly, if you want a system that you can make sure has the features you need, you'll probably want to roll your own on top of some lower-level cloud infrastructure. Pick a technology stack (C#/net, PHP/Cake, Java/Hibernate, Haskell/Warp, or whatever) and build the services you need. Then you can add the features that come up for your game.

Yes, this requires significant additional investment, both to build, and to maintain.

enum Bool { True, False, FileNotFound };

@hplus0603 I feared this answer. We moved from an in-house Java/MongoDB backend on AWS because of the maintenance and running costs a few years ago. I'm reluctant to give up the convenience and flexibility of GameSparks for a ‘harder’ solution again, I like my time off too much!

Thanks for your perspective.

What was your cost per MAU, at how many MAU, back on AWS? What is your cost per MAU now on GameSparks?

There are a variety of online platforms – Steam, Epic Online, Google Play, Amazon GameLift, and so on – but they generally aren't “full service” enough. You might want to look into general “serverless” platforms, like Amazon Lambda, to get a hold on utilization and cost and deployment.

enum Bool { True, False, FileNotFound };

I've come to the same conclusion about other platforms having tried to evaluate likely looking candidates. It seems GameSparks is technically a great fit for us.

I don't have those figures immediately to hand, but the AWS solution was approx 4x the GameSparks cost when we switched over, due to server instances for game and database servers.

I am talking to GameSparks about their future, it may not be quite so bleak after all.

That's a common situation: “The system we are using is terrible, but converting to something else is so much worse.”

There are few off-the-shelf solutions. It is extremely rare that the service given by a company, such as the systems provided by Lumberyard, or what is built into the game engines, is an exact match to your needs.

The big question is the degree of customization you'll need. At a certain point of growth doing it yourself becomes the best option, but it is a long journey to get there. The fact that you currently have 100K MAU means whatever you do you'll be investing a huge effort to keep the service running continuously, so your inertia is an important factor. Often “doing nothing” is the best solution when you can make it work.

That's not quite our situation. Technically the system we are using is fantastic and a great fit for our game. I would praise GameSparks from the rooftops IF they were guaranteed to stick around.

The risk if we stay put is that we lose our backend and have nowhere to go. The risk if we don't is that we spend a lot of development time in the backend and end up with something inferior and more expensive.

No company is guaranteed to stay around. Customers and investors in Wall Street giants Bear Sterns and Lehman Brothers were quite surprised when those businesses just evaporated. Id Tech was the shizznit in 3D gaming for a long while, and then it … kinda wasn't.

If you get good service, and the company has been around for years, then you should be praising them. Doing so will improve the chances that others will use them, which will improve your own chances of not having to do any work.

If they company goes away, they you're going to have to do a bunch of work at that time. Your job is to think a little bit about what that would look like, and make sure you have all the off-site backups you need to re-instate your game on some other infrastructure, and to make sure you have a very good grasp of how you're using their services. Ideally, if you have a self-hosted development sandbox, that's a great start to being able to move to something you build yourself, if you really have to.

Risk management is not about “removing all risk.” Risk management is about recognizing risks, classifying the probability and cost of the risk, and only do something about it if the product of the two is unacceptable. “Doing something” may be anything from “making sure we always have snapshots of all the data about players and accounts” to “buying business continuation insurance.” And, very often, it's actually better to do nothing, and live with the possibility that maybe you have to do some work, and lose some money in the future. Nothing is forever!

enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement