implementing server side logic

we want to create a multiplayer game using a back end server other than unity's own networking features. we want to know about others experiences. how should we implement this? we don't have any of unity's features like collision detection and scene data and physx.

There's various backend / middleware technologies you could build upon, like

If you really need collision detection and scene data in your backend server, you might consider having an actual "game server" in addition to your "networking server". I've outlined a possible architecture for such an approach in Porting Unity Networking to Photon (it's a forum posting in the Photon/ExitGames forums).

The idea is to use a Unity standalone game server that connects to your back end server and handles some of the things that would be very difficult to implement from scratch. Main problem there is latency because obviously you add some latency if the game server has to "check back" with a game server running on another machine (and you'd like want to have to run it on a separate machine so you can scale more easily). Well, for the details, check out the link.

I haven't implemented this solution, yet ... so I can't say for sure how well this will be working, yet.

Well! Lots of time later, back to my own question from a google search.

Now we are using unitypark suite (uLink) for doing our MMO. It can have unity logic on the server. It has network load balancing and storage backend with a no sql database and lots of other great features.

take a look if you are interested
www.muchdifferent.com We have articles on MMOs and backends on our blog and learning materials section on our own mindhammergames.com website.

I’ve been experimenting with using the actual PhysX SDK and PhysX.NET as a wrapper for C#, and then using the UnityEngine assembly to make sure the code base is shared between server and client. This approach also could potentially allow me to run server software on a Linux machine, as it doesn’t rely on Unity much at all (as soon as I strip out the dependency on Unity’s math primitives).

If I make some good progress I’ll write a tutorial chronicling what I’m doing. It’s been pretty straight forward so far. Unity uses PhysX 2.8.4 as its physics engine, so you can get the PhysX 2.8.4 SDK to run a simulation serverside that matches Unity. I’m using Lidgren as my network library for communicating back and forth, and it’s very easy (and powerful).