Load sharing between client and server?
by Adam Storz · in Technical Issues · 05/12/2007 (1:28 am) · 27 replies
Is it possible to have the client share the workload of a server?
My idea was to have a single server as part of a cluster and all people logging into the game would become a part of that cluster while they are logged on, so they would be able to share the workload of the server. If it's possible then I'm hoping that with more people logged on, the overall workload of the server itself would be reduced to the point where it could handle any number of users without putting in more servers in place. Of course, I'll have other servers doing other tasks.
My idea was to have a single server as part of a cluster and all people logging into the game would become a part of that cluster while they are logged on, so they would be able to share the workload of the server. If it's possible then I'm hoping that with more people logged on, the overall workload of the server itself would be reduced to the point where it could handle any number of users without putting in more servers in place. Of course, I'll have other servers doing other tasks.
#22
07/31/2007 (6:06 pm)
True that !
#23
So it becomes a decentralized cheat detection.
The sheer numbers of people who'd have to all be cheating in the same way to avoid this detection or to provide false detections, would be pretty high - and you'd still be able to spot the patterns by looking over the logs I think.
If the whole server and all the players are cheating, well you can't avoid that and you don't need hacks for that kind of cooperation anyway.
09/14/2007 (9:01 pm)
I think in this sort of P2P multiplayer servers concept where the powerful connections can become a server, the best way to avoid cheating would be to build all clients with the cheat detection - not just the central server. Since the players are the ones who see the action anyway, they can monitor how many times an enemy shoots/moves/dies etc and should have a fairly good chance to say "hey that guy is breaking the rules by moving that fast!" and send reports to the main servers if needed. With slight tolerances of course.So it becomes a decentralized cheat detection.
The sheer numbers of people who'd have to all be cheating in the same way to avoid this detection or to provide false detections, would be pretty high - and you'd still be able to spot the patterns by looking over the logs I think.
If the whole server and all the players are cheating, well you can't avoid that and you don't need hacks for that kind of cooperation anyway.
#24
I've worked with systems that do that. They generally don't do very well in real time games played over the internet. The variability of packet delays and server load means that the tolerances have to be fairly high or you risk significant false positives. And all it takes is one talented cheater to find a way to hug the edges of the tolerances and release it as a patch to all his buddies. Then your game will be plagued with hard to detect cheaters.
As others have mentioned, there's a reason client/server architectures are so common in MMOs. It's because you can NEVER EVER TRUST THE CLIENT. Doubly so if there's any way for someone to reap real world financial rewards, such as by selling loot or accounts on ebay, willing prizes or contents, etc...
@Adam
Focus on making your game fun and addictive first. When everybody you know can't stop playing it, you'll find a way to finance the servers. One thing you might look at is Amazons EC2 (Elastic Computing Cloud). They only charge you for the actual use of CPU time and bandwidth, so you can add more servers rapidly as the game grows in popularity, without paying an arm and leg for capacity you don't need at the beginning.
09/18/2007 (6:20 am)
@TerroXI've worked with systems that do that. They generally don't do very well in real time games played over the internet. The variability of packet delays and server load means that the tolerances have to be fairly high or you risk significant false positives. And all it takes is one talented cheater to find a way to hug the edges of the tolerances and release it as a patch to all his buddies. Then your game will be plagued with hard to detect cheaters.
As others have mentioned, there's a reason client/server architectures are so common in MMOs. It's because you can NEVER EVER TRUST THE CLIENT. Doubly so if there's any way for someone to reap real world financial rewards, such as by selling loot or accounts on ebay, willing prizes or contents, etc...
@Adam
Focus on making your game fun and addictive first. When everybody you know can't stop playing it, you'll find a way to finance the servers. One thing you might look at is Amazons EC2 (Elastic Computing Cloud). They only charge you for the actual use of CPU time and bandwidth, so you can add more servers rapidly as the game grows in popularity, without paying an arm and leg for capacity you don't need at the beginning.
#25
I know nothing about how networking really works but just figured that if some sort of P2P was used, it would practically eliminate server costs for MMOs. Naturally the problem with letting the clients make decisions is that it opens it wide for cheaters.
But I figured, that if it's all like a big P2P (or torrent), where you can ban IPs from connecting to you, why not just "ban" accounts from connecting to you. This way you would no longer see the cheaters or griefers, but they could still connect to whoever was willing to put up with them.
Of course, this wouldn't work for the particular game idea envisioned in this post, but might work for a non PVP game where every other player doesn't necessarily affect your game.
I'm sure someone will read this and realize a very big glaring flaw with the idea, but at the time I came up with it, it seemed it could be a possible solution with some deeper development of the idea.
09/18/2007 (5:01 pm)
Interesting thing, I had this very same networking idea pop into my head one night and thought about it a lot. It's interesting to find, months later, someone bringing up the same idea (though originally posted months before the idea came to me).I know nothing about how networking really works but just figured that if some sort of P2P was used, it would practically eliminate server costs for MMOs. Naturally the problem with letting the clients make decisions is that it opens it wide for cheaters.
But I figured, that if it's all like a big P2P (or torrent), where you can ban IPs from connecting to you, why not just "ban" accounts from connecting to you. This way you would no longer see the cheaters or griefers, but they could still connect to whoever was willing to put up with them.
Of course, this wouldn't work for the particular game idea envisioned in this post, but might work for a non PVP game where every other player doesn't necessarily affect your game.
I'm sure someone will read this and realize a very big glaring flaw with the idea, but at the time I came up with it, it seemed it could be a possible solution with some deeper development of the idea.
#26
As for the cheat detection, I have an idea for that too. Basically, there will be around 5 copies of the profile information when the account is loaded. 1 of the 5 would be active. The other 4 would be used to check against the active one. This way if they wanted to change any stats they would have to change all five copies. The accounts will be kept on the server to reduce chances of cheating. I'm also working on a way to create a replay of sorts so I can tell where players were at any specified time and what their stats were at that time.
This game will not feature trading of any sort. Account selling, however, I will have to keep an eye on.
09/25/2007 (1:19 pm)
It's been decided that I will use a P2P-hierarchy hybrid for the networking. Doing this will hopefully allow me to only use one server per world (multiple worlds would be used for the sake of overcrowding).As for the cheat detection, I have an idea for that too. Basically, there will be around 5 copies of the profile information when the account is loaded. 1 of the 5 would be active. The other 4 would be used to check against the active one. This way if they wanted to change any stats they would have to change all five copies. The accounts will be kept on the server to reduce chances of cheating. I'm also working on a way to create a replay of sorts so I can tell where players were at any specified time and what their stats were at that time.
This game will not feature trading of any sort. Account selling, however, I will have to keep an eye on.
#27
How to Handle Cheating in MMOs.
It starts out talking about a new development in WoW gold selling (which is actually an old method in other games), then after that comes up with some creative ideas on how to really handle the situation.
Good luck!
09/25/2007 (2:35 pm)
I recently read some interesting and (I think) effective ideas on handling cheating:How to Handle Cheating in MMOs.
It starts out talking about a new development in WoW gold selling (which is actually an old method in other games), then after that comes up with some creative ideas on how to really handle the situation.
Good luck!
Torque Owner Lee Latham
Default Studio Name
Who knows? He may stumble across some revolutionary new idea, which even if it's not what he originally envisioned, could be a great discovery. Which would never have happened if he had listened to good advice.
It happens!