SFML community forums
Help => Network => Topic started by: Geheim on April 27, 2013, 11:54:24 pm
-
Hey guys, a friend of mine wants to know something, but I am not able to help him, and for some reason he cannot register in this forum right now, so he asked me to ask for him:
" Hello Community,
I am trying to programme a gameserver for a jump n' run. The problem is, that I really don't know how to handle the data transfer.
I am using TCP/IP and my server works so far in the following way:
-Listens to a given port(in my case: 12345)
-Accepts the incoming connection
-Creates a thread for each client(where the data is going to be received)
Questions:
Where and when should I send the data(e.g. player's position) to every client?
-Where: in the client thread or another seperate thread(e.g. a worker thread for each client?)?
-When: directly after the server has received it or after some time(because of the FPS rate?)?
Hopefully all of you guys could understand me!
greets ..."
-
Where and when should I send the data(e.g. player's position) to every client?
Since you're using TCP (which I think may be a mistake since your game has real-time movement...), I suggest sending positions every .1 second. If you want to trim down on this load, I suggest using some predictions within the clients to calculate where the most probable path for movement is (games like Fun Run, a mobile game, use this method, along with many others).
-Where: in the client thread or another seperate thread(e.g. a worker thread for each client?)?
I'm not sure what you're asking here. It's possible and suggested (in my opinion and experience) that you don't multi-thread the networking components, but it's entirely possible and sometimes practical to do so. Just make sure you understand and plan out your mutexes before hand.
Also, I can't tell if you want the clients to connect with other clients instead of a server. It is possible, but it's very insecure because of the lack of security with packet and client modding.
-
Thanks for your reply.
He says that now everything works like he wants ;)