PDA

View Full Version : Eventlog.lst - does it always record when I damage E/A online?



DKoor
02-05-2007, 07:22 AM
Or better question would be; does it always record when I damage anything? Or when I get damaged?

Because I have one online track where I've hit Spitfire with 2-3 cannon shells and battle lasted for around 20mins until he finally crashed into ground, while undertaking careless maneuver.
Now track doesn't say that I have damaged him AT ALL, but when he crashed message appears: xxx has been shot down by DKoor.
How can that be if the game haven't recorded when I damaged him?

Is this some kind of bug, error... or?

I am asking this because I have never seen that the game DOES not record when I damage something. It says:
<pre class="ip-ubbcode-code-pre">[3:11:30 PM] Xxxxx:Bf-109G-10 damaged by Yyyyy:SpitfireMkIXc at 24950.512 9368.326</pre>
Coincidentally, Spitfire flew like it haven't received ANY combat damage. But to be sure of that, Spit pilot must confirm that (only he knew how his ship was handling after I scored few hits on him).
But not in my case, so if anyone can give us little insight to why is that.

I have logging enabled in conf.ini.

WB_Outlaw
02-05-2007, 07:46 AM
I believe that when playing online your local machine calculates hits AND the server calculates hits. The local machine calculates hits so that it can display hit flashes and such in a timely manner, however, none of those hits really count until the server confirms them. This allows the server to compensate for lag and to check for cheating. So it's possible that your machine didn't detect any hits but the server did.

Now, if the above is true the next question is, does the local machine log local, server side, or both types of hits? I don't know the answer for sure but based on previous experience it looks like the answer is local only. I think that this is the reason there are so many "the guns are porked" threads going around. If my local machine calculates ,logs, and displays the results of 15 hits but the server only confirms 3, then it looks like the guns are porked when they are not.

Note that there has been some discussion of this before and Saqson disagrees with me. In fact his position is that IL-2 along with every other "modern" first person shooter uses 100% local hit and damage calculations with absolutely no server side confirmation/checking at all. I know for a fact that's not the case as almost all modern first person shooters do use server side hit confirmation of one type or another but I'm not sure about IL-2.

My belief is that Saqson is wrong with the evidence being the often times huge differences between the number of locally calculated hits required to destroy an aircraft offline vs online.

In your case, it's the opposite (ie 0 local hits destroyed an aircraft), but the cause is the same. It's the nature of the beast when it comes to playing online and the only real solution is issuing the death penalty to spammers as their traffic consumes over 50% of the available Internet bandwidth.

--Outlaw.

