Back in november I stumbled upon the crowdfunding of Screeps, a massive multiplayer online game designed for programmers. It is a strategy game where you do not play but program an AI to play for you. I decided to throw in some money because it made me excited and as a result I've been toying around for the past several weeks in the early access preview.
And I must admit that I quite like it. It is challenging: the game provides the basic game mechanics and functionality such as path finding and examing the playing field and manipulating it and the rest is up to the programmer. Basic things, like building a unit that collects energy or one that picks up energy from a creep that is mining for energy and bringing it to unit that needs it are quite simple. But once you have more than a few creeps things start needing coordination and it gets more complex.
I think this might also be a very good way to learn game programming: the game has a tick based architecture and in order to keeps things efficient you need to figure out a way to keep track of resources, overall state units and rooms. In the few sessions I've spent on the game I had to dive into some algorithms(implemented a breadth-search for finding suitable construction area), data structures(currently researching spatial hashing to group together local energy needs) and working out how to keep the game running efficiently.
I also happen to have two additional tokens for use in the early access preview. If anyone is interested I'd to happy to share them on first-come basis. However, please think about if you're actually gonna play or just want to check it out and abandon it. There are quite a few players who's AI seem starved, unresponsive and stuck without being updated and it would be a shame if my tokens would be used in such a fashion too. If you do want to try it out for a bit, it has a built-in code editor and a partial simulation that runs in the browser under simulation, where also the tutorial can be found.
If anyone's playing: I'd love to hear other experiences.