MP Architecture: Client/Server or Peer-2-Peer?
4 posters
Page 1 of 1
MP Architecture: Client/Server or Peer-2-Peer?
Hi all,
i'm not sure if this is more design, or multiplayer or both:
Generally, the question for me is if we go for a central server to arbitrate all player actions and communications as well as data storage (database, scores, level etc.) or if we assume direct connections between the players in a peer-2-peer network?
I prefer a client/server architecture due to the chances to protect the users from each other as well as prevent cheating etc. during games.
Problem with a central server: Cost to upkeep a server.
Problem with peer-2-peer: Cheating, tracking player stats etc.
Also, we need to consider how to update the code & data for each client, so that all players have the same version (runtimes, data, configuration files etc.) before attempting to game each other (=patching, offline or online?).
What are your thoughts or preferences on this?
i'm not sure if this is more design, or multiplayer or both:
Generally, the question for me is if we go for a central server to arbitrate all player actions and communications as well as data storage (database, scores, level etc.) or if we assume direct connections between the players in a peer-2-peer network?
I prefer a client/server architecture due to the chances to protect the users from each other as well as prevent cheating etc. during games.
Problem with a central server: Cost to upkeep a server.
Problem with peer-2-peer: Cheating, tracking player stats etc.
Also, we need to consider how to update the code & data for each client, so that all players have the same version (runtimes, data, configuration files etc.) before attempting to game each other (=patching, offline or online?).
What are your thoughts or preferences on this?
Last edited by Hairein on Tue Jul 28, 2009 5:32 pm; edited 1 time in total
Hairein- Regular
- Posts : 32
Points : 5427
Reputation : 3
Join date : 2009-07-28
Age : 54
Location : Aachen, Germany
Re: MP Architecture: Client/Server or Peer-2-Peer?
Client server If I remeber rightly is a better way to go. Isn't it faster as well? If we do it through a server user will have more protection.
Also I'd prefer it if we could prevent cheating so yeah Client-Server would be better i belive.
I'm not sure if anyone else knows much about networking, so i'll have to ask around specificly for more Networking programmers to help out.
Also I'd prefer it if we could prevent cheating so yeah Client-Server would be better i belive.
I'm not sure if anyone else knows much about networking, so i'll have to ask around specificly for more Networking programmers to help out.
Re: MP Architecture: Client/Server or Peer-2-Peer?
I would suggest Client/Server for game interaction but segregate the Chat method through P2P. So even though it would be encapsulated in the interface, you can segregate the process.
GoldBishop- Novice
- Posts : 1
Points : 5300
Reputation : 0
Join date : 2009-09-24
Re: MP Architecture: Client/Server or Peer-2-Peer?
We can't do the chat peer-to-peer if we want to filter communications between users. We need to protect users from each other otherwise we would probably get lots of abuse and griefing on the line.
I do agree that the game and chat could be seperate processes and/or servers.
I do agree that the game and chat could be seperate processes and/or servers.
Hairein- Regular
- Posts : 32
Points : 5427
Reputation : 3
Join date : 2009-07-28
Age : 54
Location : Aachen, Germany
Re: MP Architecture: Client/Server or Peer-2-Peer?
I would suggest game client/server, and a central server. The game servers register with the central server (if they want), and the central server keeps track of server IP's, server user's, server latency, server title, server password (if any), etc. Users can then either check a website for the central server's information, or you could build it into the client (optimal).
So anybody (including the creator's, you guys, of course) simply loads up a server and any user will see it with their client.
You could create your own central server app (ie. Battle.net), but I would recommend using a free service for now instead (use an interface incase you decide to switch later). Steam (which includes cloud, achievements, etc), or Gamespy (includes achievements), etc. Just include the DLL with your game, and use their interface (wrap it too incase you decide to switch). Titan Quest uses Gamespy.
Agreed. I wouldn't recommend P2P, however, you CAN do chat peer-to-peer and still filter communication between users. Have users send a P2P chat request to the server, and the server can filter the request. If it's okay, it'll send the info (if any), if it's not okay, it'll send a failure. If the server approves, it can proceed to send the chat text to the other user, etc. Without the server's approval (filter) users can't abuse or grief other users via P2P. It's still not ideal, so I wouldn't really worry about it unless there's a performance need (doubt it with this type of game).
So anybody (including the creator's, you guys, of course) simply loads up a server and any user will see it with their client.
You could create your own central server app (ie. Battle.net), but I would recommend using a free service for now instead (use an interface incase you decide to switch later). Steam (which includes cloud, achievements, etc), or Gamespy (includes achievements), etc. Just include the DLL with your game, and use their interface (wrap it too incase you decide to switch). Titan Quest uses Gamespy.
Hairein wrote:We can't do the chat peer-to-peer if we want to filter communications between users. We need to protect users from each other otherwise we would probably get lots of abuse and griefing on the line.
I do agree that the game and chat could be seperate processes and/or servers.
Agreed. I wouldn't recommend P2P, however, you CAN do chat peer-to-peer and still filter communication between users. Have users send a P2P chat request to the server, and the server can filter the request. If it's okay, it'll send the info (if any), if it's not okay, it'll send a failure. If the server approves, it can proceed to send the chat text to the other user, etc. Without the server's approval (filter) users can't abuse or grief other users via P2P. It's still not ideal, so I wouldn't really worry about it unless there's a performance need (doubt it with this type of game).
Daemn- Novice
- Posts : 3
Points : 5320
Reputation : 0
Join date : 2009-09-08
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
Sun Jun 20, 2010 7:45 pm by Admin
» Events are happing
Wed Apr 14, 2010 11:29 pm by Admin
» Progress! . . .
Fri Apr 09, 2010 5:10 pm by Admin
» Soulmen(jordan)
Wed Feb 24, 2010 7:56 pm by soulmen
» Basic starting blocks
Wed Feb 24, 2010 7:41 pm by Admin
» Okay so uni isn’t so demanding as I first thought.
Mon Oct 26, 2009 4:39 pm by Admin
» MP Architecture: Client/Server or Peer-2-Peer?
Sun Oct 04, 2009 2:34 pm by Daemn
» What I am working on at the Moment READ!
Fri Sep 25, 2009 5:15 pm by Admin
» Development Framework available at SourceForge
Tue Sep 22, 2009 9:46 am by Hairein