Friday, April 15, 2016

Games and AI

A few weeks ago on Facebook, I saw an ad for CodinGame advertising games for programmers.  Despite the fact that I work full time as a software developer and love writing good, pretty code, I've never really managed to get any good projects started in my spare time like working on open source team.  Of course I do a lot of dabbling, creating tools to optimize my international travel plans, programming hobby robotics, building up my home automation network, and of course, volunteering at the museum.

Still, I hadn't found much to fill random bits of free time when I want to flex my programming muscles without starting a long term project, but so far, CodinGame has been the perfect fit for just that.  It's a treasure trove of programming challenges divided into different categories and difficulties, each with a fairly well made backstory and graphics.  The stories so far have included the Matrix, Terminator, space travel and are a fun way to give a contrived programming task some flavor.

I'm quickly learning fundamentals of game development and AI that I haven't been exposed to working on more business-y software like backtracking, pathfinding, and depth and breadth first searches.  I'm also seeing how concepts I'm already familiar with like binary searches, recursion, and simulation apply in different ways, and, of course, I'm brushing up on a lot of geometry and trigonometry.  In addition, since they have IDE's for lots of languages, it's a great tool to stay fresh in different languages, like writing some JavaScript when you've been doing tons of backend C# or some C++ when everything you've been working on has been managed code.

I haven't been signed up long, but I've already flown through a bunch of the easy ones, created solutions that I'm pretty proud of on some mediums, and started to unlock the hard levels.  I know it's not productive in the same way as open source projects, but it's definitely helping me learn, grow, and stay sharp as a developer.  I don't totally know how they make money, because there don't seem to be many ads given the quality of the platform, but while it lasts, I'm happy to have it as an outlet for some of my programming energy.