PDA

View Full Version : Connection coding question



XyZspineZyX
09-26-2003, 07:03 PM
I have a question concerning the way this game recognizes aircraft in multi-player settings.

First, I have broadband, and when I saved the particular track below I was connected to the host at approximately 60-80 ping (Not too bad).

The question I have is, does having a good connection penalize you in this game? Simply put, there appears to be an advantage for players with poorer connection. Their relative positioning in the game appears to be counted above the actual position of a person that is connected at a better speed (Lag) to the host.

I find that very unusual, since every other game out there is based off of the interpretation "Best ping wins". But here in IL2 it seems the opposite.



In the track (VEF Mission) we got bounced in emils by Lagg's. I made a very nice deflection shot and my cannon rounds explode (90 degree angle) into the Lagg's canopy. Nothing happens at all to the pilot, and furthermore, the plane doesnt even act like it was hit at all. I deduce that is because of lag since I was connected faster than the pilot I shot - all the Lagg pilots were at best 200 ping, at worst 450-500. (You will notice that the Lagg was on the verge of stall the whole time as well - but that's another issue) ADVANTAGE: Slow connection.

Seconds later, I make a small "E" error and barrelroll to check my 6, allowing another Lagg to catch up to me. On my screen, I stay just inside of his rounds and I start to spiral up (To bleed his E). But since his connection speed is worse than mine, he obviously sees me in front of his crosshairs and shoots. Bye bye Emil. ADVANTAGE AGAIN: Poorer connection.



The frustrating thing is that because I am in a high wing-loaded aircraft, if I start to yank and crank, I will lose "E" so fast and be dead even faster. The sad thing is, using proper techniques, (Drag the guy up to bleed his "E" while using your superior climb rate) Im still dead. Perhaps this is because of bad netcoding, I dont know. But what I do know is when someone of slower connection is in my crosshairs, it doesnt always matter, (Not good for the B&Z'er who needs to hit with deflection and zoom away) but if I get in the crosshairs of a pilot with poorer connection it ALWAYS matters. What gives? Why is this so different from all the other games I have played online?

Again, I was connected at 60-80 ping, the other pilots were 300-400 ping. One last question... Should I drop my broadband to get a dialup connection in order to compete? LOL that just sounds as silly as it looks (Looking at it after I typed)

Along these lines, I did a test with a friend and discovered that there is indeed a "Lag cheat" still available because of this backwards coding. Get with a friend and get on his "Six" pull your network cable out for less than 2 seconds and yank back on your stick. Push the cable back in and poof, you are on his "Six". All this while he sees you sitting there nice and pretty like a fat duck to be shot. Even if he shoots you (Because the coding recognizes you have poor connection and should get some sort of advantage) his hits wont count. You simply warp in front of him and are able to shoot immediately.
That cheat would go away if the coding was in favor of the better connection instead of the poorer - as it is in every other online game. I am NOT SAYING that either of these Lagg pilots used that cheat AT ALL. To repeat, I AM NOT SAYING this cheat was used. I am saying that it still exists, however. I certainly hope people have enough honor NOT to use it.

Anyways, here is my track.

http://webpages.charter.net/cuda70/quick0004.zip

XyZspineZyX
09-26-2003, 07:03 PM
I have a question concerning the way this game recognizes aircraft in multi-player settings.

First, I have broadband, and when I saved the particular track below I was connected to the host at approximately 60-80 ping (Not too bad).

The question I have is, does having a good connection penalize you in this game? Simply put, there appears to be an advantage for players with poorer connection. Their relative positioning in the game appears to be counted above the actual position of a person that is connected at a better speed (Lag) to the host.

I find that very unusual, since every other game out there is based off of the interpretation "Best ping wins". But here in IL2 it seems the opposite.



In the track (VEF Mission) we got bounced in emils by Lagg's. I made a very nice deflection shot and my cannon rounds explode (90 degree angle) into the Lagg's canopy. Nothing happens at all to the pilot, and furthermore, the plane doesnt even act like it was hit at all. I deduce that is because of lag since I was connected faster than the pilot I shot - all the Lagg pilots were at best 200 ping, at worst 450-500. (You will notice that the Lagg was on the verge of stall the whole time as well - but that's another issue) ADVANTAGE: Slow connection.

Seconds later, I make a small "E" error and barrelroll to check my 6, allowing another Lagg to catch up to me. On my screen, I stay just inside of his rounds and I start to spiral up (To bleed his E). But since his connection speed is worse than mine, he obviously sees me in front of his crosshairs and shoots. Bye bye Emil. ADVANTAGE AGAIN: Poorer connection.



The frustrating thing is that because I am in a high wing-loaded aircraft, if I start to yank and crank, I will lose "E" so fast and be dead even faster. The sad thing is, using proper techniques, (Drag the guy up to bleed his "E" while using your superior climb rate) Im still dead. Perhaps this is because of bad netcoding, I dont know. But what I do know is when someone of slower connection is in my crosshairs, it doesnt always matter, (Not good for the B&Z'er who needs to hit with deflection and zoom away) but if I get in the crosshairs of a pilot with poorer connection it ALWAYS matters. What gives? Why is this so different from all the other games I have played online?

Again, I was connected at 60-80 ping, the other pilots were 300-400 ping. One last question... Should I drop my broadband to get a dialup connection in order to compete? LOL that just sounds as silly as it looks (Looking at it after I typed)

Along these lines, I did a test with a friend and discovered that there is indeed a "Lag cheat" still available because of this backwards coding. Get with a friend and get on his "Six" pull your network cable out for less than 2 seconds and yank back on your stick. Push the cable back in and poof, you are on his "Six". All this while he sees you sitting there nice and pretty like a fat duck to be shot. Even if he shoots you (Because the coding recognizes you have poor connection and should get some sort of advantage) his hits wont count. You simply warp in front of him and are able to shoot immediately.
That cheat would go away if the coding was in favor of the better connection instead of the poorer - as it is in every other online game. I am NOT SAYING that either of these Lagg pilots used that cheat AT ALL. To repeat, I AM NOT SAYING this cheat was used. I am saying that it still exists, however. I certainly hope people have enough honor NOT to use it.

Anyways, here is my track.

http://webpages.charter.net/cuda70/quick0004.zip

XyZspineZyX
09-26-2003, 07:44 PM
No ideas? No suggestions?

XyZspineZyX
09-26-2003, 08:10 PM
Woaa this sounds bad - I didn't watch your track but I've tried the same things online. Just never related it to better vs. poorer connection.

C!

<A HREF="http://giap.webhop.info" TARGET=_blank>
http://www.baseclass.modulweb.dk/giap/var/storage/original/image/69giap_badge_roshko.jpg
</A>

XyZspineZyX
09-26-2003, 08:20 PM
Hi Felher,

There are several ways to handle this used in games these days.

Either:

i) Shooters client is believed.

ii) Servers last received data is believed.

iii) Targets client is believed.

An example of i) would be the original Descents peer/peer network model. Shooting a ship that appeared on your screen would damage it, more or less always, even if the ship had moved on since then. This is not generally regarded as a good way to do things anymore, since it allows cheating very easily.

