The question most often asked of persons working in the game industry is inevitably this: What does it take to land a job as a programmer at a professional game studio working on games such as Batman: Arkham City or Call of Duty: Black Ops II? While the question is straightforward, there is no simple answer because the question is loaded due to inexperience.
A comparable question might be asked of a neurosurgeon about getting into the healthcare industry as a top-tier surgeon. The simple fact is, you have to start with a college degree, and eventually move into an apprenticeship to gain experience, and/or get an entry-level job doing the grunt work while being immersed in the environment, before moving on to specialization.
My experience teaching this subject for five years at the undergrad and graduate level helped give me a certain perspective on how well (or not so well) the education system prepares graduates for the game industry. The situation is quite simple, actually. The most passionate graduates will have gone above and beyond the courses they took in college to learn as much as possible about their desired profession, without relying solely on the degree certificate for their future employment chances.
College Degree or Work Experience?
What I also learned during those years of teaching computer science and game programming is that a college degree, while preferred, is not absolutely necessary. Some of the best and brightest in the industry today have no such degree.
That’s not an excuse to shirk college studies–if you have an opportunity to go, then go! But, I recommend against incurring a huge financial debt through student loans. I would not recommend it to any relative or friend when the student loan will go above, say, $50,000–an insurmountable debt for a young person just entering the workforce. Ultimately, your skills and experience will do more for your career than a college degree, all things being equal.
When I was just getting started in 1994, I was hired by a small game studio in my home town in California, a few hours north of Sacramento. This studio worked on contract retail games for the publisher, Simon & Schuster Interactive, which at the time was involved in game publishing, comparable to Activision and Electronic Arts today (before the industry consolidation). I worked on a sports game for the Sega Genesis, which was then ported to the IBM PC. It was an MS-DOS game, of course, and used SVGA resolution, prior to DirectX, so there was a lot of assembly and C++. The compiler used was Borland C++, with custom low-level graphics code (all software rendering, of course). A real far cry from today’s hardware rendering with Direct3D, OpenGL, and GPUs.
I left that job in order to go to college!
Was that a bad move? At the time, it was one of the hardest choices of my life, if not the hardest one. On the one hand, I wanted a college degree. I’d already spent a couple years fooling around at a community college while working mostly full time after high school. I wasn’t the sort of high school graduate who immediately took off to a premier college, and frankly, my family couldn’t afford that anyway.
Tuition Woes and Student Loan Nightmares
Hindsight is always 20/20, as they say. But, when I look back on that decision, I still cannot say whether it was the best choice, even after all these years. The reason for that is because, soon after I graduated from college, in 1997, college tuition doubled, and then tripled, and quadrupled! Also, I was able to get a Stafford loan from the U.S. Department of Education, which meant a single loan. Today, most student loans go through commercial banks, and that really makes me sad to think about it now, because that really does explain why tuition rates went through the roof.
In the 90s, college tuition was reasonable–not so today. I managed to get scholarships every semester to offset the costs, and my total loan was only about $25,000, which I paid off in 10 years. That was pretty common at the time, I’m sad to say, compared to today. It’s not necessarily that teachers are making higher salaries, but the educational system is in bed with the banks, and it’s a lose-lose situation for students. Thank you, representatives and senators in the U.S. Congress, for allowing greed to overcome common sense!
As a result, I finished college just before tuition skyrocketed, and in that regard, it was a good decision. But then, by the time I’d finished, I might have continued working as a game programmer, built up my resumé, gotten several games under my belt, and moved on to a larger studio during those 3-4 years. I might not have needed college to go down that career path. Or, perhaps I might have picked up a degree later with part-time evening/weekend courses (which are now offered online, but that’s what they were called when I was younger).
I could have gotten back into the game industry after college if I’d wanted to, but by the time I finished, I’d entered the information systems industry as a software developer and had my sights on high-end IT work, leaving video games behind. Ironically, I still had a passion and love for game programming, and I found a parallel career writing books on the subject.
The Indie Developer Route
One can also make a good living writing and publishing games as an independent or “indie” developer, by self-publishing. That wasn’t really a very good option prior to Apple inventing the App Store, which really opened the market to indie developers like never before (and copycats have sprung up which is even better for self-made game developers, such as Google Play and Windows Store).
I am a proponent of self learning, of giving oneself an education through self study–if one has the discipline to learn without the structure of a formal course. When I formally exited the game industry, I continued learning, continued to have a passion for video games, and maintained my skills through writing books and working on my own hobby games, without that being my primary means of income. But, without discipline, self learning will be ineffective. You have to test yourself by pushing your boundaries.
In the context of game programming, that means learning new languages and SDKs that are out of your comfort zone, and working on your own hobby game(s) to test your skills as you continue to learn. You should be creating demos and games anyway, if you truly love game programming, but do so with the intention of putting your work into a portfolio and be mindful of how your work looks. Algorithms are great, but if you can display them graphically, that’s even better.
Where To Start Learning?
First, as an aspiring game programmer, you simply must learn C++, and learn it well! That means reading a dozen or more books on C++ to get a good breadth of understanding as well as a depth to your skills in certain aspects of the language. I highly recommend studying the C++ standard library and becoming proficient with iterators, lists, vectors, and similar constructs. Use them in your own games and demos, and write up a blurb about how you’ve used them. Make short tutorials to put into your portfolio if you prefer.
Yes, you do want to study other programming languages as well, but if you’re serious about formal employment in the game industry (i.e. with the likes of Electronic Arts or Sony of America), then C++ is your ticket. But, by all means, learn Java, C#, and Python as well–the experience will only help you, assuming you are highly proficient in C++.
The Book List
I did not intend to push my own books in this article, which is why I’ve recommended other authors for primary and secondary reading. However, my own portfolio is on this site and found here:
Here are two related articles that complement this one: