Long Take-Home Assignments In Game Development
TL;DR
I’ll accept long take-home assignments if I’ll get something out of it: learn something new, prototype a new gameplay mechanic, possibility to reuse the code for other interviews or my own games, etc.
The Problem
Some game development companies require completing a take-home assignment/homework as a means of screening. Especially if you’re a game-play programmer, such method most likely will require you to create a clone of a game or clone specific mechanics in a game.
However, such specs are less likely to be completed in 1-2 hours, and mostly will require multiple days of work, in the range of 8-16 hours (which, imo, should be the maximum amount of time one should spend on an assignment).
Leaving aside the concern that company could use the code you’ve submitted to release their own game, the other main concern is “should I give a company from my own free time and not get paid?” Sure, it is a legit concern.
But think of this another way: as a programmer, you have to keep learning things to stay up-to-date with your domain. And no matter how specialized we get, we still can’t know everything about our domains. Which means that we do spend our free time learning things.
What if we used a long take-home assignment to our own benefit?
My Experience
In my recent years, I’ve been involved with 2 long homeworks during the interview process. Both interviews didn’t get me the jobs, although not because of the assignments.
The first one was to create a clone of Asteroids in Actionscript 3 in 48 hours. At that time, I only coded Haxe with the Flash API, so I’ve learned Actionscript 3, Flixel (a game framework) and produced the game. You can check a more detailed account of my experience here.
Despite the interview ending a dud, I’ve learned Actionscript 3 in the process. Soon after, I’ve interviewed with another company and got an Actionscript 3 job that kept me busy for the next 5 years.
The second one was to create an Adventure Capitalist clone, covering the basic mechanics of idle games, over 8 hours (deliverable in 7 days). It came with a couple of restrictions: for instance, it banned Cocos Creator, which was my tool of choice for creating most of my browser games. For a long time, I wanted to give Phaser 3 a try, so I’ve first learned Phaser then created the game. It took roughly 16 hours, including graphics and sound fx.
I’ll post later about this interview and the code I’ve made for it. In any case, I’ve learned Phaser 3, which is a good skill to get contract work with and prototyped an idle game – I’ve never done an idle game before – gaining know-how and will eventually release it a stand-alone game for the benefit of my portal.
In both cases, I’ve ended up with source code, that can be used as a bargaining chip in another interview. Might not work in all cases, though 🙂
Conclusion
I’m waiting for a time, when, after 20+ years as a professional software dev, could walk through over the source code of one of my games during an interview, focusing more on software architecture and technologies side of things.
Unfortunately, it won’t happen very soon. But I’m open doing long homeworks, as long as if I benefit from them, too. I might also refuse them, if they are not interesting/broad scope. So far, it seems I’ve made the correct choices.
Hope my experience will benefit you in some way.