Search Unity

Third Party need some information verification from experienced users.. photon/Ulink

Discussion in 'Multiplayer' started by Sashimi_2, Jul 15, 2013.

  1. Sashimi_2

    Sashimi_2

    Joined:
    Jun 26, 2013
    Posts:
    30
    Hi there,

    I just need some help sorting out some information.

    I am looking to setup a prototype environment for a multiplayer game.


    It would look like.....

    There is a big gathering room and the goal would be to have a lot of players in the same scene and same server (here you can buy stuff/ new equipment/ visit vendors etc, but no real gameplay is going on here)

    From there people join groups up to 12 maby.
    And than being able to play a level instance together with the previously formed group.
    after that the group return to the gathering room.

    Ok, its not magic its not new, this concept should be pretty common nowadays.
    Imagine its a 3rd person roleplaying game, not a fps.

    Of course later on a database would be needed to store all the character customization etc. but thats not needed straight away.

    I was thinking photon cloud or server could be worth a try, but was told that the gathering room would be a pain in the ass with photon.

    I was advised to take a look into Ulink.
    Ulink seems pretty powerfull but, just a feeling.... there is still some chaos about how they go/ what about pricing /what about this that there etc. Its like they still havent found their final buisness model compared to photon, photon feels straight forward (from a pure buisness side)

    So here is my question.
    Is such a game scenario unlikly to do with a photon solution? Or its possible but would it need unjustified overhead to get it going?

    Does it make more sense to make the basic prototype with unity built in network and later (both photon and ulink praise themselves to be able to convert such project with a push of 2 buttons) migrate it into on of both solutions?
    Does it really work so easly in both packages to convert a project wich was built on unity network (I am not talking about a final project just a basic protoype that would than be converted when serious development starts)

    I am not interested if you prefer unity/Photon/ulink. I just need to get a picture of what is possible and what not.

    Of course I already read through the posts here, but instead of knowing more, I am just more confused :)
    How to setup a basic network prototype and get things going without regretting the decision later on.

    Thanks for your time.

    Cheers,
    Sashimi
     
    Last edited: Jul 15, 2013
  2. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    PhotonCloud one of your Clients would act as the server. Most MMO type games this is not what you would want as you shouldn't run any game breaking code on the client.

    Rule of thumb - Anything you put into the hands of players can and will be hacked. This is why you never want to run any game breaking code on the client. Clients should be setup as a Dumb terminal. The Client is just a window into your virtual world and receives player input which is then sent to the server which figures out what the input is for.

    Photon Server could be used... HOWEVER MMOs are split up across many different Physical Servers in order to handle the large numbers of players. Photon Server you have to pay the license fees for every Physical Server you want to run your server software on. Photon Server you would also have to create your own Server side Physics library for (Or use a pre-existing Physics library on the server) you would then need to figure out a way to get your world geometry onto the server for the physics simulation if you wanted to do any sort of server side Physics and/or collision detection.

    uLink - You pay per game and can host your server software on any number of Physical Servers as long as it was ALL for the same Game title. Your Server software is a Headless Instance of Unity3D so it contains Physics and a easy way to get a version of your world on to the server you would just want to disable all of the renderers on your Objects and remove lights, particle effects, and anything else that isn't important for the world to know about. If you want the server to be able to turn the lights on or off for example you would just create empty game objects where your lights are and then add a script that would send a message to all connected clients to disable or enable the game object.

    uLink comes with uZone, uLobby, uGameDB (A database solution designed for Games). Using all these additional engines you have everything you need to do the sorts of things you want to do.
     
  3. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    I would vouch for uLink too. The benefit of the server-side physics is a winner and we have used it to good effect in our monster truck game's development.
    Don't worry about uLink's supposed business direction/community presence. They are a great bunch of guys to work with and their support and documentation is amazing, and they are constantly releasing updates and making things better.
     
  4. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,124
    Well first of all uLink's indie version seem to be 550 euros for a while or some price like that. The lincense is good for one single title on as many physical servers that you want. For bigger projects and teams with budgets more than 100k euros of revenue which you don't seem to be the case they have good prices as well but its not public as its the case for many other companies like epic games, hero engine, big world ...

    Creating such a game is possible in both solutions, none of them can not convert easily and with magic buttons from unity network so the best is to start with one of them. converting to uLink should be easier cause they allow unity as your game server but photon's server side code is pure C# code running on top of .NET framework.

    uLink has additional stuff with itself and others said so you have lobby (uLobby), server instancing (uZone), database (riak with uGameDB) and other stuff but in photon you should build them and choose them yourself. there is a lite lobby app coded with source available to you from them however but it's basically a room manager without any other feature built in.

    If you want authoritative servers and want collision detection and/or other unity capabilities on the server then uLink is the answer. if you don't need unity on the server and are happy choosing a database engine for yourself and work with it, mySQL probably because it's free and code the lobby yourself then you can go with photon server as well. you can use mySQL with uLink as well.

    There is an article below in my signature which might help you in defining the different parameters that you might want to take into account and how to compare tools however it does not provide any tool related information for any specific package.
     
  5. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,067
    Your game outline sounds like you need a user account, inventory and most likely other custom features that go beyond syncing positions.
    Also you have a mix of "big gathering areas" and instances with a fixed, lower number of players.

    With this scope you want to run your own custom server logic sooner or later. Due to that, Photon Cloud wouldn't be my choice for this. True.

    But the Photon Server SDK could be exactly what you need: It's a framework to implement your own game logic in C#. It's based on simple principles, takes away the low level work of serialization, communication and loadbalancing. It can do simple rooms or seamless worlds with interest management.

    Photon doesn't make you use a specific set of tools. It doesn't do DB because you maybe already know and like MySQL, SQLite or something like Cloudant. It doesn't do Unity-physics but that is not deterministic across platforms and most often you only need collision detection instead of gravity, forces and overlap-resolution for rigid-bodies. Photon won't load Unity scenes but on the other hand, it won't use the memory and performance to handle overly detailed scenes (for a server process).


    What you describe is basically not a simple game. If you want to run this "for fun", any solution is fine. If you want to run this in a professional scale for lots of customers, you will have to invest time and brain to make this run optimally to keep costs from exploding.

    Neither solution will be 100% what you want or need initially. You will have to customize and also have to work around issues that show up over time.

    In best case, you would have the time to check out both solutions. If you give Photon a try, you can run your own "LoadBalancing" server almost instantly. Client side, give PUN a try but you should also check out our Unity SDK (from our download page). It has less features but the LoadBalancing API has less overhead and gives you more control.