Doom3world

The world is yours! Doom 3 - Quake 4 - ET:QW - Prey - Rage
It is currently Sun May 26, 2013 2:37 am

All times are UTC [ DST ]




Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Fri Jan 06, 2012 8:32 am 
Offline
found a secret
User avatar

Joined: Fri Dec 12, 2003 9:49 am
Posts: 629
Location: teleporting, ETA=400ms
I wonder if there are people out there willing to join in rewriting Doom3's netcode from currently "extrapolated" (forward prediction) snapshots to "interpolated" snapshots. The idea is to make Doom3's internet clientside network performance less vulnerable to latency towards the game server...

These two videos showcase what difference a change of the netcode is having on the clientside gaming experience (click the images below to playback the videos):


Image


Image


It would be great being able to get enough capable people together to pull this off...

_________________
I got six little friends and they all run faster than you ;)

Check our multiplayer mods out at
moddb or the SPS Homepage


Last edited by Oneofthe8devilz on Sat Jan 07, 2012 4:31 pm, edited 2 times in total.

Top
 Profile  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Fri Jan 06, 2012 2:25 pm 
Offline
picked up 200 ammo

Joined: Thu Jan 28, 2010 1:17 am
Posts: 220
That's quite the difference.

_________________
Doom 3 editor noob. Doom 3 - Day 75 [HD]
Particle editor/editing | Phrozo Weapons Mod


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 4:17 am 
Offline
Very Senior Forum Poster
User avatar

Joined: Sun May 29, 2005 10:02 pm
Posts: 7083
Location: Here, not there.
Neat.

How would this work for increased use of physics & scripting over the network?

_________________
Fuzzy Logic Inc
PAINTBALL DOOM 3!!!!
Check out my Q2 server! q2server.fuzzylogicinc.com :D
Doom 3, Paintball! d3server.fuzzylogicinc.com


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 7:57 am 
Offline
found a secret
User avatar

Joined: Fri Dec 12, 2003 9:49 am
Posts: 629
Location: teleporting, ETA=400ms
The Happy Friar wrote:
Neat.

How would this work for increased use of physics & scripting over the network?


In fact going for interpolation would improve performance on pretty much every level since extrapolating the snapshots is really CPU intense. When running Doom3 in interpolated mode I get a solid 33% FPS performance increase...

_________________
I got six little friends and they all run faster than you ;)

Check our multiplayer mods out at
moddb or the SPS Homepage


Top
 Profile  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 1:33 pm 
Offline
Very Senior Forum Poster
User avatar

Joined: Sun May 29, 2005 10:02 pm
Posts: 7083
Location: Here, not there.
Is that a server side performance increase? Could a standard D3 client connect to an optimized server?

_________________
Fuzzy Logic Inc
PAINTBALL DOOM 3!!!!
Check out my Q2 server! q2server.fuzzylogicinc.com :D
Doom 3, Paintball! d3server.fuzzylogicinc.com


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 2:42 pm 
Offline
Last man standing
User avatar

Joined: Tue Feb 22, 2005 4:59 pm
Posts: 1062
Location: In The Zone
The Happy Friar wrote:
Is that a server side performance increase? Could a standard D3 client connect to an optimized server?

No. The client and server would have to be running custom code.

_________________
http://www.the-emz.com/ - A Multiplayer Mod for Doom 3


Top
 Profile  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 4:44 pm 
Offline
found a secret
User avatar

Joined: Fri Dec 12, 2003 9:49 am
Posts: 629
Location: teleporting, ETA=400ms
The Happy Friar wrote:
Is that a server side performance increase? Could a standard D3 client connect to an optimized server?


From iddevnet.com:

Quote:
...clients are actually running the exact same game code as the server...


So as simulation says, clients would require the same codebase update as the server...

_________________
I got six little friends and they all run faster than you ;)

Check our multiplayer mods out at
moddb or the SPS Homepage


Top
 Profile  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 6:59 pm 
Offline
Very Senior Forum Poster
User avatar

