hot deployment; multiple instances of photon

zazz3
edited August 2011 in Photon Server
We are building a Unity-based game that allows users to create their own levels. It is a bit like Atmoshpir (http://www.atmosphir.com/) in terms of architecture, but we want users to be able to add custom scripts to the levels that would have to be compiled before they are deployed on the server. Hence we have a couple of questions:

1. Does Photon support hot deployment of individual levels? In other words, is it possible to avoid restarting the whole server if one user modifies one level?

2. If hot deployment is not supported, is it possible to run multiple instances of Photon on the same server and deploy each level on a separate instance (so that restarting that particular instance does not affect the functioning of other levels) and have a master instance that talks to all those individual instances and glues them together into one game environment? We wonder both about two aspects of this:
Technical feasibility: how taxing will instantiation be memory- and performance-wise?
Licensing: how will deploying individual levels on individual instances of Photon affect the type of license that we would need? Can we use one unlimited license to cover this architecture (given that all instances run on the same physical server)? Or each instance requires a separate license (which could be prohibitively expensive, given that we might have a substantial number of user-generated levels)?

Thanks!

Comments

  • given that the license is per app and per server already the "per user app" will not be needfully benefitial.

    On the other hand if you integrate scripting, you will be able to use 1 app and refresh scripts on "rooms" theoretically on the fly if you write your architecture for it, without any restart etc
  • I'm not sure if that is clear: Photon does read the level data of Unity. Any logic that is level-related or happening in a room (or world), is developed by you in pure C#, running in the DotNet framework. This kind of logic is so specific per game, that we can't provide it.

    About your questions:
    1. You can develop this yourself. Code can be compiled at runtime and executed. There is no requirement to restart the server.
    2. It is supported.

    I think it's beyond "risky" to open your server to code developed by anyone else. You should make absolutely sure you establish a sandbox which can't harm your servers. A simple infinite loop could stop the machine.

    Licensing wise: You need one license per server and game. We offer enterprise deals, to allow you to use any number of machines for a game.