Can someone explain to me the different versions of Photon and why you would use one over the other? They seem to have some packages which are for online multiplayer but then others that give you more coding options for games? and then others which are just if you want to host on your own server? but then does the extra game coding version also allow you to self host? and is it better to self host or use their servers?
Also whether it’s better to use Photon rather than Unity’s own multiplayer options? I’m in the planning stages for a multiplayer game, which hopefully would run over mobile (iOS) and desktop.
Photon beats unity networking in case performance. If you host photon server by your own which is not cheap, you have to take care and maintenance your private cloud.
In my opinion UNET (the HLAP at least) isn’t in a usable state for a production environment, it has to many bugs and missing functionality currently.
It also requires a pro license to use the matchmaking service (which is currently a nightmare to get working, has some bugs and doesn’t support host migration) beyond the testing phase. For testing you only get 20CCU shared across all your apps.
Photon on the other hand is stable, pretty much bug free and a breeze to use in comparison to UNET. The free version allows 20CCU per app, and PUN+ only costs $95 for 60 months 100 CCU access.
I’ve only ever used the PUN and PUN+ versions so I can’t comment on the other offerings they provide, but until UNET is improved substantially I would highly recommend PUN over UNET.
We know we have to better explain what the different packages offer and help deciding which one to use. We plan to improve that and we’re around to help.
Just a brief overview:
Most of our packages use Photon Server. We offer it as “OnPremise” version in a Server SDK and we also host a bunch of servers as Photon Cloud. The Server is what we run in the Cloud, so switching from Cloud to “OnPremise” is easy and we suggest to start with the Cloud. Feature Overview.
We develop a client side API to talk to Photon Servers. This comes in the Photon Client SDKs as “LoadBalancing API”. There is a version for Unity, pure .Net and we also got native SDKs, Lua, JS, etc… The LoadBalancing API does not have the Unity-style sugar coating you might expect.
This is what Photon Unity Networking (PUN) adds to the mix: Instantiation, RPCs, easy configuration and so on. It still allows coding but adds a lot of comfy tools, scripts and such. It’s most likely the easiest package to start with. It’s fine for many types of games. PUN is also integrated by PlayMaker and others. Feature Overview. Tutorial.
We also have Bolt as package. It does not use Photon Server but hosts games inside of a Unity instance. It’s a very potent networking solution but with hosting in-Unity, connections are not easy to establish and it’s more risky for mobile games (e.g. if the host closes the game, it’s over). It has different features and can do some stuff which you only can do if the server is in Unity (running the scene and physics). Feature Overview.
Thanks for all the info. Ok so if I were to want to build a turn base, game, say something like Hero Academy on iOS,what setup would you recommend? And likewise, if I were to want to create a real time, 1 player vs 1 player 2d arcade game what would you suggest? I’m all for as much help in the sense of API/libraries/tools as possible, as long as it doesn’t get in the way of what I might want to create. Starting in the cloud sounds like a good idea.
Also are there any turn based game assets using Photon that I can purchase?
I think you should be able to do both types of games with PUN. So start with that the tutorial to get into it.
There is a Rock Paper Scissors Demo in the PUN package and we’re currently writing some docs about it.
As far as I know, there are not special turn based assets to buy in the store. But doing turn based doesn’t mean you have to do a lot of tricky things. You can send messages to sync the state, just as in realtime games.