Cloud Servers/On Premise questions

I'm new to Photon and I'm trying to understand the architecture enough to evaluate the options we might take in using it for a product. Currently our game(unity based) is run across a number of servers(rackspace, etc) running our home grown c#/mono server process on medium to large sized linux vms, where 1 process can host a large number of discreet 'worlds'(over 100), which is the closest analog to "rooms" in photon parlance. Our worlds persist data back to the cloud. I'm curious about the multiple options that Photon provides. I wonder if I am perhaps thinking of the photon services as broader than they actually are.

General questions

Are photon services more about matchmaking and not so much server hosting? Or is it both?

To take an extreme example, a heavily server authoritative first person shooter for example would presumably be pretty resource intensive, it probably requires the server loading the map so that it can have access to collision routines, visibility sets, etc. Is Photon Cloud meant for this type of use case? Or would that be a case of OnPremise running on more dedicated hardware?

About Photon Cloud.

I don't see a lot of information on the server specifications that one can expect of the processes in the server. That leads me to believe that Photon may be geared primarily towards very simple mobile style games where the server component is largely a back end network relay and match making system, and not a "proper" server, in the sense that it would be a machine with enough power to simulate aspects of a real time game. As I understand it, the lack of data persistence built in puts the responsibility on the user to fetch any persisted information about the player from our own database(or a service like playfab), and any information about "worlds" from elsewhere as well(cloud, database, etc). The worry here is that the use case for photon servers might be simpler than what we need out of our servers. Other than that, the appeal of an externally managed live ops is very appealing and the price seems reasonable.

What sort of options or control does one have over the available processing/memory for the server side aspect of a particular game in the cloud?

Can you please describe the topology of the connections that occur for photon cloud servers? I assume that client applications goes through some intermediate layers that route the clients connection through to a specific server room, or creates a new room, or joins a random room, and then from that point on presumably the client is talking directly to that cloud server?

What is the extent that cloud servers can be extended?
From what I see so far, you can register web hooks to an app(even for cloud servers), that do an http call to some external endpoint. I'm trying to understand what options there are with this so far as external persistence or server sided level loading

How is server logic developed for cloud servers? Or are cloud servers largely 'dumb' relays?

If cloud servers are dumb relays, it seems that even if you could use a webhook to fetch the map for a room from an external database, you would have no way to utilize it on the cloud server. Is that correct?

About Photon OnPremise

I understand that one can download the server and run it on your own boxes, which may be a way to alleviate the concern over server processing power, as an alternative to the cloud. I also see that the server can be extended with plugins, which is great. Some things I'm still unclear of with regards to the OnPremise server.

1) What is the $95 to $180 per app per server per month paying for if running the on premise server is putting the hosting, hardware, and bandwidth costs entirely on the user?
2) Is there something that ties the server to windows support only? Is there any plans to support linux? Our current server is C# based and we run them on mono on linux servers.
3) Does 1 server process host 1 "room"? Or do they support a variable number of rooms?
4) How is scaling handled for an application that utilizes OnPremise servers? Can the routing layer return something like "all servers full" if no more rooms can be created? Is there any notification(webhook, etc) that can be hooked into to trigger spinning up a new server instance?
5) Can an application use both cloud(for light resource game modes) and on premise servers(for more expensive modes)?

Alternatives

1) Can PUN be used independently of the photon cloud or on premise server? If so, what product/library must one purchase/license to integrate into a home-grown server in order to be able to take advantage of PUN on the client sides?

My hope is that if neither of these services are suitable for our product, such as the cloud servers not being able to perform that tasks we want out of it, or the standalone server not usable because of the added cost overhead incurred on top of running our own server hosting, that photon still might be an option to use, because I'm a big fan of what it provides.

That's all I have for now. Thanks for your time and I'm sure I will have more questions depending on the answers to these.

Comments

  • hi, @JeremyS

    >Are photon services more about matchmaking and not so much server hosting? Or is it both?

    we host also, but only our software. I mean that same what Public cloud has, can hosted for you on dedicated servers. The only difference is that you may use your own plugin which may contain your custom logic.

    >How is server logic developed for cloud servers? Or are cloud servers largely 'dumb' relays?

    yes, you may say so. otherwise it will be impossible to adopt them to all kind of games. But as i said GameServers support plugins, which you may use in your own cloud or in our private cloud

    >If cloud servers are dumb relays, it seems that even if you could use a webhook to fetch the map for a room from an external database, you would have no way to utilize it on the cloud server. Is that correct?

    in public cloud, yes, it is correct

    About prices please send e-mail to developer@photonengine.com

    >Can PUN be used independently of the photon cloud or on premise server?

    No, in this case you may use BOLT or THUNDER for instance

    best,
    ilya
  • How many rooms does 1 server process host?
  • Also, I'd like to re-ask one of the above questions

    What is the $95 to $180 per app per server per month paying for if running the on premise server is putting the hosting, hardware, and bandwidth costs entirely on the user?

    The reason I'm asking this is partly to understand whether there is any usage of photon services in the on premise server use-case, such as if clients still go through a photon hosted master server to get distributed back out to on-premise servers. Reading more into the server documentation I get the impression that the master server will be our responsibility too(which is fine, just looking for clarity).

    Can you confirm if that is the understanding is correct?

    You can ignore the above question, I found the server config file that one sets the clients per room and max rooms.
  • @JeremyS

    >How many rooms does 1 server process host?

    it depends on many factors, right? Most important is game logic. you may handle literally many thousands of turnbased rooms, and just few thousands for FPS. On our public cloud i even can not to say anything about rooms. all titles are very different, but every server handles around 5K users

    >Also, I'd like to re-ask one of the above questions
    i told you already about this - please write about pricing to developer@photonengine.com

    best,
    ilya
  • Seems it's more a question more about the services of a particular plan than pricing, but I'll do that, thanks.