A bit late, but something has been bugging me about this challenge, Its all about the tick and command

So here is the basis of my time management,

I give myself 40 MS to process a round currently just because of the engine.

When the harness starts, right after:
connection.on(“ReceiveGameState”, gameStateDto => {

I set a date timestamp

Then I run some code and at the end I have a basic while that breaks out when the start and end exceeds 40 MS,
My moves are written, but still the bot skips much of my moves, (made double sure I just write 1 move per tick. )

How does the runner listen?
Do I have 75 MS from receiving the command?

Know im likely missing something, but this time thing was why I missed the first event and now I am relooking at the challenge and its right back there.

Is it my device?
Fairly late my end, but figured I will challenge myself this week.

But have to ask,
What is the deal with the ticklength?

Ignore this one for now,

It seems I got my numbers to work again. Seems like I figured it out somewhat, and things are making sense timing wise.

Making the finals is not something I am looking at this time around,
Its become somewhat personal, Cant be beaten by the challenge itself.

So if I can have a bot that works while following the method I want to implement,
Then that will be enough for me.

Just Psyching myself up because I resolved my timing issue, (literally what kept me from event 1 (Which i also left for a few days before))

Now its turned to backlog,
But the visualiser is working and its amazing as well.
Makes assessing the game so much fun.

I hope everyone are having a blast,
I feel like something rusty that rediscovered movement,

Last stretch for you all, goodluck all.

Hi @WillieTheron, I am still having some issues with timing and commands not being processed in the same tick that they are sent to the game engine. Is this the same thing that you were struggling with initially? If I may ask, what did you do to resolve it?

Good Morning,

I was forced to delay all my own moves by 1 turn, It seems like the first round hits in time, from there I get the following my side:

Round 1 start state - Move 1
Round 2 start state - Move 1
Round 3 start state - Move 2
Round 4 Start State - Move 3

This is fortunately a constant my end, and I wrote my own solution to post its move update the moment the game update signal is received,

I theorise that a person could post moves in real time if they write their moves according to the tick, that its set before the gamestate updates, I just feel uneasy with that approach my side and really did not give myself enough time for my own entry this year.

Fortunately when i relooked at the challenge I managed to resolve my issue,
But I have to live with that 1 round delay. Essentially I send next round’s move this round, Maybe thats how its supposed to work. The only thing that has me scratching my head is the fact that the reference bots does not seem to have these issues. Making me think its a JavaScript bot issue (and too late to fix that)

I am using Javascript my side.
I am also worried that when I do upload my bot that I lose this round slippage and my bot breaks,
But I will test for that,

Also this does not seem to be related to the actual moves being sent in late,

I send my moves before I do any processing (exception of Round 1)
This did mess with me both times I started working on my bot.

So for me adding that delay was the only constant,
I also mention this as open because I read about the extension this morning, and only because of that extension can I even partake. So giving others what could be a silver bullet seems reasonable.

Its always so much fun,

I need to implement offence and defense these next 2 days.
But i do feel eating is the hardest, given the 75ms tickrate.

Its a different kind of bot from the past years,

If something comes your way please let me know,
Though there’s so little time I will likely just play my 1 turn delay regardless.

Unless the submission clears it up, which I would find weird.

1 Like

Thanks for the response. I believe it is the same issue that I have on my dotnet bot so probably not only a problem with javascript. I have found that not providing any command in round 2 sometimes avoids the slippage, but this is definitely not a constant and most of the time the 1 round slip just occurs at a later stage. Forcing the 1 round delay, like you are doing now, may be a safer option.

1 Like

Just a quick update,

This still affects my side,
I am currently running some server side tests incase its for example a windows issue,

Everything looks great in the beginning, but around round 5 it goes back to normal, and then it messes around for a few rounds,
Im diagnosing my side,
Its a bit late and we have a code freeze, but something is very strange here.

I am looking for a pattern, will post here if I find one. To see if its fixed or random,

We are in a freeze,
But what I am experiencing is strange indeed…

Im did a complete harness time difference between rounds to see if I’m not messing up with some of my own timers.
That reads as follows:

Timestamp for round:1 - 4056
Timestamp for round:2 - 13
Timestamp for round:3 - 16
Timestamp for round:4 - 16
Timestamp for round:5 - 53
Timestamp for round:6 - 13
Timestamp for round:7 - 24
Timestamp for round:8 - 19
Timestamp for round:9 - 16
Timestamp for round:10 - 16
Timestamp for round:11 - 13
Timestamp for round:12 - 13
Timestamp for round:13 - 14
Timestamp for round:14 - 53
Timestamp for round:15 - 12
Timestamp for round:16 - 14
Timestamp for round:17 - 13
Timestamp for round:18 - 14
Timestamp for round:19 - 15
Timestamp for round:20 - 13

This tells me that the game most likely sends the command, then waits for a response, (with a max wait).
It is possible perhaps that the engine gets too hasty if your doing moves a little bit fast,
Or maybe theres some input output issue,

Though those 53 MS rounds could also be “Timeouts” that I need to address

What I am going to try is to assess what happens if I delay my moves and write them at 40MS instead of 12 MS…
Then I will also see how my own bot performs on the live harness,

My own AI is just hating those skipped moves, It really messes me up if I suddenly get slipage.
So I am assessing two things now:
A) The effect of delayed moves, to see what happens if I make the other bots wait for me,
B) The effect of the server environment directly (in case its my own bot).

It does feel somewhat unstable, but it could be a number of things,

Im relooking at my own side to see why Im getting spikes in my rounds, Just going to close all my programs and reassess for now. Search for some catalyst.

I noticed you did well in the last event, Congrats,

And goodluck in the next round.
As things are now,
I have everything accounted for except:
A) Afterburner
B) Torpedos
C) Teleport
D) Shield

But honnestly the usage of the above (apart from the afterburner) is pretty simple as far as I assessed,

My goal is to complete the Food scoring tonight, finalize that and build the weapons in tomorrow.
Defense and offence.

Just thought I would mention here,
I do not have the time down just yet.

**Im convinced the harness is crazy and does what it wants to,

It could be my local device, I mapped all my moves from the actual server and am planning for that.

It seems uniform and stable with a 1 round delay as I mentioned, Theres also little time so that is what I am coding,
The bad thing about this is the way I coded my bot, if that delay does go away, then I am completely hosed.
I did assess some of the Nova Matches and virtually all bots had a delay in move submissions,

So it seems like the global behavior,

Im still processing it all, but yeah,
I believe that theres extra instances open from the Node environment my side thats messing with rounds,
I can only code what i see now and hope that the system follows that pattern,

I do look around 12 rounds into the future. So slippage can mess my bot up a lot,
Unlike a closest seeker bot that does not really feel slippage, (or where you don’t notice it).

Also the actual bot environment is huge… I saw a match with 9 bots on, Thats a bit larger than the 4v4 I am running. But lets see how it goes, I really wanted a Genetic for this one.

1 Like

Yes I think this is what we will have to settle with for the final tournament. Good luck with the final touches and all the best for your bot.