I believe FB uses option ii). Neither the shooter or the target are believed explicity in this model - their last received data is checked when a possible hit is to be calculated. Sometimes, allowances are made for lag and 'good enough' can be good enough. Eg, a hit that shows as a headshot on the shooters end, but the last received data from the targets machine on the server shows a legshot. Which does the server believe? Either really, depending on how the app is set up. One way's good to prevent cheating, the other's good to give the illusion of fast network code.

iii) requires a check on the targets machine, which is horribly sensitive to lag. I'm sure some games have been silly enough to use this, but I can't think of any applications for it offhand, certainly not ones in a realtime environment.

Note that client side prediction coding is getting quite advanced these days. Turning off CSP in say, Quake3, is a bit of an eye opener as to just what it does for you. Without a full description from Oleg as to just what FBs model of this does, it's hard to know what to attribute to it.

Note that this isn't my area of expertise at all - I've never developed such an application - just my understanding from reading people talking about how to do it.



http://home.iprimus.com.au/djgwen/fb/worker_parasite.jpg

Need help with NewView? Read this thread. (http://forums.ubi.com/messages/message_view-topic.asp?name=us_il2sturmovik_gd&id=yzbcj)

XyZspineZyX
09-26-2003, 08:37 PM
Ahh, very good description Clint, thank you very much.

It's almost a miracle that people from different sides of the world can fly a game together!

I wonder how they optimize these codes. Packet size? something like that?

I hope Oleg isnt done with the coding however. It's far from perfect in it's current state, but perhaps the best we can hope for with today's technology.. /i/smilies/16x16_smiley-sad.gif

That actually just left me with a question in my head. Did 1C actually make this code? I know some game developers buy their coding separately. An example of this was Silent Hunter II/Destroyer Command games by Ubi/SSI. They bought their netcode from a third party, and it was in fact the source of their poor game performance in online play.

Does anyone know if 1C developed this code, or a third party?