<!--quoteo(post=1730082:date=Oct 1 2009, 05:37 PM:name=Psyke)--><div class='quotetop'>QUOTE (Psyke @ Oct 1 2009, 05:37 PM) <a href="index.php?act=findpost&pid=1730082"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->The reason people liked Quake's netcode so much wasn't actually due to the netcode, it was due to the tight feedback loop the player recieved. Every time one of your bullets successfully hit someone you got a "ping" noise to let you know. This made it so that, as you say Bacillus, it was very easy to adjust to the server latency. This might be something to consider for NS2 considering how important aiming is, and if it isn't in the main game, I bet it wouldn't be too hard to mod in.
There are a lot of games that have done something similar, but I think Quake is the best example of a really tight feedback loop. In TF2, the Sniper's Huntsmann makes a "shtickk" noise when it hits a guy (even if the guy is across the map) which I think is one of the reasons I like using it so much. In Mario Kart 64, the same thing happened when another person ran over your banana or got hit by any other item of yours. You would hear them go "aieee" or whatever.
Both Mario Kart and TF2 are on a different scale though, as the sound in Quake goes off like 40 times a second. With MK and TF2 it is intended more to be a notification of what is happening offscreen (hence the lower frequency), while in Quake it is intended to create the feedback loop.<!--QuoteEnd--></div><!--QuoteEEnd-->
I really like this idea. Make a separate thread in I&S and I will give you my full support.
PlasmaJoin Date: 2003-04-26Member: 15855Members, Constellation, Squad Five Blue
Max there is a good Valve netcode article on the dev wiki at <a href="http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking" target="_blank">http://developer.valvesoftware.com/wiki/So...ayer_Networking</a> if you're interested
<!--quoteo(post=1730112:date=Oct 1 2009, 06:17 PM:name=Plasma)--><div class='quotetop'>QUOTE (Plasma @ Oct 1 2009, 06:17 PM) <a href="index.php?act=findpost&pid=1730112"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Max there is a good Valve netcode article on the dev wiki at <a href="http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking" target="_blank">http://developer.valvesoftware.com/wiki/So...ayer_Networking</a> if you're interested<!--QuoteEnd--></div><!--QuoteEEnd-->
I think Max has linked us to this before in the past...
remiremedy [blu.knight]Join Date: 2003-11-18Member: 23112Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester
<!--quoteo(post=1730083:date=Oct 1 2009, 01:41 PM:name=Sirot)--><div class='quotetop'>QUOTE (Sirot @ Oct 1 2009, 01:41 PM) <a href="index.php?act=findpost&pid=1730083"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I really like this idea. Make a separate thread in I&S and I will give you my full support.<!--QuoteEnd--></div><!--QuoteEEnd--> Feel free to do the honors.
<!--quoteo(post=1730037:date=Oct 1 2009, 01:14 PM:name=homicide)--><div class='quotetop'>QUOTE (homicide @ Oct 1 2009, 01:14 PM) <a href="index.php?act=findpost&pid=1730037"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->No one actually makes FPS games without prediction and lag compensation anymore.<!--QuoteEnd--></div><!--QuoteEEnd-->
counter example: UT3.
OK, to be fair their lag prediction simply sucks.... but still.
Getting killed around corners is a stupid complaint anyways - it's inevitable with the latencies involved. I think the most important thing is to just make everything the client sees sync up with the server's version of the world. In a fast-paced game, extrapolation can result in pretty big errors - what's worse is needing to correct those prediction errors.
Yeah, cornering is a small problem until you get to some 120+ pings. To me it's the least annoying netcode issue of them all.
Most of all things I'd like to have the feeling as a skulk that every frag you get is due to decent dodging or game sense, not because you sponged those 2 SG shots. Nothing kills the skulking enjoyment like bad reg does.
'Cornering' is a HUGE issue if you have to/want to play on servers across the ocean. It simply makes me lose my mind in Team Fortress 2. And if there are to be any global tournaments in NS2, it will be an issue when Euro meets US. And the reason why I'm favouring US servers instead of Euro ones is because no one in Europe use their microphones, at least in TF2. Or if they do, they speak only in their own perverse languages (I'm looking at you, Russians and French), even on UK servers.
Dystopia has these 'hitbeeps' that you have in Q3 as well, but sometimes even if you hit you don't hear the beep, which is annoying.
Even though my post is starting to feel like it's going all over the place, I'll say one more thing: The only way I will justify a netcode that uses heavy prediction, such as TF2's, if my shot _always_ registers on the server if I have already shot on my screen, UNLIKE in any Source game. For example, in TF2 it goes like this: Sniper A has a ping of 50 and Sniper B has a ping of 150. Sniper B shoots A fatally in the head, A shoots B fatally in the head 50 ms after. A lives, B dies. I think B's shot _should_ count for a kill, even if it seems like in A's screen that he was killed after B was already dead.
<!--quoteo(post=1730037:date=Oct 2 2009, 04:14 AM:name=homicide)--><div class='quotetop'>QUOTE (homicide @ Oct 2 2009, 04:14 AM) <a href="index.php?act=findpost&pid=1730037"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->No one actually makes FPS games without prediction and lag compensation anymore.<!--QuoteEnd--></div><!--QuoteEEnd-->
<!--quoteo(post=1730423:date=Oct 3 2009, 07:47 PM:name=steppin'razor)--><div class='quotetop'>QUOTE (steppin'razor @ Oct 3 2009, 07:47 PM) <a href="index.php?act=findpost&pid=1730423"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Just because someone uses it doesn't mean it's good<!--QuoteEnd--></div><!--QuoteEEnd--> its terrible in fact, what were they thinking doing a netcode without prediction? i hate it when they target just langaming and lpb´s ... ut3 isnt really fun online
fanaticThis post has been edited.Join Date: 2003-07-23Member: 18377Members, Constellation, Squad Five Blue
<!--quoteo(post=1729670:date=Sep 29 2009, 11:51 PM:name=Max)--><div class='quotetop'>QUOTE (Max @ Sep 29 2009, 11:51 PM) <a href="index.php?act=findpost&pid=1729670"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'm not sure why people think Quake 3 offers accuracy, in my mind it's really the opposite. If you shoot where a player is on your screen and you have lag, you will miss them (you have to lead your target based on your ping). In Half-Life, if you shoot where the player is on your screen and you have lag you will hit them, no leading necessary. The drawback is that sometimes, especially if you're really lagged, the player your hitting might feel like the shot was unfair ("Hey! I was around the corner!"). I'm not sure how the networking works in Source and haven't really played any Source games multi-player, so it might be different there.
Our netcode is written from scratch. I originally integrated RakNet and OpenTNL (the Tribes networking library), but I had problems with them and didn't like the idea of using those black boxes for something as critical as the networking. My implementation borrows ideas from Quake 3 and Half Life, though for the things you guys are discussing it's more like HL than Q3A.<!--QuoteEnd--></div><!--QuoteEEnd--> I agree with this approach wholeheartedly. Hopefully it will be possible to alter the system if it performs poorly in alpha/beta testing.
I found this article about the Half-Life netcode to be very informative: <a href="http://www.ninelegends.com/files/Assorted/hl_netcode_explained.txt" target="_blank">http://www.ninelegends.com/files/Assorted/...e_explained.txt</a>
<!--quoteo(post=1730364:date=Oct 3 2009, 01:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 01:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->'Cornering' is a HUGE issue if you have to/want to play on servers across the ocean. It simply makes me lose my mind in Team Fortress 2. And if there are to be any global tournaments in NS2, it will be an issue when Euro meets US.<!--QuoteEnd--></div><!--QuoteEEnd--> No prediction netcode would make "servers across the ocean" unplayable. Read through Max's post again and you'll understand why (you have to lead your targets).
From my experience, most of the hit registration errors in NS could be solved with just a better server and seemed to not be as much of a network problem. In l4d there's pretty big hit registration problems when it comes to fast moving hunters. I don't know how much changed between hl1 and source netcode, but a large amount of the l4d errors probably have to do with the massive amount of bandwidth that the game uses and the fact that valve limits the server tick/update rate at 33. It's good to hear that ns2 netcode is going to be more like hl1's.
thats one of the reasons why cs:s is SO easy and totally uninteresting for competition.
hl1 is much more fussy and because of this you can get a advantage with skill, over other players!
ofc in css u got bigger moddels and less recoil, but if u try the dgl in 1.6 and css u will notice what i mean :D in css it hits every shot and in 1.6, well if you dont got movement and aim u will hit nuts ^^
i mean its very important to have a netcode, wich compensates as less as possible!
and the server thing for hl1: use a good gameserver with 1000 stable fps and play a 6on6 ns1 match on it. this will shrink your bad feeling about hit errors to a minimum ;) - in my opinion, if you run the client at 100fps at a crt monitor with 100-200hz and the server with lowping and 1000 stable fps, its the best and most fair engine you can get on the actuall market!
so don use compensation and extrapolation and interpolation. maybe then all get the same feeling but it skrews the possibility of highskill gaming. (like css the game is ok, but the engine sux)
<!--quoteo(post=1729670:date=Sep 30 2009, 12:51 AM:name=Max)--><div class='quotetop'>QUOTE (Max @ Sep 30 2009, 12:51 AM) <a href="index.php?act=findpost&pid=1729670"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'm not sure why people think Quake 3 offers accuracy, in my mind it's really the opposite. If you shoot where a player is on your screen and you have lag, you will miss them (you have to lead your target based on your ping). In Half-Life, if you shoot where the player is on your screen and you have lag you will hit them, no leading necessary. The drawback is that sometimes, especially if you're really lagged, the player your hitting might feel like the shot was unfair ("Hey! I was around the corner!"). I'm not sure how the networking works in Source and haven't really played any Source games multi-player, so it might be different there.
Our netcode is written from scratch. I originally integrated RakNet and OpenTNL (the Tribes networking library), but I had problems with them and didn't like the idea of using those black boxes for something as critical as the networking. My implementation borrows ideas from Quake 3 and Half Life, though for the things you guys are discussing it's more like HL than Q3A.<!--QuoteEnd--></div><!--QuoteEEnd--> Well that's a relief, the one writing the netcode got it all right. I hope we will hear more about the netcode, it's an interesting subject and I want to know <i>everything</i>. ;)
<!--quoteo(post=1730364:date=Oct 3 2009, 02:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 02:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->'Cornering' is a HUGE issue if you have to/want to play on servers across the ocean. It simply makes me lose my mind in Team Fortress 2. And if there are to be any global tournaments in NS2, it will be an issue when Euro meets US.<!--QuoteEnd--></div><!--QuoteEEnd--> It's the price you have to pay for that type of lag compensation. It's not so bad when you play with a low ping, most of the time it should hardly even be noticeable, but with a higher ping it gets worse. I would still argue that it's better than the alternative method which is having to shoot everywhere but at the target on your screen and as the ping increases it gets harder and harder to guess where you are supposed to shoot since the target have more time to move before you see the movements. For a live demonstration anyone can join a UT3 server with less than ideal ping (which is everything above 0 in that game...) and observe the terribleness. The pro is that you can never be "cornered" but is it worth it?
<!--quoteo(post=1730364:date=Oct 3 2009, 02:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 02:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->And the reason why I'm favouring US servers instead of Euro ones is because no one in Europe use their microphones, at least in TF2. Or if they do, they speak only in their own perverse languages (I'm looking at you, Russians and French), even on UK servers.<!--QuoteEnd--></div><!--QuoteEEnd--> Ugh, yes, all too true.
<!--quoteo(post=1730364:date=Oct 3 2009, 02:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 02:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Even though my post is starting to feel like it's going all over the place, I'll say one more thing: The only way I will justify a netcode that uses heavy prediction, such as TF2's, if my shot _always_ registers on the server if I have already shot on my screen, UNLIKE in any Source game. For example, in TF2 it goes like this: Sniper A has a ping of 50 and Sniper B has a ping of 150. Sniper B shoots A fatally in the head, A shoots B fatally in the head 50 ms after. A lives, B dies. I think B's shot _should_ count for a kill, even if it seems like in A's screen that he was killed after B was already dead.<!--QuoteEnd--></div><!--QuoteEEnd--> I can't swear on it but with the HL/Source type of lag compensation (at least in TF2 but it should be pretty much the same in all Valve games - I think) that would score a kill for sniper B since he fired first. The server will "rewind" all actions it received from clients and take ping time into account when doing this and then play all client actions the together; merging them and that is the final word on what really happened. A byproduct of this is the illusion that you can get killed behind a corner - sure, it looks like you made it, but you won't know for sure before your client get the final word from the server.
<!--quoteo(post=1730875:date=Oct 5 2009, 11:00 PM:name=derWalter)--><div class='quotetop'>QUOTE (derWalter @ Oct 5 2009, 11:00 PM) <a href="index.php?act=findpost&pid=1730875"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->and the server thing for hl1: use a good gameserver with 1000 stable fps and play a 6on6 ns1 match on it. this will shrink your bad feeling about hit errors to a minimum ;) - in my opinion, if you run the client at 100fps at a crt monitor with 100-200hz and the server with lowping and 1000 stable fps, its the best and most fair engine you can get on the actuall market!<!--QuoteEnd--></div><!--QuoteEEnd--> I haven't been that comfortable with the Euro comp servers, but it might have something to do with the servers and the Finnish routing to Mideurope. They are playable, but I wouldn't call the reg errors anything close to 'minimal'. I've also got a lot of problem with flashing PGs and such.
Is there any indication whether the Netcode is written in LUA, or baked into the engine? It would be a real shame if modders couldn't tweak it (for Donnybrook support, P2P etc).
Edit: This is what I would like to implement - <a href="http://neftaly.livejournal.com/24445.html" target="_blank">http://neftaly.livejournal.com/24445.html</a>
locallyunsceneFeeder of TrollsJoin Date: 2002-12-25Member: 11528Members, Constellation
<!--quoteo(post=1732835:date=Oct 19 2009, 04:32 PM:name=neftaly)--><div class='quotetop'>QUOTE (neftaly @ Oct 19 2009, 04:32 PM) <a href="index.php?act=findpost&pid=1732835"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Is there any indication whether the Netcode is written in LUA, or baked into the engine? It would be a real shame if modders couldn't tweak it (for Donnybrook support, P2P etc).<!--QuoteEnd--></div><!--QuoteEEnd--> I doubt it will be written in LUA. I don't know what hooks, if any, will be available in LUA either. It seems like a lot to ask that they allow for a client server architecture <i>and</i> P2P architecture modding. Can you think of any games that do? I be interested in hearing of them.
Max's netcode description sounded to me like when you ask the waiter at a fancy restaurant about the special, and he uses words like fragrant, caviar-topped, infused, and drizzled with awesomesauce, garnished with skulk parts.
<!--QuoteBegin-locallyunscene+--><div class='quotetop'>QUOTE (locallyunscene)</div><div class='quotemain'><!--QuoteEBegin-->I doubt it will be written in LUA. I don't know what hooks, if any, will be available in LUA either. It seems like a lot to ask that they allow for a client server architecture and P2P architecture modding. Can you think of any games that do? I be interested in hearing of them.<!--QuoteEnd--></div><!--QuoteEEnd-->
Tribes, Unreal, Quake etc etc. I think it's a fair question, especially considering that they wish to license the engine (and, presumably, don't want to discourage creation of MMO's and the like). They don't have to bother with writing anything to do with P2P architecture - modders can code that in their own time.
remiremedy [blu.knight]Join Date: 2003-11-18Member: 23112Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester
edited October 2009
<!--quoteo(post=1732894:date=Oct 19 2009, 08:23 PM:name=neftaly)--><div class='quotetop'>QUOTE (neftaly @ Oct 19 2009, 08:23 PM) <a href="index.php?act=findpost&pid=1732894"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Tribes, Unreal, Quake etc etc. I think it's a fair question, especially considering that they wish to license the engine (and, presumably, don't want to discourage creation of MMO's and the like). They don't have to bother with writing anything to do with P2P architecture - modders can code that in their own time.<!--QuoteEnd--></div><!--QuoteEEnd--> netcode needs to be FAST.... I can't imagine LUA would fit the bill.
It's like proposing you write the graphic engine in LUA.
I'm just guessing it's LUA from the files "server" and "client" in <a href="http://www.unknownworlds.com/cache/thumbnails/pistolcode_800x824.jpg" target="_blank">http://www.unknownworlds.com/cache/thumbna...ode_800x824.jpg</a> (as well as hope, if it's in the 1% of compiled code for NS2 proper, then it won't be moddable). TBH Psyke I can't see any significant basis for your comparison between speed in a socket-dependent networking system (relatively simple) and a GPU/CPU-dependent graphics engine (requires a massive amount of processing), they're apples and oranges. Twisted works pretty well in Python, even though Py is supposed to be a lot slower than LUA.
remiremedy [blu.knight]Join Date: 2003-11-18Member: 23112Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester
<!--quoteo(post=1732899:date=Oct 19 2009, 09:55 PM:name=neftaly)--><div class='quotetop'>QUOTE (neftaly @ Oct 19 2009, 09:55 PM) <a href="index.php?act=findpost&pid=1732899"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'm just guessing it's LUA from the files "server" and "client" in <a href="http://www.unknownworlds.com/cache/thumbnails/pistolcode_800x824.jpg" target="_blank">http://www.unknownworlds.com/cache/thumbna...ode_800x824.jpg</a> (as well as hope, if it's in the 1% of compiled code for NS2 proper, then it won't be moddable). TBH Psyke I can't see any significant basis for your comparison between speed in a socket-dependent networking system (relatively simple) and a GPU/CPU-dependent graphics engine (requires a massive amount of processing), they're apples and oranges. Twisted works pretty well in Python, even though Py is supposed to be a lot slower than LUA.<!--QuoteEnd--></div><!--QuoteEEnd--> Yeah, I don't know enough about it to really comment. You could be right.
I just know that both graphics and networking need to be really really fast. A lot also does have to go on in networking (I'm writing a framework in one of my classes for it now), and it is extremely low-level stuff. I could believe that the prediction could be done in LUA, but the actual socket connections, threading, buffering, reliability (for chat messages, and important game events), encryption and everything else that goes in to networking I wouldn't expect to be at the LUA level.
I imagine the networking will be rooted in the <b>core game engine</b> and the <b>FPS engine</b>. However, the use of network variables and client side prediction will need to be abstracted in LUA to allow custom player control, movement, weapons, etc...
I will be disappointed if network variables are completely transparent at the LUA level.
<!--quoteo(post=1729670:date=Sep 30 2009, 01:51 AM:name=Max)--><div class='quotetop'>QUOTE (Max @ Sep 30 2009, 01:51 AM) <a href="index.php?act=findpost&pid=1729670"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->In Half-Life, if you shoot where the player is on your screen and you have lag you will hit them, no leading necessary. The drawback is that sometimes, especially if you're really lagged, the player your hitting might feel like the shot was unfair ("Hey! I was around the corner!").<!--QuoteEnd--></div><!--QuoteEEnd--> Add that to FAQ if one is to be created. I never knew what lag prediction/compensation actually means up until now.
Comments
There are a lot of games that have done something similar, but I think Quake is the best example of a really tight feedback loop. In TF2, the Sniper's Huntsmann makes a "shtickk" noise when it hits a guy (even if the guy is across the map) which I think is one of the reasons I like using it so much. In Mario Kart 64, the same thing happened when another person ran over your banana or got hit by any other item of yours. You would hear them go "aieee" or whatever.
Both Mario Kart and TF2 are on a different scale though, as the sound in Quake goes off like 40 times a second. With MK and TF2 it is intended more to be a notification of what is happening offscreen (hence the lower frequency), while in Quake it is intended to create the feedback loop.<!--QuoteEnd--></div><!--QuoteEEnd-->
I really like this idea. Make a separate thread in I&S and I will give you my full support.
I think Max has linked us to this before in the past...
Feel free to do the honors.
Done and done (http://www.unknownworlds.com/ns2/forums/index.php?showtopic=107555);
counter example: UT3.
OK, to be fair their lag prediction simply sucks.... but still.
Most of all things I'd like to have the feeling as a skulk that every frag you get is due to decent dodging or game sense, not because you sponged those 2 SG shots. Nothing kills the skulking enjoyment like bad reg does.
And the reason why I'm favouring US servers instead of Euro ones is because no one in Europe use their microphones, at least in TF2. Or if they do, they speak only in their own perverse languages (I'm looking at you, Russians and French), even on UK servers.
Dystopia has these 'hitbeeps' that you have in Q3 as well, but sometimes even if you hit you don't hear the beep, which is annoying.
Even though my post is starting to feel like it's going all over the place, I'll say one more thing:
The only way I will justify a netcode that uses heavy prediction, such as TF2's, if my shot _always_ registers on the server if I have already shot on my screen, UNLIKE in any Source game. For example, in TF2 it goes like this: Sniper A has a ping of 50 and Sniper B has a ping of 150. Sniper B shoots A fatally in the head, A shoots B fatally in the head 50 ms after. A lives, B dies.
I think B's shot _should_ count for a kill, even if it seems like in A's screen that he was killed after B was already dead.
<img src="http://cache.kotaku.com/assets/resources/2007/07/UT3_logo2.jpg" border="0" class="linked-image" />
erh...yeah.. ut3 must be from 1997 then.. damn time traveling games
its terrible in fact, what were they thinking doing a netcode without prediction? i hate it when they target just langaming and lpb´s ... ut3 isnt really fun online
Our netcode is written from scratch. I originally integrated RakNet and OpenTNL (the Tribes networking library), but I had problems with them and didn't like the idea of using those black boxes for something as critical as the networking. My implementation borrows ideas from Quake 3 and Half Life, though for the things you guys are discussing it's more like HL than Q3A.<!--QuoteEnd--></div><!--QuoteEEnd-->
I agree with this approach wholeheartedly. Hopefully it will be possible to alter the system if it performs poorly in alpha/beta testing.
I found this article about the Half-Life netcode to be very informative: <a href="http://www.ninelegends.com/files/Assorted/hl_netcode_explained.txt" target="_blank">http://www.ninelegends.com/files/Assorted/...e_explained.txt</a>
<!--quoteo(post=1730364:date=Oct 3 2009, 01:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 01:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->'Cornering' is a HUGE issue if you have to/want to play on servers across the ocean. It simply makes me lose my mind in Team Fortress 2. And if there are to be any global tournaments in NS2, it will be an issue when Euro meets US.<!--QuoteEnd--></div><!--QuoteEEnd-->
No prediction netcode would make "servers across the ocean" unplayable. Read through Max's post again and you'll understand why (you have to lead your targets).
they changed MUCH!
thats one of the reasons why cs:s is SO easy and totally uninteresting for competition.
hl1 is much more fussy and because of this you can get a advantage with skill,
over other players!
ofc in css u got bigger moddels and less recoil, but if u try the dgl in 1.6 and css
u will notice what i mean :D in css it hits every shot and in 1.6, well if you dont
got movement and aim u will hit nuts ^^
i mean its very important to have a netcode, wich compensates as less as possible!
and the server thing for hl1: use a good gameserver with 1000 stable fps and
play a 6on6 ns1 match on it. this will shrink your bad feeling about hit errors
to a minimum ;) - in my opinion, if you run the client at 100fps at a crt monitor
with 100-200hz and the server with lowping and 1000 stable fps, its the best
and most fair engine you can get on the actuall market!
so don use compensation and extrapolation and interpolation.
maybe then all get the same feeling but it skrews the possibility
of highskill gaming. (like css the game is ok, but the engine sux)
easy to learn but unable to master = perfect :D
Our netcode is written from scratch. I originally integrated RakNet and OpenTNL (the Tribes networking library), but I had problems with them and didn't like the idea of using those black boxes for something as critical as the networking. My implementation borrows ideas from Quake 3 and Half Life, though for the things you guys are discussing it's more like HL than Q3A.<!--QuoteEnd--></div><!--QuoteEEnd-->
Well that's a relief, the one writing the netcode got it all right. I hope we will hear more about the netcode, it's an interesting subject and I want to know <i>everything</i>. ;)
<!--quoteo(post=1730364:date=Oct 3 2009, 02:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 02:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->'Cornering' is a HUGE issue if you have to/want to play on servers across the ocean. It simply makes me lose my mind in Team Fortress 2. And if there are to be any global tournaments in NS2, it will be an issue when Euro meets US.<!--QuoteEnd--></div><!--QuoteEEnd-->
It's the price you have to pay for that type of lag compensation. It's not so bad when you play with a low ping, most of the time it should hardly even be noticeable, but with a higher ping it gets worse. I would still argue that it's better than the alternative method which is having to shoot everywhere but at the target on your screen and as the ping increases it gets harder and harder to guess where you are supposed to shoot since the target have more time to move before you see the movements. For a live demonstration anyone can join a UT3 server with less than ideal ping (which is everything above 0 in that game...) and observe the terribleness. The pro is that you can never be "cornered" but is it worth it?
<!--quoteo(post=1730364:date=Oct 3 2009, 02:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 02:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->And the reason why I'm favouring US servers instead of Euro ones is because no one in Europe use their microphones, at least in TF2. Or if they do, they speak only in their own perverse languages (I'm looking at you, Russians and French), even on UK servers.<!--QuoteEnd--></div><!--QuoteEEnd-->
Ugh, yes, all too true.
<!--quoteo(post=1730364:date=Oct 3 2009, 02:41 AM:name=Skie)--><div class='quotetop'>QUOTE (Skie @ Oct 3 2009, 02:41 AM) <a href="index.php?act=findpost&pid=1730364"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Even though my post is starting to feel like it's going all over the place, I'll say one more thing:
The only way I will justify a netcode that uses heavy prediction, such as TF2's, if my shot _always_ registers on the server if I have already shot on my screen, UNLIKE in any Source game. For example, in TF2 it goes like this: Sniper A has a ping of 50 and Sniper B has a ping of 150. Sniper B shoots A fatally in the head, A shoots B fatally in the head 50 ms after. A lives, B dies.
I think B's shot _should_ count for a kill, even if it seems like in A's screen that he was killed after B was already dead.<!--QuoteEnd--></div><!--QuoteEEnd-->
I can't swear on it but with the HL/Source type of lag compensation (at least in TF2 but it should be pretty much the same in all Valve games - I think) that would score a kill for sniper B since he fired first. The server will "rewind" all actions it received from clients and take ping time into account when doing this and then play all client actions the together; merging them and that is the final word on what really happened. A byproduct of this is the illusion that you can get killed behind a corner - sure, it looks like you made it, but you won't know for sure before your client get the final word from the server.
erh...yeah.. ut3 must be from 1997 then.. damn time traveling games<!--QuoteEnd--></div><!--QuoteEEnd-->
I thought UT3 had some prediction, but it just was horrid. Hm. If it has none, that could explain EVERYTHING.
play a 6on6 ns1 match on it. this will shrink your bad feeling about hit errors
to a minimum ;) - in my opinion, if you run the client at 100fps at a crt monitor
with 100-200hz and the server with lowping and 1000 stable fps, its the best
and most fair engine you can get on the actuall market!<!--QuoteEnd--></div><!--QuoteEEnd-->
I haven't been that comfortable with the Euro comp servers, but it might have something to do with the servers and the Finnish routing to Mideurope. They are playable, but I wouldn't call the reg errors anything close to 'minimal'. I've also got a lot of problem with flashing PGs and such.
It would be a real shame if modders couldn't tweak it (for Donnybrook support, P2P etc).
Edit: This is what I would like to implement - <a href="http://neftaly.livejournal.com/24445.html" target="_blank">http://neftaly.livejournal.com/24445.html</a>
It would be a real shame if modders couldn't tweak it (for Donnybrook support, P2P etc).<!--QuoteEnd--></div><!--QuoteEEnd-->
I doubt it will be written in LUA. I don't know what hooks, if any, will be available in LUA either. It seems like a lot to ask that they allow for a client server architecture <i>and</i> P2P architecture modding. Can you think of any games that do? I be interested in hearing of them.
Tribes, Unreal, Quake etc etc. I think it's a fair question, especially considering that they wish to license the engine (and, presumably, don't want to discourage creation of MMO's and the like). They don't have to bother with writing anything to do with P2P architecture - modders can code that in their own time.
netcode needs to be FAST.... I can't imagine LUA would fit the bill.
It's like proposing you write the graphic engine in LUA.
TBH Psyke I can't see any significant basis for your comparison between speed in a socket-dependent networking system (relatively simple) and a GPU/CPU-dependent graphics engine (requires a massive amount of processing), they're apples and oranges. Twisted works pretty well in Python, even though Py is supposed to be a lot slower than LUA.
TBH Psyke I can't see any significant basis for your comparison between speed in a socket-dependent networking system (relatively simple) and a GPU/CPU-dependent graphics engine (requires a massive amount of processing), they're apples and oranges. Twisted works pretty well in Python, even though Py is supposed to be a lot slower than LUA.<!--QuoteEnd--></div><!--QuoteEEnd-->
Yeah, I don't know enough about it to really comment. You could be right.
I just know that both graphics and networking need to be really really fast. A lot also does have to go on in networking (I'm writing a framework in one of my classes for it now), and it is extremely low-level stuff. I could believe that the prediction could be done in LUA, but the actual socket connections, threading, buffering, reliability (for chat messages, and important game events), encryption and everything else that goes in to networking I wouldn't expect to be at the LUA level.
2) <b>FPS engine</b> C/C++
3) <b>game mod</b> LUA
I imagine the networking will be rooted in the <b>core game engine</b> and the <b>FPS engine</b>. However, the use of network variables and client side prediction will need to be abstracted in LUA to allow custom player control, movement, weapons, etc...
I will be disappointed if network variables are completely transparent at the LUA level.
Add that to FAQ if one is to be created. I never knew what lag prediction/compensation actually means up until now.