Release 2023.2.5 · EntelectChallenge/2023-Cy-Fi

Please refer to Very important announcement regarding tournament 1 - #3 for more details

I have made the changes to add the Token to the Register call, but can’t seem to get this release to run my bot locally. (even if I pass in a value for the token)

Engine logs my bot’s connection, but then doesn’t do anything else and eventually times out:
EngineLogs.json (2.7 KB)

I have made a submission with the changes applied, so will wait and see how that goes.

Submission eventually failed as well. @Izak is the addition of the token the only required change?

Hi @Koos,

Yes, but please ensure that the token you pass in is a valid UUID string. SignalR rejects the invocation if the parameters don’t match what it’s expecting.

You can checkout the function parameters here

@Izak I have checked the submission’s bot logs and there is a valid UUID supplied, but submission still failed.
Details:
image

Edit: When substituting the UUID from the submission’s logs into my local environment the local engine now runs fine. Tried a fresh submission but it failed as well.

1 Like

What does your submission Engine log say?

I can’t seem to download those. “Download Match Logs” button spins a while and then does nothing.

Also, on the off chance that it might be related - the match that spontaneously kicked itself off on 2023-06-26 16:07:33 still reports as “In Progress”. Might it be that this one is filling up my match queue and causing a timeout on newer ones? Details:
image

@Koos there was a bot version mismatch. Should be good now

Works just fine now, thanks @Izak .

1 Like

@Izak / @Jenique I believe there’s a bug in the radar direction calculation:

I believe it should be

- return y1 > y2 ? InputCommand.DOWNLEFT : y1 < y2 ? InputCommand.DOWNRIGHT : Input Command.LEFT;
+ return y1 > y2 ? InputCommand.DOWNLEFT : y1 < y2 ? InputCommand.UPLEFT : InputCommand.LEFT;

Also, currently the direction is calculated from the opponents next position (instead of their current position, even though their current position has already been updated at the point this is calculated)

Not sure if this is intentional? I think this might be carried over from the point where state updates were sent one tick late?

1 Like

@Izak - in addition to the Radar bugs @kobus-v-schoor pointed out, I suspect the radar and stealing detects Opponent bots across ALL levels - not just those on the same level as the player bot. Note for example when calculating the hero window, opponent bots are correctly filtered by level

var oppositionBotsOnSameLevel = cyFiState.Bots.Except(new List<Bot> { bot }).Where(b => b.CurrentLevel == bot.CurrentLevel).ToList();

But when updating Steal and Radar states, it is NOT:

bot.Hero.PhysicsComponent.Update(bot.Hero, Bots.Except(new List<Bot>() { bot }).Select((bot) => bot.Hero).ToList(), Levels[bot.CurrentLevel]);
1 Like

EDIT2: Note that the issue was on my side, see this post:

@Izak / @Jenique Just ran into something which I think is fairly rare (first/only time I’ve seen it), but it looks like its possible that a level’s starting position can be on top of a solid. If this happens it means that you get completely stuck (engine won’t allow any movements as you’re always colliding).

image

If this happens all the bots get stuck in the same position so the game is effectively “crashed”. Might be worth taking into account for the tournament.

EDIT: happened again on another seed (so happened twice in about 10 games for me). I suspect this might have an impact on the tournament.

2 Likes

@kobus-v-schoor Won’t you just be able to dig left/right here?

EDIT: Would be a bit weird if multiple bots spawn there at the same time though. Then you would have no way of telling if it is solid or not

@TianCilliers I assumed my bot did try and dig, but that might’ve not been the case. I’ll try and reproduce and report back :+1:

EDIT: Shouldn’t have assumed :sweat_smile: My bot did not attempt to dig, fun finding a big bug like that on d-day :sweat_smile:

EDIT2: can confirm that digging works :+1:

2 Likes

Another issue I found is although the game engine is set to 2 players it starts immediately if one is connected.

And after digging a while my bot just stops receiving gamestates, this may be related to Kobus’s error, but on the 3rd map where you need to dig to proceed it gets stuck on this error

Hey @Kortgat, please double check your appsettings. The engine shouldn’t start if it expects two players

I think i was editing the appsettings in the wrong folder it worked after I closed everything and retried.

I also found out my bot gets stuck in a loop stopping gamestates, so I’m not expecting much from this round :frowning:

1 Like