Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Netty: how to calculate client ping and use interpolation?  (Read 2239 times)
0 Members and 1 Guest are viewing this topic.
Offline johnmad

Innocent Bystander





« Posted 2014-01-14 14:31:32 »

I'm creating a topdown RPG game for learning purpose using Netty. The server and client works so far that player can join a game and run around and see each other. But my problem is that it's not a smooth movement.

My game works like this: the client sends his  input to the server  once every ~9 ms(like my up key is pressed).
The server then has a main loop which runs about 20 times a second and checks if a player is moving set his coordinates appropriately and then send a snapshot of the game world(containing all actor coordinates and so on) to all the clients. When a client receives a snapshot it will copy that data to the clients (local) game world.

My question is about interpolation like when server receives a client input(like moving up) should it update that players coordinates to received coordinates + distance traveled during client delay/ping? And if so how do I detect a clients ping? I was thinking about including the client System.currentTimeMillis() in the packets and just compare that to Servers System.currentTimeMillis() but how will I know if the client system time is synchronized?

I hope I made my question clear if not just ask.
Offline xsvenson
« Reply #1 - Posted 2014-01-14 14:56:45 »

Here's a bit of reading, maybe You'll get some ideas. Both engines are multy-player FPS engines which means they have high demand on the networking, which may or may not apply to Your needs, but both are well worth reading anyway.
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
http://fabiensanglard.net/quake3/network.php

“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (37 views)
2014-12-15 09:26:44

Mr.CodeIt (30 views)
2014-12-14 19:50:38

BurntPizza (62 views)
2014-12-09 22:41:13

BurntPizza (99 views)
2014-12-08 04:46:31

JscottyBieshaar (59 views)
2014-12-05 12:39:02

SHC (74 views)
2014-12-03 16:27:13

CopyableCougar4 (77 views)
2014-11-29 21:32:03

toopeicgaming1999 (138 views)
2014-11-26 15:22:04

toopeicgaming1999 (127 views)
2014-11-26 15:20:36

toopeicgaming1999 (38 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!