Joined: Sun May 29, 2005 10:02 pm
Posts: 7083
Location: Here, not there.
awww bummer. :( I was hoping for a R1Q2 like solution to Doom 3's netcode.

_________________
Fuzzy Logic Inc
PAINTBALL DOOM 3!!!!
Check out my Q2 server! q2server.fuzzylogicinc.com :D
Doom 3, Paintball! d3server.fuzzylogicinc.com


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 7:22 pm 
Offline
fired 300 rounds

Joined: Tue Oct 19, 2004 8:04 am
Posts: 356
Also, keep in mind that just because the movement is nice and smooth doesn't mean the players are in the right place - with that build you presumably need to lead your shots by your latency, which you don't with d3 base. There will be other negative effects too, such as the local player view not being as correct wrt the server view.

The d3 method works pretty well for pings up to ~100, and these days, do you really need to play on 400?


Top
 Profile  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 7:41 pm 
Offline
Very Senior Forum Poster
User avatar

Joined: Sun May 29, 2005 10:02 pm
Posts: 7083
Location: Here, not there.
I see lots of Quake 2 players with 200+. Seems most of the Doom 3 community it outside the USA (or at least the bulk of the players & content creators) so a relatively high ping is still a concern.

_________________
Fuzzy Logic Inc
PAINTBALL DOOM 3!!!!
Check out my Q2 server! q2server.fuzzylogicinc.com :D
Doom 3, Paintball! d3server.fuzzylogicinc.com


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 9:41 pm 
Offline
has joined the game

Joined: Thu Aug 21, 2008 7:55 am
Posts: 41
Location: South Africa
I live in South Africa.

My ping to london is about 220ms and to the US east cost about 240 - 270ms. Before xbox live was officially launched in south africa I use to play Battlefield bad company 2 on the overseas servers. Except for some minimal lag with the rocket launchers the game runs smooth.
Quake wars and doom 3 is completely unplayable with pings above 120ms. Characters jumping around getting stuck in corners it is horrible. More stable net code would be wonderful. Also for modding you can focus more on co-op games.


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sat Jan 07, 2012 10:06 pm 
Offline
found a secret
User avatar

Joined: Fri Dec 12, 2003 9:49 am
Posts: 629
Location: teleporting, ETA=400ms
AnthonyJa wrote:
Also, keep in mind that just because the movement is nice and smooth doesn't mean the players are in the right place - with that build you presumably need to lead your shots by your latency, which you don't with d3 base. There will be other negative effects too, such as the local player view not being as correct wrt the server view.

The d3 method works pretty well for pings up to ~100, and these days, do you really need to play on 400?


There is a good reason why the majority of fps games use interpolation instead of Forward Prediction. Forward Prediction actually attempts to do the impossible by trying to predict on a game client what the server's gameworld looks like at the very moment. But since every game client (even the ones in a LAN environment at 0ms Latency) always runs with a certain delay behind the server, there are always going to happen prediction errors, which then, when the confirmed snapshots from the server finally arrive, have to be corrected. We are experiencing these corrections as "snapping". And I am witnessing that kind of snapping even at the LAN environment where actually the latency is very low.

A 100ms server radius, like you define as pretty fine, (which in fact it isn't, as there is already a lot of snapping happening for all the game entities and also a lot of skipping for the particle & projectile effects spawning) actually narrows down the server's client pool quite heavily, compared to a game server that can offer acceptable gameplay for clients with a ping of up to 400ms, like visually illustrated in the below images for a server located in London.

Server Client Coverage at 100ms
Image

Server Client Coverage at 400ms
Image

And finally I would like to add that I rather prefer to lead my aiming (or have the shooting be current and then later backwards calculated like in CSS with "unlagged") than shooting at a jerking-snapping-teleporting target where I barely can make up where it actually is located like showcased in this youtube movie. After all there is a reason why multiplayer-only game developer Splash Damage introduced interpolation networkcode with Brink to idtech4.

_________________
I got six little friends and they all run faster than you ;)

Check our multiplayer mods out at
moddb or the SPS Homepage


Top
 Profile  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Sun Jan 08, 2012 2:43 pm 
Offline
Very Senior Forum Poster
User avatar

Joined: Sun May 29, 2005 10:02 pm
Posts: 7083
Location: Here, not there.
AnthonyJa wrote:
Also, keep in mind that just because the movement is nice and smooth doesn't mean the players are in the right place - with that build you presumably need to lead your shots by your latency, which you don't with d3 base. There will be other negative effects too, such as the local player view not being as correct wrt the server view.


Another issue with the D3 tech way is the "springback" when you're ping gets to high. Because it's anticipating where you should be and the latency is so high, the client does something but the server never uses that info and you never end up firing, never move (spring back to position), etc.

The other way will compensate for this but makes things more inaccurate. I prefer the old way myself, as someone who's ping can occasionally spike (the old way causes "springback" too but not as bad and you need a much higher ping).

Hey devils, a cvar to let the server choose would be awesome! :)

_________________
Fuzzy Logic Inc
PAINTBALL DOOM 3!!!!
Check out my Q2 server! q2server.fuzzylogicinc.com :D
Doom 3, Paintball! d3server.fuzzylogicinc.com


Top
 Profile E-mail  
 
 Post subject: Re: Doom3 Netcode Optimization Project (processing of snapshots)
PostPosted: Tue Feb 07, 2012 5:17 am 
Offline
found a secret
User avatar

Joined: Fri Dec 12, 2003 9:49 am
Posts: 629
Location: teleporting, ETA=400ms
THIS wikipedia article gives a nice sum up of the pro and cons of both methods:

Quote:
Both methods have advantages and drawbacks.

Interpolation ensures that objects will move between valid positions only and will produce good results with constant delay and no loss. Should dropped or out-of-order packets overflow the interpolation buffer the client will have to either freeze the object in position until a new packet arrives, or fall back on extrapolation instead. The downside of interpolation is that it causes the world to be rendered with additional latency, increasing the need for some form of lag compensation to be implemented.

The problem with extrapolating positions is fairly obvious: it is impossible to accurately predict the future. It will render movement correctly only if the movement is constant, but this will not always be the case. Players may change both speed and direction at random. This may result in a small amount of "warping" as new updates arrive and the estimated positions are corrected, and also cause problems for hit detection as players may be rendered in positions they are not actually in.

_________________
I got six little friends and they all run faster than you ;)

Check our multiplayer mods out at
moddb or the SPS Homepage


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group