At our previous camp the focus was on building web applications with a certain stack. This time we wanted to do something different - our goal for the camp was to enjoy the craft, while doing something you wouldn't do on a daily basis. We also wanted the camp to provide the social aspect of working in tight-knit teams towards a common goal. As with our last camp, the plan was to spend Thursday evening through Saturday afternoon hacking together in small teams.
The game in question is a hexagonal-grid based 2D shooter and each team has three bots. The bots can either move, shoot or scan the battlefield to reveal enemy bots. Only one action is allowed each round, which occasionally resulted in exquisite (or rather absurd) tactics. The game server supported teams playing against each other from the very beginning, thus allowing new tactics to be generated on the fly.
The participants formed eight teams of three members each, and each team chose a language they wanted to try. The purpose was both to learn a new tech and have a blast by coding something new and exciting.
During the second day, more rules were added to the game. First of all, the size of the battlefield was increased. Additionally, asteroids that couldn’t be distinguished from the bots via scan, only by walking close enough or hitting them with a missile, were added. Asteroids allowed for bots to distinguish themselves as asteroids, and spending each round either scanning or shooting. The teams were also asked to choose their signature song that would be played during home games.
The teams employed a wide variety of tactics, such as scanning the field in certain patterns, using bots as scouts to distinguish enemy bots, using heat mapping to determine where bot activity has been recorded, and adding values to each hexagrid based on supposed movement of the enemy bot. The most common tactic was to first track an enemy by scanning with every bot, and then to trace the enemy with a single scanning bot while the rest were shooting.
As for more novel tactics, one team used one of their bots as a running sheep that acted as a target and tried to dodge the incoming bullets. As soon as the bot spotted an enemy, it started chasing it trying to cause friendly fire and keeping up a vision for the allies to shoot.
Alongside programming, the participants enjoyed the remote archipelago, various sports activites such as swimming in the near-Arctic ocean and playing football with very big footballs acting as goals. Supersetting coding with trips to the sauna and the hot tub also proved to be effective.
The camp concluded with a tournament consisting of a group stage followed by a double-elimination final stage, where teams were paired against each other in best-of-three games.
After the group stage, Clojure, Haskell and two F# dominated the tournament, and moved into the double-elimination stage. The teams were given 30 minutes to modify their bots, so that the finals would be as exciting as possible. Eats Shoots & Leaves suffered a loss in the first round, but eventually managed to win the tournament with zero lost rounds after the first round.
Finally, 24 certified robot scientists emerged from the ashes of the battlefield.
That's it for the code camp '15! Here's the happy bunch:
Events like these benefit our company immensely. Meeting colleagues from other sites, working with new peer groups and focusing on exciting technologies help people to enjoy their work more. It's the happy people that make great results, happy customers and happy end-users. Cohesion and camaraderie within the organization sure helps to achieve that.
In case you're interested in organizing your own code camp and need guidance, give us a shout!