Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

100 Neutral

About Thaars

  • Rank
  1. I had just a question and I thought, we can discuss it here. I read a lot of posts and articles, a book (in my first language) and your linked patent and I'm still not sure how to solve this problem. From my point of view are there a lot of books I could also read but I don't know, which one is the right one. Unfortunately I'm not a native english speaker, so reading some books could be difficult and taking a long time. Thats why I'm here.   I’m writing the whole stuff in javascript and using node.js as the server and chipmunk.js physics engine. In different browsers the simulation will get different speeds over time (with the same configuration). Chipmunk should be deterministic, but it doesn’t look it. Because of this and to prevent cheating, I cannot calculate everything on the clients.   Maybe displaying the ball in the past could be a solution. I'll think about it.
  2. Hey man, I expected such an answer... It's every time the same in forums: "Here is a link and if you don't understand it, you are too stupid for that stuff." Even if its complex, it is possible to explain it in easier words than to link to a patent. It's a shame, that nobody in a game dev forum is able or interested to do that.
  3. This is a lot of text and hard to understand for me... Unfortunately I'm more confused than before. Why should I send a user input from a client with a future timestamp to the server? It would be very nice, if someone could answer in easy words and figuratively spoken my first post. I've read a lot of articles for the last 2 weeks about this whole stuff and I still don't understand how it works in detail.   Thanks!
  4. Thanks for your answer. I'll take a look and try to understand ;-)
  5. Hi guys,   I'm new to this forum. I've already asked my question at stackoverflow but got no answer yet. I hope it is not a problem to ask here again.   I’m developing a multiplayer network pong game, my first game ever. The current state is, I’ve running the physic engine with the same configurations on the server and the clients. The own paddle movement is predicted and get just confirmed by the authoritative server. Is a difference detected between them, I correct the position at the client by interpolation. The opponent paddle is also interpolated 200ms to 100ms in the past, because the server is broadcasting snapshots every 100ms to each client.   So far it works very well, but now I have to simulate the ball and have a problem to understanding the procedure.   I’ve read Valve’s (and many other) articles about fast-paced multiplayer several times understood their approach. Maybe I can compare my ball with their bullets, but their advantage is, the bullets are not visible. When I have to display the ball, and see my paddle in the present, the opponent in the past and the server is somewhere between it, how can I synchronize the ball over all instances and ensure, that it got ever hit by the paddle even if the paddle is fast moving? Currently my ball’s position is simply set by a server update, so it can happen, that the ball bounces back, even if the paddle is some pixel away (because of a delayed server position).   Until now I’ve got no synced clock over all instances. I’m sending a client step index with each update to the server. If the server did his job, he sends the snapshot with the last step index of each client back to the clients. Now I’m looking for the stored position at the returned step index and compare them. Do I need a common clock to sync the ball?   Update: I've tried to sync a common clock for the server and all clients with a timestamp. But I think it's better to use an own stepping instead of a timestamp (so I don't need to calculate with the ping and so on - and the timestamp will never be exact). The physics are running 60 times per second and now I use this for keeping them synchronized. Is that a good way?   When the ball gets calculated by each client, the angle after bouncing can differ because of the different position of the paddles (the opponent is 200ms in the past). When the server is sending his ball position, velocity and angle (because he knows the position of each paddle and is authoritative), the ball could be in a very different position because of the different angles after bouncing (because the clients receive the server data after 100ms). How is it possible to interpolate such a huge difference?   Thanks in advance for any help!  
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!