uLink question!

Hello! :smile:

I am searching for a network solution for a heavy physics based game, and It seems like uLink is perfect for this.
I got experience with both photon cloud and photon server, and while photon server would be a possible solution it would be great not to put to much time into the physics server side.

There is however a thing that i am uncertain of:
it states that “The Server is also an instance of the Unity Engine” on MuchDifferents homepage.

Does that mean that an instance of the “whole” game runs on the server for each active game? This would be a problem as our game is in a voxel world which take up a lot of memory and would limit a servers capability to host many games.

Just need to make sure i understand everything right before i put the few money we got into a solution.

Thanks BFGames! :wink:

Physics are tricky over a network! Floating points are not the same on each machine!

http://gafferongames.com/networking-for-game-programmers/floating-point-determinism/

I know, but wasn’t really my question.

I was answering what I could of your question :slight_smile: I don’t have much experience with uLink… but I do have experience with floating point precision problems in networking… which you will also have

That’s why you only calculate the physics on an authoritative server and send the resulting transforms to the clients, you never calculate physics on multiple devices or pass any physics information over the network, otherwise you’ll get undesirable behaviour.

To answer your question, BFGames, yes, uLink runs in a Unity instance, which runs in batchmode (windowless), so no rendering is taking place on the server. You’ll have a server build, optimised to only do the physics calculations, it doens’t need to have any assets (aside from collision meshes) or artwork or sounds (which will heavily affect server performance en masse).

But to get a realistic multiplayer physics simulation going you will need a master physics scene on the server, with all relevant transforms synced across all clients. Since uLink is free to try, I’d suggest seeing what sort of performance you can get on a server.

To give you an example on our Leaseweb Dedicated Server - Intel Quad Core Xeon E3-1270 with 16GB Ram, we can run about 300 instances of Monster Truck Racing Arenas, each instance has 16 Wheel Colliders, and lots of collision meshes for the tracks and props etc. While not heavily intensive physics wise, that gives you an idea, and that is a fairly cheapish server at 58 Euros a month.

As I said, your best bet is to evaluate if uLink is for you, in my opinion, it probably is.

Melt down is right,
i’m also copying my answer from muchdifferent forums for others information
That means the game server code will run inside a unity application, using groups feature of uLink you can host multiple games within one process and instance another process whenever required. About physics simulations, it would be great if you can use physX implementation of unity but in certain game types you might have to write your own diterministic physics system which you can ask it to tell you what will happen in next x seconds and some other features. take a look at AI game engine programming book for more info. This told, uLink’s smoothRigidbody is more than enough for many games and in many situations PhysX implementation of unity would answer your needs, even if not at least you can use it’s collision detection and raycasting capabilities and many other great features of unity would help you in server side. stuff like coroutines, gameObject management and … so you’ll be much more productive than using photon server, Photon cloud is out of question as you know.

Awesome! Leaseweb is what we will be using for servers as well.

We got a single capsule collider per player, and it is a 2-8 player game. We do have lots of collision meshes for our voxel world but they are extremly simpplified in larger chunks for various reason.

Yeah trust me I did a lot of research, they offer the best bang for the buck server wise. For min latency you also want to make sure you go dedicated not cloud.

From your world sounds like you’ll get some good performance.

We also changed to leaseweb from amazon where i work, for our facebook game. It really is the best for the buck. Only problem is that they got no servers in asia at the moment.