Over the course of time and to make multiplayer simple we released¬†a whole suite of Photon products. Each one¬†is designed to tackle a specific challenge on a product level which is great and if you understand the differences¬†between the product it is easier than you might think¬†to choose the right one.
In this article I will try to give a short¬†general overview and describe the¬†similarities and differences between our Photon Cloud Multiplayer products. All other products will be explained in upcoming posts that we will announce via our Twitter channel.
And: of course it always helps to additionally read through our product documentation.
In the figure below you can see that most of our products run in the¬†Photon Cloud – except for Photon Server and Photon Bolt – and that you can group our cloud products into multiplayer, matchmaking/relay and messaging products.¬†While it is easy to understand what Photon Chat and Photon Voice are for (right, text chat and voice chat) it is not that easy to understand the differences between the multiplayer products.
Photon Multiplayer Products
All started with Photon Server, a multiplayer networking engine with matchmaking. Photon Server includes a scalable framework for room-based games and a MMO framework with interest management. Photon Server comes with a multitude of client SDKs and a Server SDK that allows your to build your own fully authoritative server logic in C#/.NET.
While Photon Server gives you the complete freedom to develop the¬†multiplayer project you want, this freedom comes at a cost: you need to host Photon Server on your own. The amount of work needed to maintain and operate the servers should not be underestimated, especially as games are usually a 24/7 global business.
Unless you are experienced in developing networking code we usually¬†recommend to try our Photon Cloud products first and in case you cannot realise your project with them you can¬†switch to Photon Server easily. Even if you are experienced you should really try using Photon Cloud as it will save you a tremendous amount of work after launch.
Photon Cloud & Enterprise Cloud
Our multiplayer Photon Cloud is basically a fully managed Photon Server setup that scales automatically for any room-based multiplayer game. So yes, all multiplayer cloud products (Realtime, PUN & TrueSync) are derived from Photon Server and are 100% the same on the server-side. In order to make it simple and ultra-affordable you do not get a server-side SDK for our Cloud products, hence you cannot add any custom server code. While it is some kind of restraint it still lets you develop a broad range of game concepts including¬†FPS, racing and other action titles as well as turn-based card or board games.
Our Enterprise Cloud provides the additional possibility to write custom server plugins.¬†This is possible as Enterprise Clouds run on dedicated servers. Next to custom plugins, you get priority support with ¬†24/7 NOC and guaranteed uptimes. Enterprise Clouds pricing starts at US$1,830 including 2,000 concurrent user.
The difference between Realtime, PUN and TrueSync
So you have just learned that Realtime, PUN and TrueSync¬†are the same on the server-side, but what’s the difference then? The difference between Realtime and PUN (Photon Unity Networking) is mainly¬†the APIs and the available Client SDKs. While¬†Realtime comes with a myriad of client SDKs¬†(iOS, Android, Unreal, Unity, Corona, Cocos2dx, …), PUN only supports development with Unity. Therefore PUN’s API is extremely similar to Unity Networking. For a historical reason there is also a Unity SDK for Photon Realtime (it was developed before PUN and some customers are still using it), but this is a different API. Confused? Don’t worry: if you develop with Unity and use PUN all is good and there is no need to change anything. From a feature perspective both products are almost identical.
TrueSync is a different beast: it is only for developing with Unity, but has¬†a different API and some special features.¬†TrueSync is based on a synchronous lockstep architecture with its own physics engine to keep a deterministic game state for Unity multiplayer games. All features from PUN are included, but you cannot use Unity physics. TrueSync lets you locally predict a remote player‚Äôs input and its rollback engine allows a ‘rewind’ if the prediction was wrong, you can set a rollback window size to minimize¬†lag. It even allows to backup and restore the game state for late game joins and re-connections of players.
TrueSync is generally great to transmit commands with almost no lag, e.g. like in a two player sports or RTS game, but it is unfortunately not suited for any¬†game design. A FPS with eight¬†players or a VR game with continuous controls? Please¬†use PUN or Realtime.
Next chapter: Photon Bolt & Photon Thunder
That’s it for chapter one. Follow us @ExitGames¬†and don’t miss the next chapter¬†about Photon Bolt & Photon Thunder.