Leonid's blog

By Leonid, 9 years ago, In English

It's the first time we're competing in the final of Deadline 24. We're very excited and videos from past contests look like a lot of fun.

What advise would you give to fresh-mans? I would be pleased to hear from teams who already have some experience in this contest as well.

  • What pre-written code would you advise to have?
  • What tools did you use to visualise games (if any)? Did you run visualisations in parallel?
  • Was there a visualisation provided on a shared monitor where you could see the games in action?
  • Approximately how many rounds for each game were there during the contest?
  • After how much time since the start of the contest would teams have a minimal working solution?
  • What hardware did you bring with you and found useful (router/switch, extra monitors, etc)?
  • What additional material (language specs, books, language tools/libraries), if any, did you find useful?
  • What programming language(s) and tools did use to code problems, and why?
  • Did you use any machine learning, or it was too tight on time?
  • How did you handle TCP requests/responses (i.e. a wrapper to pass data to stdin/stdout, a library, etc)?
  • How big was the gap between the first/middle/last team?
  • How many teams approximately would submit a working solution? How does this metric change during the course of the contest?
  • Are problems from 2014 final available anywhere?
  • Vote: I like it
  • +26
  • Vote: I do not like it

»
9 years ago, # |
Rev. 14   Vote: I like it +34 Vote: I do not like it

Meanwhile, some stats on TOP teams.

  1. [Czech Republic] Mimino, fhlasek, k21
  2. [Poland] Psyho, marek.cygan, Mojito1
  3. [Belarus] Romka, Anna Zhdan
  4. [Ukraine] Shef, Ruslan Babilia, Ievgenii Zasoba
  5. [Croatia] ikatanic, gustav, Stjepan Glavina
  6. [Russia] ashmelev, mmatrosov, Anton Demidov
  7. [South Africa] bmerry, Carl Hultquist, Nicholas Pilkington
  8. [Russia] craus, dalex, Slamur
  9. [Lithuania] KrK, Leonid, astro75
  10. [Russia] zeliboba, ArtDitel
  11. [Croatia] kalinov, Davor Jerbic, Luka Donđivć
  12. [Poland] ordyh, Mateusz Jurczyk, Michał Kowalczyk
  13. [Belarus] CherryTree, Ra16bit, sas4eka
  14. [Finland] sharph, Sisu, pllk
  15. [Belarus] aropan, Smylic, Uladzimir Kerus,
»
9 years ago, # |
  Vote: I like it +48 Vote: I do not like it

What pre-written code would you advise to have?

You can write a wrapper for TCP/IP communication and that's enough — this is pretty much the only thing we use. Just make sure that it works correctly. This is the single most important thing.

What tools did you use to visualise games (if any)? Did you run visualisations in parallel?

We use CImg.h library since it's lightweight and easy to use. Doing vis separate has it's pros and cons. There's more code to write and two-way communication is a horror (if you want one), but having running vis in a separate process can make your life easier in some cases.

Was there a visualisation provided on a shared monitor where you could see the games in action?

Yes there was. But it wasn't very clear what's happening.

Approximately how many rounds for each game were there during the contest?

Usually rounds are something between 20 and 40 minutes. Worth noting is that during the last year, two games were run on 3 servers.

After how much time since the start of the contest would teams have a minimal working solution?

Depends on the problems and the strategy. It varies between 1 to 8 hours.

What hardware did you bring with you and found useful (router/switch, extra monitors, etc)?

Switch and power strip is pretty much a requirement. Extra monitors can be invaluable, since it's impossible to keep working on a solution and have enough space to see what's happening in the games.

What additional material (language specs, books, language tools/libraries), if any, did you find useful?

Docs for your libraries.

What programming language(s) and tools did use to code problems, and why?

Just use the things that you're most comfortable with. That being said, if you're good enough with C++, it's easily the best language in such contests.

Did you use any machine learning, or it was too tight on time?

Is that a serious question? :)

How did you handle TCP requests/responses (i.e. a wrapper to pass data to stdin/stdout, a library, etc)?

In case of C++, just use boost. We have our own low-level library (build on sockets), but it really doesn't give us any advantage.

How big was the gap between the first/middle/last team?

I believe there was a tough battle for the 3rd place :) This depends on the problems mostly (way of the scoring works) and the level of the teams.

How many teams approximately would submit a working solution? How does this metric change during the course of the contest?

Except for very the very complex tasks, you can assume that almost all of the teams have something that works.

Are problems from 2014 final available anywhere?

I don't think so, but all of them are quite similar. There were 3 games instead of 2 games + optimization problem. The quality of the problems has also improved by a lot (simple problem statements while having more interesting gameplay mechanics).

»
9 years ago, # |
  Vote: I like it +13 Vote: I do not like it

What were the good approaches to solve the first problem of final round?

  • »
    »
    9 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    We took second place in this problem, but as I know no one used our strategy. In first part of the contest all teams abused imbalanced unit "cannon", everyone just "spammed" it and did't care about landscape and good positioning (being on the hill will be enough). But then jury limited max number of cannons to 5 and strategies changes.

    Top teams started to surf the map with their HQ surrounded with the units leaving no defence behind.

    We never moved our HQ, he stayed with some bodyguards (cannon + tank + car) and other units were spreading on the map and trying to capture StratPoints. The most valuable were those who doesn't have the owner. Our units also have a target to protect captured points holding good positions on hi-grounds.

    We have also a penalty for places where our units died a lot, so if they meet hard defence they stop going there after 10-20 deaths for a while.

    One more thing: we made a vis with CImg and added manual control with a mouse for setting up the best defence positions for our units

    • »
      »
      »
      9 years ago, # ^ |
        Vote: I like it +13 Vote: I do not like it

      Top teams started to surf the map with their HQ surrounded with the units leaving no defence behind.

      I wasn't doing it :)

      Choosing defensive positions for cannons was probably the most important thing after the problem change (earlier it was also very important, but it didn't matter too much since it was easier to destroy anyone with just outnumbering your opponent with cannons + using some tanks for tanking ;)

      I'll try to write a short description for my solution later, when I'll have more time.

»
9 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Where can I find detailed standings of final round? Didn't found anything except list of top3 teams.

  • »
    »
    9 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Participants know the standings before 1-hour freezing only. The final results seem to be unavailable.

    • »
      »
      »
      9 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I've reached out to organisers and they said results would be published on Friday.

»
9 years ago, # |
  Vote: I like it 0 Vote: I do not like it

What pre-written code would you advise to have? С++ self-written class for TCP connection + logging + game class with proper restarts and error handling.

What tools did you use to visualise games (if any)? Did you run visualisations in parallel? CImg, it the same binary file

What hardware did you bring with you and found useful (router/switch, extra monitors, etc)? We have a switch+router for a member without ethernet port (wifi only)

What additional material (language specs, books, language tools/libraries), if any, did you find useful? Just docs for CImg

What programming language(s) and tools did use to code problems, and why? C++ only, it's easier to write good and readable code