Hey guys i need to write a simple server which can handle all things that is not directly handling the actual gameplay.
It needs to handle:
Talking with the database, login, account creation, matchmaking, friend-list, updating player stats after games and such.
Overall nothing crazy or heavy.
I started doing this using Photon Server as i worked with it before, and it works great… BUT it seems like overkill, and i see no reason to use a lot of money on a license if i could write it my self pretty easily.
So looked into lidgren and it seems rather easy to get going.
But is there in drawbacks from using lidgren i should know before i spend a lot of production time creating my own server?
Send one large message as rarely as you can, sending a lot of small messages with lidgren wastes a lot of bandwidth
Lidgrens handling of scenarios with a lot of packet-loss is pretty horrible, basically it does nothing to compensate for a degrading connection quality and just keeps on trucking like everything is fine. Also because of how the way ACK:ing is implemented in Lidgren, if/when you get a lot of packet loss it will most likely blow up.
Because of 2) you need to come up with your own strategy for handling packet loss, and how to prioritize updates, etc.
Lidgren deals with the basic stuff of “faking” a connection over UDP, sending packets with various gurantuees (unreliable, reliable, ordered + reliable, etc.) but it is still very low level. You seem to know what you are doing, but be prepared for having to do a lot of the low level plumbing yourself.
Thanks a lot fholm! I will put some thought in to it. Think ill play around with Lidgren a bit too see what i can get at.
But maybe i should just shallow the 25$ per month for a 500CCU photon server in the end, as i already wrote around 40+ % of our functionality there.
If we get more than 500CCU on average then paying more is no problem
My Networking Engine that I use uses Lidgren. It was tested with 1,000 active connections in a single Region/Zone/Room. Lidgren is certainly capable of handling the demand any Multiplayer game throws at it!
JamesPro, you had 1000 people online on your server, as in 1000 people PLAYING an actual game on different computers spread all over say the entirety of the united states?
Or do you mean you connected 1000 clients from a few or the same computer to your server, and just had them connected?
I am sure that it can handle it.
It is just how much tinkering i need to do, to make a a smooth and “flawless” experience for our customers. Something i get out of the box with Photon.
Think i will go with photon for this project and then play around with lidgren on the side and see if it is something i want to use in the future
Not really sure. The testing was done before I took it and started using it. I’ve modified it heavily and will continue to modify it for my needs. I personally haven’t personally done any large scale testing with it as I really just started using it and the MMO I’m making as part of my Day Job uses uLink. uLink is closed sourced and it would be hard to get it to do custom stuff. One issue we are having with uLink is Seamless Transitions. Using their built in methods for transfering game objects between Servers we have a second or 2 freeze up in game play. The only way to do truely seamless transitions is with their uPikko Server solution which is currently not available for licensing by Indie Developers (Or so they have told us other people have told us they have it and it is available to Indies…). Using our own Opensource Networking we would be free to setup our own solution for seamless Transitions as well as other things with out worrying about not having access to the source code.
So basically your statement from before that could be interpreted as you having full blown game and it has been load tested with 1000 users, actually means: “the people who had this code before me, may or may not have tested 1000 clients in some regard in some way”.
No… It WAS tested with 1,000 players It just wasn’t me who did the testing.
cerebrate cerebrate is offline
Posts
249
Posted: 11:14 AM 2 Days Ago
I use a framework that I built on top of Lidgren. Using it for an mmo, had a thousand or so people on one server during tests.
yup,
i was talking with cerebrate the other day, great guy btw he answered all my questions about Pnet, he is the one who built the open source MIT Pnet based on lidgren and they are building their mmo based on Pnet, where they did a load test with 1000 players in the same room in a single server. so that sounds good.
I too am interested on lidgren, i think ill start looking at the network library to get familiar with it,
i see that also fholm too built a framework based out of lidgren which is called Silmnet, he released it to the public but with a very restrictive license, “Look but dont touch me” kinda deal,
i remember i sent him a pm a few weeks ago requesting information about it, if it was possible to license his setup, but he never returned the pm, so i assume he is not interested in selling his creation. as he also states in his thread he no longer support or give support for Slimnet and the reason why his restrictive license is because he is not fun of others to use his hard work for commercial purposes neither will extend licenses nor support it.
basically just to learn from.
so i had to move on and find other resources, then i found JamesPro which is working on a mmo framework based out Pnet/lidgren, and he seems very helpful supporting my questions and concerns about it. he is also helping me putting together a basic setup with his custom ironpython scripting engine.