Guidelines: Online Gaming Choices

Online gaming is a vast and complex topic.

Should I implement Online Gaming?

Online gaming is desirable but NOT easy. If considered, it must be part of the design from Day One.

Online gaming is a great way to build your community and improve attachment to your game. If done properly (see our recommendations in this matter), it can tremendously increase the lifetime of your game. Ticket to Ride has been running online since 2005, and you have players who logged in an amazing number of online games and who still play every day after all these years.

However, be advised: it is not easy. Even if brings you lots of tools to do it right, including a code framework if you use Unity, there are a number of deep implications in the data model, the code architecture, the way the AI will be implemented, etc.

If you plan to deliver a PC version, be aware that PC users will take for granted to get an online mode. You can get away with it on mobile, but not on desktop.

So you must make the decision of supporting online gaming or not from the very beginning of your project, as this has impact on the code design. This is not something that you can add as an afterthought, near the end of a project.

Which Online Gaming technology should I use?

Be very careful, choose your service wisely, depending on your gameplay needs.

So you decided to implement online gaming. Now comes the question of the server technology/service to use. We strongly advise against coding your own server technology, because there are too many difficult areas, among them security (and counter-cheating measures), scalability or operability. There are a number of great services available out there, there is no use to re-invent the wheel.

The first criterion is to make sure that the platform you use works on multiple operating systems - including desktop ones. So this rules out Apple Game Center for example.

You also need to consider the features of your game - this is very important. If your game needs simultaneous gaming or interruptions, consider Photon. If your game is a pure turn-based one, you can also consider Google Game Services and of course, our “Scalable Server” solution, especially if you need sophisticated asynchronous turn-by-turn gaming with advanced features such as Player Clock or Bot Hot Swap, or a full Lobby service. Read more about all these concepts in our article about online gaming.

Generally speaking, designing a robust distributed service is really tough, so there are only few good services out there. And there are fundamental problems that are not always addressed, like proper time-out or game state atomicity - some of the strong points of the Scalable Server.

Needed Features Possible Solutions
Basic synchronous or asynchronous Scalable Server, Photon, Google Game Services, etc.
Advanced synchronous or asynchronous Scalable Server
Simultaneous turns or interruptions Scalable Server
Realtime gaming Photon or similar