CG Spunk hiding

Hello CodinGame and CodinGamers,

I was reading the messages from the chat that I missed during the contest, and I noticed a discussion where people believed my AI was timing out on purpose in the IDE.
So I just wanted to make it clear this was not intentionnal.

Personally, I don’t care about IA hiding, but don’t use it because I consider it is more rewarding to win without hiding.
As I explained in my PM, I rely on local simulations and push my best version to the arena to confirm the improvements.
Then, I look at the replays I lost in the arena, but don’t use the IDE or CG Spunk because I think it is too slow and not relevant with too few games.

I am kind of sad that there are so many suspicions on CodinGame these days, and if possible, I would love to have a confirmation from CG that my code is not doing anything crafty.

Thank you!

2 Likes

I noticed your AI was timeouting alot in the IDE. Somehow I suspect that the timers were strange on Codingame’s side this contest. Me and pb had to have 40ms to avoid timeouts. Whereas I’ve always had 97.5/100ms in other games. I think this might be linked to this issue. I personally never suspected any kind of deliberate trick on your part.

1 Like

I think CG launches arena and IDE games under different conditions and if you cut too close to a timeout then something that passes in arena will fail in IDE. This phenomenon is most definitely not exclusive to this contest, I’ve experienced it in CSB, although not on this scale where about 4/5 games vs Royale failed.

I had the same problem. With a timer at 45ms, my AI in the IDE crash in 50% of the games. So i used a 40ms timer.
I don’t think it’s possible to create an AI crashing in the IDE on purpose.

I didn’t see my AI crashed (timeout ?) in IDE or Arena until too late sadly, is it possible the timeout changed along the day or the week ? depends on the physical server who launched the game ?

In C/C++ (and other languages), in the IDE, the code is run through gdb to parse the stack trace and give it to you if you crash. That may had a little overhead? That’s the only difference I see…

But the issue here is when you launch a game in IDE vs somebody else’s arena bot and the arena bot timeouts, even though he behaves fine in arena itself.

Could it be that you launch the other bot through gdb as well?

My unconfirmed hypothesis is something to do with garbage collection in languages that allow it. I use Dart which is a really friendly dynamically-typed, garbage collecting language. And I have done a lot of fiddling with timeouts and fixed numbers of iterations. And it seems like garbage collection runs after I print to stdout at the end of the main while loop, and that causes the timeout.
But I have to do some more memory examination if possible, to really confirm that. I have to do some more digging into the Dart SDK to see what tools are available for memory examination.

I had a bug in my AI during the whole contest, that I didn’t see until the last day, which caused a few crashes in the arena, but never in the IDE. It was a simple oob access, but I never reproduced it in the IDE. Likin talked about a similar experience on Tron.

I’m no gcc expert, but there seem to be a difference in the arena environment.

As I said, in the IDE we run the programs through gdb and sometimes a buffer overflow doesn’t crash with gdb but it does without it…

Are the compilation flags also the same in the arena ? (especially -g ?)

I had this very feeling. For me I started to see tons of timeouts on last day, on arena. Then I sent the replay to IDE and the same, having to reduce until 820ms turn 0 & 42ms next. Even I timeouted at 860ms turn 0 on Ide. But this was the last day. In general I never see any big difference between IDE and arena. But sunday were horrible for my timeouts…

I had a similar experience one night when my code suddendly had a lot of timeouts but I think it was a bug on my part.
Somehow the bugs was displayed as timeout.
The remaining of the contest I had a solid 44ms limit which never triggered the timeout.

For what I recall of the contest, I had a lot of graphics glitches when the viewer said I had timeout but in fact it was not true or it displayed the wrong name (one not even in the battle).

It doesn’t explain the timeout in IDE but I think something was amiss during the contest.

nmahoude, you too timed out once during the rerun https://www.codingame.com/replay/212947631

My topic is about a bot that never timeouts in the arena, but timeouts in the IDE (20% to 80% of the time according to the chat logs).

Since then, I discussed the issue in the chat with other players and it appears I have been wrong since the beginning because I use CPU time instead of wall-clock time.

This does not explain why it worked before, why it timeouts in the IDE and not in the arena, but I guess it is a good lead.