Since this whole thing started, I had to reinstall Coh2. You guys always drag me back in
Most of you can just look at the picture and skip the rest.
My main interest is can the FOW get out of sync.
To test this I have played games and recorded them in OBS to then be compared to the replay.
I have also played with people and compared replay to replay.
At this point it appears:
- REPLAYS will usually match up perfectly because it is probably the actual data received from the server. Just a guess of course. But they are extremely close.
- OBS vs Replay matches very close. This may depend on your server/network connections.
Out of the 10 times I have looked at OBS vs REPLAY I have only seen three that had weird things happen:
1) The FOW was out of sync for about 1 frame of video (33.3 mS). Not very bad.
2) A unit was not visible for about 1 frame of video.
3) An M20 at the edge of the FOW was visible in the OBS video but was not visible in the replay for about 3 frames of video (100mS)
Trying to find these things is a lot of work. First I make two recordings then match them to a frame when the game clock changes so they are perfectly in sync. And after a few minutes they tend to wander out of sync by a few frames. It is also a pain since you need to use FOLLOW CAMERA in order to see the same scene all the time.
THINGS OF NOTE:
1) Units, FOW, bullets, explosions, UI sprites, etc all appear to be very close between OBS and REPLAY.
2) Grass, dead bodies, etc are NOT similar at all.
3) The FOLLOW CAMERA position is in the wrong position about 10% of the time if you move it a lot.
4) In the video where the M20 was missing everything looked in sync. So it is not the whole system that gets out of sync and stays out. It was fine during and after the missing M20.
From all of this I guess what I have suspected all along:
1) The client sends data to the server. The client then starts to move units. When the server sends data back small changes are made to the units to get them in the right place. Since they do not move very fast the client should get several messages per second with position data.
2) The REPLAY is the data from the server. A weird thing that happens here is that the replay FOLLOW CAMERA is sometimes ahead of the OBS actual camera. Meaning data is out of sequence and Relic is stitching it together to be close to what it thinks happened.
3) How accurate is the actual game clock? Since videos tend to get out of sync, either the actual game clock or the video encoder is not perfect.
I also did some testing with the FOW:
1) In vCOH the FOW was not calculated all the time (for faster FPS most likely).
2) I ran a vehicle across a road to get max speed and recorded in OBS. The FOW appeared to only be calculated once every 5 frames of video (166mS) when in open areas. When the FOW hit sight blockers it appeared to be calculated almost every frame.
3) Open areas looked like the FOW was calced. Then recalced later. Three frames were then interpolated.
- 5 frames no change in FOW.
- 3 frames transition/interpolate/average to the new FOW.
- Repeat.
WHY DIDNT THE M20 SHOW UP:
1) I dont know.
2) Position was out of sync in replay.
3) To speed rendering Relic does not draw units at some distance. Did the CULLING code pull it out? The M20 was only partially drawn in its first visible frame. It is also important to note that the volks by the fuel were giving sight and were moving away from the M20. The M20 actually appeared then disappeared again as the volks moved away.