hi guys:
I’m going to develop a arpg game on mobile phones. Looks like diablo3. I can’t decide whether to use smartfox2 or uLink for server development. I have been familiar with smartfox2, but uLink just only read some doc from internet.
Can anybody give me some suggest about uLink? I want to know the disadvantage of uLink and which game use it in appstor.
thanks.
uLink can be used for the Networking of any kind of Multiplayer game. It holds the record for the most players in a single FPS Twitch based game with over 1,000 players though you would need to get a license for uPikko Server as well in order to have that many players.
have any weaknesses?
I really like both SFS and uLink,
SFS for the reason of being true real standalone none unity instance multiplatform, it can be run on windows, while developing, and when ready for production, you can use it for linux a standard, linux box ie: centos, fedora etc… (cheap servers, will save you lots of money)
plus it can handle thousands of ccu in the same mid size hardware box, you may not need servers farm to have thousands of ccu, since it uses very little server load, reason is because sfs is not aware of game physics, so uses very little load in other words is very light weight. hence the reason you can host thousands of ccu in one single server instance.
-uLink in the other hand, i like a lot too, altho uLink is just another unity game build which since it is deployed inside a unity instance, ie: game build, you can use as server side the only difference is that uLink is embedded with it and replaces unity networking, well not replacing but using ulink networking instead.
lets put it lke this, if you are familiar with unity networking, you know it is very easy to use and create multiplayer games, well you will feel at home with uLink since it is pretty much the same concept, you just add a prefix of ulink to any
unity networking function and you got a ulink server.
Noticeable Pros:
-ulink is automatically aware of unity physics, (server side collision anyone?) is is also aware of all you scene, this is priceless since none of the other networking plugins can do this out of the box, you will need to do so many hacks in order to achieve some sort of simulation and you will probably give up before you get even close to do it, so this is a godsend when you use ulink.
-with ulink you can handover players between different servers even if the servers are in other hardware box(expandable servers anyone?) you can have several zones in standalone game servers deployed in different machines to load balance you game, and your players can connect between each one of them like a portal to another zone without loging out of the game, the handover is not seamless, but it only take a second the handover to another server/zone, great for mmos.
-also there is already out of the box a scope system where you can use it as AoI(area of interest) or network side LoD, a very useful system for server only send updates to players close to them , think of it as radius around the player that will only get updates of players or networked objects around this player’s radius, this is a must for any mmo type game since the server will save lots of work load and bandwidth, and wont choke trying to send all updates to all players.
Noticeable Cons:
altho not a real con but lets say a limitation, can be server resources, a unity instance used as server with ulink networking can be a little resource intensive, compared to SFS, the reason is the server side physics and complete scene aware of objects, drawback is that you can support an average of
less than 100 players in a single server instance/zone the recommended is 64 players per instance so you wont have a choking server instance.
and there is a reason for that, altho not ulinks fault but unity, since unity is a single threaded
hence the limitation of players at a time in a server instance, but you can set server instance affility to another core and host another amount of players and so on.
I have done some load testing and tested a single zone/server in an old core2duo windows7 64bit with 6gb ram machine, tried 80 to 100 bots using utsung load testing and pretty much choked my core to 100% making the game very laggy, so reduced to 64 bot connections and had like 40 to 50% resources use of the core, so you can host a couple of instances in a core with 64 players and youll be good, so in a core to duo maybe it can support around 200 to 250 ccu having 4 server instances 2 for each core with a max of 64 players in each one, and that may be pushing a little bit.
i mean is not that bad since your server is aware of everything, a fully authoritative server.
and you can always deploy another server hardware box with another few instances and have all servers connected eachother so player handovers and youll have another 200 players , this setup is good for escalation and having an mmo, but a little bit expensive, not a little but around 5 to 10 times expensive than using SFS as per my calculation, maybe my calculations are wrong, but those are the numbers i got while in my testing,
whereas with SFS in the same server specs core2duo above one can host around 2k ccu or more in one single instance as per SFS white paper reports.
-as Jamespro mentioned ulink had a record of hosting around 1000 players in an FPS game , but they were using uPikko, so for indies this is not even close or feasable since uPikko is not available for indies, so you might aswell forget about it from the get go, what uPikko does is some sort of seamless transaction of players between servers think of seamless worlds, sort of load balancer of multiple server instances seamlessly, but pretty much not accessible to indies and this is a fact atm.
but if you like zoned world and a second loading wait time between server instances/zones, and you dont mind having multiple server hardware boxes to host a few hundred players, then uLink is a great choice, i really recommend it to you 100%
i hope i did not bore you with long speech,
but this is as per my own experience using uLink so far