Opinions on online game services?

I asked a question on Twitter earlier today to hear different opinions on online game services such as matchmaking, leaderboards, real-time multiplayer. I’d like to get your input as well!

If you were to create an online game with authentication, leaderboards, cloud save, matchmaking and real-time/turn-based multiplayer and so on would you then prefer to use an existing turn-key solution such as Nakama or PlayFab or maybe even Google Play Game Services or Apple Game Center or would you rather build, host and maintain your own custom solution (from scratch or using solutions from AWS)?

3 Likes

I would prefer using an existing, well supported solution, as long as it’s scalable.

2 Likes

Depends on the scope. If it’s not overly complicated in scope, I’d probably write our own (since we’d like to keep running costs to a minimum and I’m relatively comfortable with fullstack JS dev).

2 Likes

And by “writing your own” you mean 1) completely from scratch and hosting it on Linode or DigitalOcean or 2) deploying it on AWS and building it using the AWS SDK? (or similar services provided by Azure or Google Cloud)

1 Like

Generally my stance on this is to have the application code written from scratch or using open source solutions (otherwise it would defeat the point of not being vendor-locked-in) and be flexible about deployment since that’s easy to migrate in case you want to scale or switch providers. I wouldn’t go full manage-your-own-VM, but I use stuff like AWS ElasticBeanstalk, Docker container hosting or Heroku-like solutions where you only have to worry about your application code and not the maintenance of the OS and hardware it’s running on.

2 Likes

I think the best solution for me now would be using the flexible existing solution (from my point of view it’s Nakama) but host it myself (also it’s good to know that I can pay for hosting and maintaining to Heroic lab if the game become a hit)

Why I don’t wanna use cloud services? They usually have Plans for games with high LTV. But in my games, I have a wide user base with low LTV. So, I’ll pay too much to a cloud service even if I use not too much service but if I have a lot of users.

Why not my own? It takes time to write your own solution. I don’t have experience in this area, so that means I’ll do a thing wrong, I’ll spend even more time rewriting it. As result, I’ll not have any time for the game itself.

So I think that being in the middle of these two extremes is the best for me. On one hand, I don’t write servers from scratch and use solutions that proven by the other HeroicLabs clients. On the other hand, If I host and maintain the server myself I don’t pay for the things I don’t wanna pay and scale it in the direction it’s important for me and the projects I do. It takes some effort of course, but if it will take too many efforts AND get enough profit I still have an option to host in with Heroic Cloud.

3 Likes

Oh yeah. Just to clarify: I’m all for using 3rd-party open-source solutions as long as I can reasonably host them myself. I’m just trying to avoid vendor-lock-in if possible. I’d only go for writing our own server code if either:

  • It’s really simple functionality (like maybe a leaderboard without authentication)
  • It’s really complex / performance-critical functionality that might outgrow the 3rd-party solution
3 Likes

The last time I used PlayFab I was so conflicted in wanting an easy simple solution I did not have to manage with the desire to have full control to remove pain points and implement all of the extra features I’d want in a project.

You have to decide if rolling your own is really worth it for a type of project. Otherwise you must work within the limitations of the premade services. I think most devs starting out should try to make premade solutions work, especially when services like PlayFab are now so generous in usage and cost. When growing and making serious money the custom solutions are the way to go, because you can’t rely on those vendors to implement what you need. But try to use something like PlayFab first since it can save you time and worry about running services. I have a lot of confidence in PlayFab as a service that won’t get the axe any time soon based on how many companies are using it, it is a safe bet to use.

For custom solutions, I would always use Erlang/Elixir. Then for example use a very cheap $5 a month shared Linode for hosting until players grew to where it would be needed. Realistically most indie games will never grow to huge numbers (a single shared Linode can host thousands of concurrent users if properly setup), but using Erlang/Elixir makes it easy to cost effectively grow. I encourage everyone here to look at Erlang/Elixir, they are as much of secret weapons as Defold is. You can start making a PlayFab service clone customized to your needs with elli and it will be extremely resilient while being able to handle tons of users.

1 Like