Unity mmo client network?

I know that unity is not mmo back-end optimized. define the masses in massive? 500 players per server? and then clustered?

Anyway… Is the current network in unity able to do front end mmo network? handling outgoing traffic for the player and recieving possision and other information for the characters around you?

there is no front end networking.
In an MMO you have one networking between client and server and thats the one you can’t do through Unity networking.

For the server its not usable at all, as it always has all the stuff present which makes it catastrophic for a service based mmo backend.

Unity though can be used for the client front end.

You can use something like lidgren etc for the backend.

In fact that’s what I’m going to use for my framework.

dreamora > when i say front-end i mean the client network code. Unitys implemented network code is more than enough to send packets to server, or do you you need to integrade raknet fully to even do that.

I know unity is not very good at running server.

Without the Unity source code this would be difficult to do, but not impossible. It’s certainly reversible, but I would not recommend it as there is no guarantee that it wouldn’t change underneath you with future versions.

A better approach would be to not rely on their networking implementation at all if for some reason you absolutely must use your own server. You would use either extension method to implement your own multiplayer client logic.

Either way, a tall order, but doable.

Note this response is based on my research and minimal prodding around; I haven’t done either yet. :wink:

Ryan

Unity is well at running servers but no MMO / persistent worlds. but realistically seen that goes for many client - server architectures including any of the regular AAA game engines. Only MMO middleware like HE / BW have networking and server backends for MMOs

You can create your own RakNet layer if you want but you can just as well use sockets directly, use Photon or you can also create an own client network layer to work with Project DarkStar

I think you could get to 100+ players on one unity-server with smart coding.
(i know s.o. who has already had about 80 in an action based environment)

But in this case you really need to know the unity networking stuff, because it has some odd bugs/strange behaviours. :roll:

e

You could get over 100 but that would make it only RPG level, not MO nor MMO nor really persistent world usable as you can’t scale it.

lets call it FMO - fake massive online :wink:

I know a few self called “mmorpgs” which have servers which all run an own instance of the game.
If one of these servers is full, with lets say 100-500 players, they just opened another independent server running the game. So they had 2 x 100-500.

And while playing you didnt notice that with a few hundreds of players online. It seemed massive to the player even if its just FMO.

And that solution is far easier! Thats what indies should aim for IMO.

problem is you won’t get 100-500
you will get <= 100 if at all due to the whole calculation effort for the npcs etc.

And you will realize that they are different worlds because you are either connected to the one or the other and won’t be able to play with your friends.

Even at worst, a persistent world should be able to host 500 - 1000 concurrent players, otherwise you could just as well use NWN

the easiest way to start out with is clearly PDS as it has the persistency and multicore scale present, you just have to develop the server side logic and implement a new client layer in case the old C# one does no longer work

Yes! Fully different worlds, thats why i called it fake.
But it works, you just have to tell friends joining the game “hey go to server XYZ” and they will connect to this one and start with level 1.

Most of the indy MMOs wont get to > 1000 players online to the same time anyway, so it shouldnt be too bad if there are 2, 3 or even 5 servers with a different world.

One of the most successful MMOs is doing it that way:
www.tibia.com
And this game is 10 years+ old.

I know that this isnt really MMO, but its far easier to do. (and you can still sell it as mmo :wink: )

e

PS: whats PDS? Please try not to use so many shortcuts, for the dumb and the not-knowing :wink:

I know tibia, played it already back in the days when the three founders were still students in munich and hosted the original server in the server room of the university.

And if you check Tibia you will see that it was able to host 500+ at any given time :slight_smile:

And it actually is an MMO, one with one of the largest worlds of all (at best beeing beaten by UO if at all)

The “join server x” is a problem because at 100 player it will be full very fast so you have a high chance to not be able to join it at all. Thats why something more scaleable is much better

PDS: Project DarkStar

Hehe, cool :wink: i played it, too.

Yea 100 would be too less, i think 200+ is the minimum.
The question is: is this possible with unity?
I wouldnt say its impossible until i tried it myself :wink:

Theres no question that a scalable world is much better, but its hard to do.

Smartfox, Darkstar, Photon, Netdog … all fine and cool, but my problem would be that these non-unity servers couldnt (in an easy way) handle any game logic, enemy, npc, collision stuff you could easily do with your unity backend.

e

200 with collision with npc is far out of scale.
don’t forget, unity runs in a single thread and you don’t have 10ghz cpus at hand.
and even then, you don’t have persistency and persistency is far from easy to create if it is meant to be fast and flexible.

already 100 with npc and collision are very optimistic.

NetDog would actually make it possible because you can spread it among server but netdog for the multi server usage is in a price range where the vast majority here is not able to hope to ever use it

PDS to me is really the best option if you start fresh because the scaling and persistency are two massive things to create and the core thing that make the difference between performance and crap servers