DKoor
02-05-2007, 09:00 AM
Originally posted by WB_Outlaw:
I believe that when playing online your local machine calculates hits AND the server calculates hits. I'll give you the track so you may see the problem closer.
track (http://s1.upload.sc/request/ea606cd1fd7052211339f1f6c19a4036)
Check your logfile and see if there's any record that I've damaged that Spitfire.
Maybe your machine will detect something that my didn't.

Here is the situation as I see it; I've scored hits but my machine did not calculated it. Perhaps server did.
But still "E/A: destroyed" message in my game can't be explained then.

Don't know this looks very, very complicated to me.

WB_Outlaw
02-05-2007, 10:09 AM
Originally posted by DKoor:
Here is the situation as I see it; I've scored hits but my machine did not calculated it. Perhaps server did.
But still "E/A: destroyed" message in my game can't be explained then.

Kill confirmations come from the server so if it determines that you scored a kill, then you score a kill regardless of what your local machine thought. Like I said, I believe the local machine really only calculates hits so that it can show hit flashes and generic debris. They may not be confirmed but if it waited for confirmation from the server then it would be too late to show them.

--Outlaw.

rnzoli
02-05-2007, 10:17 AM
Yes, hits and damage model to enemy A/C is calculated on the client side. I have just recently made a little test - shot up a plane in front of me while momentarily disconnecting the network cable. The following happened: immediately upon the hits, I saw flashes on the target plane, and then it started leaking fuel. The same target plane on the other (disconnected) machine was happily flying along, not knowing about anything until....

....reconnecting the network cable about 5 seconds later, when suddenly the target plane received all damages so far and showed up the Fuel Leak message on the HUD.

WB_Outlaw
02-05-2007, 11:19 AM
Originally posted by rnzoli:
Yes, hits and damage model to enemy A/C is calculated on the client side. I have just recently made a little test - shot up a plane in front of me while momentarily disconnecting the network cable. The following happened: immediately upon the hits, I saw flashes on the target plane, and then it started leaking fuel. The same target plane on the other (disconnected) machine was happily flying along, not knowing about anything until....

....reconnecting the network cable about 5 seconds later, when suddenly the target plane received all damages so far and showed up the Fuel Leak message on the HUD.

RZ, where is the server in the above scenario?

--Outlaw.

DKoor
02-05-2007, 04:53 PM
Originally posted by WB_Outlaw:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by rnzoli:
Yes, hits and damage model to enemy A/C is calculated on the client side. I have just recently made a little test - shot up a plane in front of me while momentarily disconnecting the network cable. The following happened: immediately upon the hits, I saw flashes on the target plane, and then it started leaking fuel. The same target plane on the other (disconnected) machine was happily flying along, not knowing about anything until....

....reconnecting the network cable about 5 seconds later, when suddenly the target plane received all damages so far and showed up the Fuel Leak message on the HUD.

RZ, where is the server in the above scenario?

--Outlaw. </div></BLOCKQUOTE>102nd_COOP_dec server in the HL.

FourShades
02-05-2007, 05:12 PM
In developing SEOW we have come across this problem. There are occasional discrepancies between what the game reports on screen (e.g. Enemy Aircraft Destroyed) and what is entered into the eventlog file. This is a 100% IL-2 bug that is unlikely to be fixed now.

Some mission parsers resolve this by taking ALL reports out of the eventlog and client log files(which are sometime contradictory). Long ago we made the decision in SEOW to stick with the eventlog as the sole authoritative record. This sometimes catches us out, but as long as everyone is aware of the issue there are few real problems. War is hell. http://forums.ubi.com/groupee_common/emoticons/icon_wink.gif

Cheers,
4Shades

WB_Outlaw
02-05-2007, 05:32 PM
Originally posted by DKoor:
102nd_COOP_dec server in the HL.

This doesn't really answer my question. My question is where in the network scheme was the server?

If the target was a client and the shooter was a client the test does not show that the client side calculates hits. All it shows is that the target does not calculate hits.


--Outlaw.

WB_Outlaw
02-05-2007, 08:51 PM
I was wrong and IL-2 relies completely on the client for hit detection and destruction with absolutely no server side confirmation/checking at all. I setup a coop mission with a moving jeep that I attacked from the tail gunner position of a client machine parked on the runway. While the jeep was passing behind the client aircraft I unplugged the network cable. The jeep stopped on the client and kept moving on the host. When the jeep was at least 30 yards away I began firing on it from the disconnected client. I emptied the magazines into it with lots of hit flashes but otherwise no effect. I then plugged the network cable back in and a few seconds everything caught up between the host and the client. There was no damage to the jeep.

I then repeated the test but plugged the network cable back in WHILE I was firing at the jeep. Once again the jeep was behind the client aircraft but at least 60 yards away on the host. As soon as the host picked up the signal the jeep was destroyed even though it was a long way away on the host. I even had the jeep setup to move from the rear hemisphere to well in front of the aircraft and it was still destroyed.

It seems like someone with a packet sniffer and some time could very easily write a network hook to simply send hit and destroyed commands to the server and it will without question destroy the target. Of course, it wouldn't be easy to decode the traffic but by repeating the same mission over and over I bet it could be done in a weekend.

So, bottom line, forget what I posted earlier. I can't explain why when playing online it almost always take 3-4 times more hits to get the same damage than it does offline.


--Outlaw.

rnzoli
02-06-2007, 01:55 AM
Originally posted by WB_Outlaw:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by DKoor:
102nd_COOP_dec server in the HL.

This doesn't really answer my question. My question is where in the network scheme was the server?

If the target was a client and the shooter was a client the test does not show that the client side calculates hits. All it shows is that the target does not calculate hits.


--Outlaw. </div></BLOCKQUOTE>
This was a special test with 2 machines on my desk. The target plane was flown on the co-op host (server), and I shot this plane up from another machine, which joined the co-op (client).

That's why I think the damages are definitely calculated on the client side, immediately, and later transferred to the server (for further distribution to the other clients, other players).

rnzoli
02-06-2007, 02:06 AM
It seems like someone with a packet sniffer and some time could very easily write a network hook to simply send hit and destroyed commands to the server and it will without question destroy the target. Of course, it wouldn't be easy to decode the traffic but by repeating the same mission over and over I bet it could be done in a weekend.

Does that sound dangerous, huh? http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif

The good thing is that I looked at the UDP packets going back and forth on port 21000, and they are heavily encrypted by a random key. Another safety measure is that all messages between client and server are numbered and acknowledged. If something is wrong with the sequence number, i.e., a message is 'out of place', it will be ignored.

cmirko
02-06-2007, 02:14 AM
Originally posted by DKoor:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by WB_Outlaw:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by rnzoli:
Yes, hits and damage model to enemy A/C is calculated on the client side. I have just recently made a little test - shot up a plane in front of me while momentarily disconnecting the network cable. The following happened: immediately upon the hits, I saw flashes on the target plane, and then it started leaking fuel. The same target plane on the other (disconnected) machine was happily flying along, not knowing about anything until....

....reconnecting the network cable about 5 seconds later, when suddenly the target plane received all damages so far and showed up the Fuel Leak message on the HUD.

RZ, where is the server in the above scenario?

--Outlaw. </div></BLOCKQUOTE>102nd_COOP_dec server in the HL. </div></BLOCKQUOTE>

no it couldn't be our online server, taking ip adress would take longer and he would be kicked anyway because of settings, probably local LAN test

http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif and also, the server is called 102nd_COOP_ded http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif but HyperLobby dosesn't want to show last line http://forums.ubi.com/groupee_common/emoticons/icon_wink.gif

cmirko
02-06-2007, 02:19 AM
Originally posted by rnzoli:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">It seems like someone with a packet sniffer and some time could very easily write a network hook to simply send hit and destroyed commands to the server and it will without question destroy the target. Of course, it wouldn't be easy to decode the traffic but by repeating the same mission over and over I bet it could be done in a weekend.

Does that sound dangerous, huh? http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif

The good thing is that I looked at the UDP packets going back and forth on port 21000, and they are heavily encrypted by a random key. Another safety measure is that all messages between client and server are numbered and acknowledged. If something is wrong with the sequence number, i.e., a message is 'out of place', it will be ignored. </div></BLOCKQUOTE>


http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif just my 2 eurocents,

@WB_Outlaw, m8 pls don't give baddies ideas for a technical solution of their problems http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif - we can continue discussion in pm session http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif but in the open, furthermore, i think that moderator should delete the top comment because it's a viable attack idea on the game network protocol.....

DKoor
02-06-2007, 03:40 AM
Originally posted by cmirko:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by DKoor:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by WB_Outlaw:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by rnzoli:
Yes, hits and damage model to enemy A/C is calculated on the client side. I have just recently made a little test - shot up a plane in front of me while momentarily disconnecting the network cable. The following happened: immediately upon the hits, I saw flashes on the target plane, and then it started leaking fuel. The same target plane on the other (disconnected) machine was happily flying along, not knowing about anything until....

....reconnecting the network cable about 5 seconds later, when suddenly the target plane received all damages so far and showed up the Fuel Leak message on the HUD.

RZ, where is the server in the above scenario?

--Outlaw. </div></BLOCKQUOTE>102nd_COOP_dec server in the HL. </div></BLOCKQUOTE>

no it couldn't be our online server, taking ip adress would take longer and he would be kicked anyway because of settings, probably local LAN test

http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif and also, the server is called 102nd_COOP_ded http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif but HyperLobby dosesn't want to show last line http://forums.ubi.com/groupee_common/emoticons/icon_wink.gif </div></BLOCKQUOTE>Huh I didn't fully read what rnzoli wrote, I thought that Outlaw asked about server in his sig.
Yes if you disconnect and then reconnect you will be kicked from most servers including 102nd.

WB_Outlaw
02-06-2007, 05:39 AM
Originally posted by rnzoli:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by WB_Outlaw:
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by DKoor:
102nd_COOP_dec server in the HL.

This doesn't really answer my question. My question is where in the network scheme was the server?

If the target was a client and the shooter was a client the test does not show that the client side calculates hits. All it shows is that the target does not calculate hits.


--Outlaw. </div></BLOCKQUOTE>
This was a special test with 2 machines on my desk. The target plane was flown on the co-op host (server), and I shot this plane up from another machine, which joined the co-op (client).

That's why I think the damages are definitely calculated on the client side, immediately, and later transferred to the server (for further distribution to the other clients, other players). </div></BLOCKQUOTE>

That's the same way I did my test RZ. The hits are calculated client side but transmitted immediately and are NOT retransmitted if lost. You can do as much damage as you want while disconnected and it will have no effect on the target. If you were firing WHEN you disconnected you will continue to fire and accumulate damage on the host for a short period of time, however, if you do not reconnect, most of the damage will never take effect (at least not for the 45 seconds or so I waited). On the disconnected client you will see tons of hit flashes but nothing will fall off, no fire, no pilot/crew kills, etc. When you reconnect the damage will "catch up".

If you are firing and hitting the target when you reconnect, your hits will register BEFORE the server updates the target position and the hits will count against the target no matter where it is supposed to be.

If you start and finish firing after disconnecting and before reconnecting then there will be no damage done to the target.

What makes you think that the traffic is encrypted RZ? My guess would be that en/decrypting up to 128 data streams would be very CPU intensive.

--Outlaw.

WB_Outlaw
02-06-2007, 05:41 AM
Originally posted by cmirko:
@WB_Outlaw, m8 pls don't give baddies ideas for a technical solution of their problems http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif - we can continue discussion in pm session http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif but in the open, furthermore, i think that moderator should delete the top comment because it's a viable attack idea on the game network protocol.....

Don't worry 'bout it CM, it's one of the oldest tricks in the book and everyone that can do it already knows about it.

--Outlaw.

DKoor
02-06-2007, 06:03 AM
After all, it's all up to the server. Tighten the connection settings and there is no room for such bad things. No lag, no warping etc. http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif

WB_Outlaw
02-06-2007, 06:10 AM
Originally posted by DKoor:
After all, it's all up to the server. Tighten the connection settings and there is no room for such bad things. No lag, no warping etc. http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif

The disconnections discussed above were just to determine where the hits are calculated. Rewriting packets via a network hook or proxy (actually the easiest way) is something different and can't be stopped by simple lag detection.

--Outlaw.

rnzoli
02-06-2007, 06:29 AM
Originally posted by WB_Outlaw:
What makes you think that the traffic is encrypted RZ? My guess would be that en/decrypting up to 128 data streams would be very CPU intensive.
Not sure how tough encryption is used, but here are couple of considerations:
- encryption modules are available in IL-2, the whole filesystem is encrypted anyway
- the initial 'join'packet shows the connect request and version number in clear text, all there rest are unintelligeable, and not even recurring
- the amount of information flowing through the port is quite impressive compared to packet sizes, so there may be packet compression in the background, easy to combine it with some sort of encryption at the same time
- Il-2 "is" CPU intensive, which is reasonable for offline play (AI, etc.), but I don't see much drop-off with online play, I guess the savings in AI computing is taken up by encryption.

You might take a look at the packets, no big deal. I needed to do this when collecting data for 1C bug report regarding the chronic TIMEOUT 2 problem (WinXP vs. WinXP). But when thinking ahead, I would NOT go and try hacking the network code AT ALL. The biggest danger of all: what if you succeed? http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif I am sure your piloting skills would diminsh, your interest in the game would wear out, besides, the Russian maffia would be at your doorstep within days... http://forums.ubi.com/images/smilies/16x16_smiley-very-happy.gif So I think the subject of network traffic encryption is better held at this stage, without any further development http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif

BBB_Hyperion
02-06-2007, 06:48 AM
For that reason the network encryption is even more secure today (no hint here)http://forums.ubi.com/images/smilies/16x16_smiley-very-happy.gif

WB_Outlaw
02-06-2007, 07:51 AM
Originally posted by rnzoli:
The biggest danger of all: what if you succeed? http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif I am sure your piloting skills would diminsh, your interest in the game would wear out...

Don't judge me by your limitiations, just because I can cheat doesn't mean that I will http://forums.ubi.com/groupee_common/emoticons/icon_wink.gif.

Decrypting an on-disk file structure is very different from en/decrypting a real time (or as close to real time as you can get) data stream, let alone up to 128 of them. If it's a very simple scheme it may not be an issue but unless it's a public/private key exchange, the key is either static or it must be transmitted between the client and server at some point. Since neither one of those options provides any real security I tend to think that they wouldn't even bother. Of course, I thought there would be at least some kind of server side hit verification and I was 100% wrong on that one so it's pretty obvious that I don't know what I'm talkin' about. I guess I should shut-up now.

--Outlaw.