Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Released] Open Source Networking Middleware - PlanetServer

Discussion in 'Multiplayer' started by seand88, Jul 24, 2014.

  1. seand88

    seand88

    Joined:
    Aug 30, 2013
    Posts:
    13
    Good Morning Everyone,

    We have been working on this technology for a while and we felt that it was best to open source it to get our names out there into the unity3d community.

    PlanetServer is much like photon server but more like smartfoxserver if you have used that before.
    It is now open source on github and includes a demo unity3d example.

    https://github.com/seand88/PlanetServer

    We are looking for other contributors to the project to help make it even better! If you know a thing or two about network programming let us know.

    For everyone else out there use this technology to host your own unlimited private servers with no restrictions! The license is MIT so use it how you feel is necessary.

    What is PlanetServer?
    PlanetServer is a java middleware server technology similar to SmartFoxServer,Photon, or Electroserver

    What features does it have?
    - Sending Data over TCP socket
    - Room Api - Create rooms and send messages to people only in those rooms
    - Custom Json Protocol for sending data between Client/Server
    - Plugin Support - Write your own extensions to the server

    Why would I use this over photon or smartfox?
    - The server has a java backend and supports multiple operating systems.
    - The server has been tested for windows, mac, and linux
    - Its free and open source!

    Why did you use java and not just use c#
    We used java as the backend because of its abundance of high permanent networking libraries.
    It was also much easier for us to target all the platforms we wanted the server to run on like Linux and OSX

    If anyone has any questions or would like to chat about whether or not it could work for your project please leave a message!

    Thanks for reading


    -Sean
     
    Last edited: Jul 24, 2014
    mgear likes this.
  2. MrMassively

    MrMassively

    Joined:
    Sep 4, 2013
    Posts:
    115
    Thank you for the contribution,


    got a few questions:

    does this setup includes a way to expand the server , some sort of load balancing, ie:
    a lobby where one can connect several servers so player can login to the one not so populated?

    some other networking solutions use a lobby server where you can fire up several other servers in different hardware nodes so the client can choose which server to join or the one less populated. or the lobby automatically load balance the servers for best performance.

    does planetserver include something like that? or one is stucked at a single server only(host as many players one single server/hardware can support)


    any particular reason it does not have udp support?
     
  3. seand88

    seand88

    Joined:
    Aug 30, 2013
    Posts:
    13
    Thanks for the response.

    The server doesnt have built in load balancing but it would not be hard to accomplish. Its more of a network middleware like smartfoxserver where you write a plugin to the server to do what you want.

    So it would be non-trivial to create a lobby server that could do what you wanted and point it to other servers etc....
    In this situation I would have 1 planet server instance serve as the lobby, and then have a load balancer with a couple other platetservers behind it, and the lobby server just sends the request to the endpoint. Then its the load balancer's responsibility to do some kind of round robin style to balance out the load of the servers behind it.

    I know you can do something like this with amazon aws or linode both have built in load balancers you can use.

    There is not a good reason why we don't have UDP support yet other than time. We have that slated for the next release. We wanted to get something out there and TCP does work for a variety of games.