Kaillera input lag?


#1

I’ve been having this problem today with Kaillera and that my inputs lag by ahout .5 seconds. But the odd thing is that I have a decent ping rate (usually no higher than 50) and the game itself doesn’t lag at all, only my controls. Also, my controls work perfectly outside of Kaillera and when I’m playing other things. Would my HD space be an issue, beause I’m running very low on free space. Otherwise, I dunno what is causing this. Any suggestions?


#2

If you play on official kaillera server, assuming you are on good connection setting…maximum delay you will get from kaillera is (floor(50 * 0.06) + 1 +1 ) * 3 = 15 frames. Which is 1/4 of a second.

Edit: (floor(50 * 0.06 / 3) + 1 +1 ) * 3 = 8 frames…formula: int tb = ping * 0.06 / c + 1; client interpretation = tb+1th send which is (tb+1) * c th emulator frame = (floor(50 * 0.06 / 3) + 1 +1 ) * 3


#3

I was playing on GW and on anti3D. I have no idea if those were official or not. Either way, this has only happened starting today. What would cause this?


#4

emulinker is (1 +1 ) * 3 = 6 frames i belive.


#5

…where did you come up with this? Are the people that get more delay than this, liars?


#6

One time, my inputs lagged by like a whole second, maybe more. We restarted the game and it went away. Was really weird.


#7

I did not come up with it. Christophe did, when he designed kaillera. 0.06 = 60 / 1000. And thats the worst case. Your normal delay should be something like ping + 3 /0.06 ms (assuming you are on good connection setting and everyone else is ideal and the game is not in the official kaillera server).

No they aren’t liars. The maximum delay they are expected to get is exactly as I stated before from the kaillera part framewise. There are other contributing factors. When someone starts game, server sends the start game signal to all players. Upon receiving, client transfers execution control to emulator instructing that the game has started. Emulator loads up the game and gives client player’s key frame data along with execution control 60 times per second. When emulator does that for the first time, client sends server a signal saying emulator is all loaded up and then stalls. When all players are loaded up, server sends a signal to all players which marks the begining of game play. Upon receiving that signal, client moves on and buffers and sends player’s keyframes to server every cth frame where c is the connection setting constant: 1…6 <~> LAN…Bad. i.e. for good connection setting, it sends data to server every 3rd frame. When server has data values from all players of the game based on individual player’s connection setting and ping, it compiles them into a big buffer and sends them it each client based on their connection setting. i.e. it does not send you the first frames before it has c no of completed frames from all players.

You may already see where things can go wrong which can cause delay.

  • It does not send frames to server before it has c no of frames. i.e. if emulator takes longer time to produce those first frames due to whatever reason such as o/s’s memory management stuff with its cacheing and paging or things like net useage restrictive softwares, it will send frames later and will cause delay initially. You know there has been this type of delay by looking at its rate of operation in intial stage of game. They will not usually be 60 for first 5-10 seconds. These ususally are reduced by getting better systems or makeing those procedures easier for system by freeing up system resources.

  • When your frames are there in the server and others are not. Can’t expect any less from laggers.

  • Buffering delays. Fixed by playing on higher connection settings.

  • if your emulator keyframe size is 24 mojob bytes instead of 2…which would make both client and server do a lot of processing. + if server is hosted on a siht machine. Fixed by using better emulators.

  • If you keep your msn or other programs on that uses internet or if you have something running thats making your system slow and you get the netsync signal later than expected.

  • Events such as multiple packet loss or transportation delay will cause netsync timeouts and will force server to produce null frames in the absence of your data to keep the game continous for other players. And if those data becomes available after, it will cause you a bit of delay compared to other players.

  • motivation behind kaillera is that it will be smooth and continuous…if you do something that can cause discontinuity such as switch to full screen or resize window in emulator systems that uses window bound timers or start recording AVI.

  • more issues that doesnot have much to do with kaillera. You can use this program:http://civilian.allhyper.com/MaxFramesDelayTester.zip (source included) to find maximum delay you get from kaillera side in no of frames. This program does not suffer from most of those emulator side issues I’ve stated.