Tick Length


This was not immediately clear from the actual documentations but roughly how long is a tick?

Need to factor that in on my end.

That’s in the game engine config, called TickRate, currently 100 ms.

1 Like

Thank you for the response Nicolas, that is correct.

Hi. Can we assume that the tick duration will stay at 100ms for the upcoming tournament? I saw the default tick rate being 20ms in the engine’s appsettings.json

Hi @marvijo , thank you for reaching out. The tournaments run on 75ms.

1 Like

Interesting - I thought it would be 100ms across the board.

Can we assume that the tournament hardware will be on par with the player portal? I.e. if my bot can process the game state and issue a command in 70ms if I submit it to the player portal, can I safely assume that it will be in the region of 70ms in a tournament as well?

Hi @rfnel, we use the exact same hardware setup and configuration for submission processing and tournaments. If your bot is able to do everything it should in the player portal, it should be able to do in the tournaments.

Just a FYI, the hardware that each individual bot receive is 8GB or RAM and 2 vCPU cores. This is consistent throughout the whole process.

1 Like

@marno.vanniekerk & @ibvs I am not sure if I am missing something, but according to my tests the actual tick rate is almost always less than the configured rate. The way I tested this was by logging the DateTime in ms every time a new game state is received. The rate at which new game states were received is also very inconsistent. The portal submission seem more consistent but is very short so it does not give a good indication of how the bot would perform in the actual tournament.

Here is and example (configured tick rate = 75 ):
Game tick: 1
Received at: 63764271603236 ms
Game tick: 2
Received at: 63764271607435 ms
Game tick: 3
Received at: 63764271607513 ms
Game tick: 4
Received at: 63764271607529 ms
Game tick: 5
Received at: 63764271607661 ms

Another example from the portal submission (tick rate = 20?):
{“date”:“2021-08-10T22:39:09.374484Z”,“log”:“Game tick: 1”}
{“date”:“2021-08-10T22:39:14.182648Z”,“log”:“Game tick: 2”}
{“date”:“2021-08-10T22:39:14.190497Z”,“log”:“Game tick: 3”}
{“date”:“2021-08-10T22:39:14.208524Z”,“log”:“Game tick: 4”}
{“date”:“2021-08-10T22:39:14.231052Z”,“log”:“Game tick: 5”}
{“date”:“2021-08-10T22:39:14.248624Z”,“log”:“Game tick: 6”}
{“date”:“2021-08-10T22:39:14.269499Z”,“log”:“Game tick: 7”}
{“date”:“2021-08-10T22:39:14.288433Z”,“log”:“Game tick: 8”}
{“date”:“2021-08-10T22:39:14.309494Z”,“log”:“Game tick: 9”}
{“date”:“2021-08-10T22:39:14.330372Z”,“log”:“Game tick: 10”}

Hi @GawieJooste , thank you for raising this question. We will look at how this is handled and revert back with more information.