Sogeti Codefest - Feedback & Strategies

11th place in this contest. Congratulations to the top 3 and especially pb4 for his undisputed victory.

Fantastic Bits has always been one of my favorite contests and it was a great pleasure to revisit this theme. However, in this variation, I think the one and only Wingardium spell (a mixture of Acio and Flipendo) was at the same time too weak and too expensive. Spending 33 mana for an effect which lasts only one turn and provides no more than a THROW impulse is not rewarding enough to have a major impact on the game.

Regarding my bot, nothing really earth shattering: I have dusted my FB bot whose sim and search (a genetic algorithm) is entirely based on code supplied by Magus. For this contest, I have done some performance improvements (mostly suppress new/delete calls in the main loop for a +30% more sims), weighted the evaluation at each turn with a patience term, revisited the evaluation and of course replaced the 4 original spells with the new one.

By the way, I have retrofitted these changes into my FB bot and moved from #42 to #17 for a +5 points in the TrueSkill leaderboard. Who says semi-private contests do not earn CPs ?

All in all, I enjoyed a lot this contest and hope there will be other ones.


My code is the same code as fantastic bit contest. I just removed the FB spells code, and coded the new spell. I didn’t change anything else.

Personally I really do not see the point of excluding most countries from participating in an online contest.

Playing advocatus diaboli here but for me it makes total sense. The contest was not about some CG regulars having fun but about finding possible hiring candidates. And about CG veterans taking all the top spots and prizes.
If you have a look at Sogeti and the list of their offices at Our Offices, you will see where the seemingly random list of allowed countries comes from. I assume that hosting a contest isn’t cheap, so they hope to get some value in return. Not entertain the world.

1 Like

I understand the position but it still makes zero sense. I am ready to bet (almost?) none of the top 20 of that contest had any interest into that. They get to participate because they randomly happen to be in the list of allowed countries while excluding the rest. /shrug

That’s exactly the problem. Sogeti even asked some participants for a video call. I don’t think that their efforts will eventually lead to a hire. That’s a bad return on investment.

just speculating here
If I were the organizer, I would think twice before hosting another contest. In the end this might even harm CodinGame’s business model. I also miss the competitive part of the platform, the regular contests every 2-3 months. I just think that these private contests aren’t the right place to compensate for that loss. The “5%” aren’t the target audience, as long as they don’t seek for a change of jobs.


It’s quite paradoxical that these kind of contests despite their substantial prizes have no more participants than a “puzzle of the week” multi.

1 Like

In the end it mostly comes down to a simple question: “who knows about it?”
It was announced on twitter. 9 likes and 5 retweets. And shared on the chat, where only a few users actively participate. The puzzle of the week gets sent via email (if you don’t opt-out) and has a message at that bell icon.

On top of that the contest game is more complex than the usual community contribution. From my own experience as a puzzle creator the more complex ones attract less players, probably harder to get started.

1 Like

Yeah, CG said before they put much more marketing effort for their official contests

Happy to have won, largely with a port from my Fantastic Bits code.

Sad that the competition was limited to a few countries: semi-private contests like those are a good occasion to revisit existing games with slightly different rules.

As for the actual algorithm: no, contrary to what was speculated on chat, there are no neural networks in my code :slight_smile:

I will refer you to my Fantastic Bits post-mortem. In that document, I described a large number of heuristics, stating that many of them didn’t work.

Since writing that PM, I have found that during the contest my simulation engine was flawed, and my genetic algorithm could only generate angles between 0 and 255 degrees :expressionless:

Upon correcting these bugs back in 2017, my FB AI became much better, and was only beaten by reCurse recently.

You can therefore consider my FB PM as my Sogeti PM, where everything actually works :slight_smile:

In summary :

  • It’s a genetic algorithm
  • It’s important to have a good representation of what the opponent would do, Ă -la-minimax (see my COTC PM for a description of how a GA can be changed to account for several opponent moves)
  • Reading the rules, I was convinced the spell was too expensive and would be underpowered. In local testing, I observed approximately 300 elo improvement when adding the spells.

My country was among the allowed ones, but I took the time to visit the company’s job postings for my country and I was sure I wouldn’t fit in none of them. So to simplify their candidate search I decided to not send any bot. If they are seeking job candidates (that was one of the prizes) I prefer not to disturb the leaderboard with a recycled bot with a lot of premade work in it.

Maybe they should promote it a bit more, I think many other coders could be interested if they knew about the challenge.


I believe they would care about the experience regardless. Perhaps it even gives them an idea of the quality of candidates they get from those that do apply. Like, how do they compare to others like Marchete who didn’t apply.

Most games would have recycled parts anyway. Unless you go for an entirely new approach.

With players who are active on CodinGame for a long time and know the quirks of the platform (how physics work as no referee is given, pragmas to counter debug mode, just the concept of writing a simulation to look a few turns ahead, …) and others new to the platform, this would be an unfair comparison, wouldn’t it?

as unfair as starting in a new challenging job environment where the coworkers are more experienced and used to the codebase …

i think it gives great info