Origin Story: Becoming a Game Developer
Over the past few weeks I have been asked over a dozen times how I got into the Games Industry, so I thought I would write it down.
TLDR; My first Console was a SNES. I learned to program in High School. I attended Cornell University and got a B.S. in Computer Science. My first job out of college was as a network tester on Gears of War 2 & 3. I joined 343 industries as a Web Services Developer in January of 2010, and recently shipped Halo 4 on November 6th 2012.
In the Beginning
My story starts out in the typical fashion I fell in love with Video Games after my parents got me an SNES as a kid. However, here is where my story diverges, my career in the games industry was not decided at 7.
In fact I had already chosen my career a few years earlier. When I was 5, I announced to my mother that I did not need to learn math because I was going to be a writer when I grew up. I had an active imagination, and loved exercising it by writing stories of my own. My first major work was a story about ponies entitled “Hores.” Luckily my parents would not let me give up on math, and helped me with my spelling.
It turned out that I actually did enjoy math, I just was ahead of my classmates in comprehension which is why I found it boring in grade school. In Middle School I was placed into the Advanced Math program along with about 25 other students selected to take accelerated courses. I enjoyed the problem sets and challenges, and more importantly I excelled at them. This put me on Mrs. Petite’s short list of students to recruit.
The Way of the Code
Mrs. Petite taught Computer Science at my High School, and she notoriously recruited any advanced math or science student to take her class. She was stubborn and didn’t take no for an answer so Sophomore year instead of having an extra period of study hall, like I originally intended, I was in her Intro to programming class, writing a “Hello World” application in Visual Basic.
Mrs. Petite quickly became my favorite teacher and I took AP level Computer Science classes Junior and Senior year learning C++ and Java, respectively. We learned programming basics, object oriented programming, and simple data structures with fun assignments like writing AI for a Tic-Tac-Toe competition, programming the game logic in Minesweeper, and creating a level in Frogger.
During High School I began to realize that I wasn’t just good at programming, but I truly enjoyed it. Computer Science wasn’t just a science, it was a means of creation. Like writing, programming gave me the power to start with a blank canvas and bring to life anything I could imagine.
“Programming gave me the power to start with a blank canvas and bring to life anything I could imagine.”
Throughout Middle School and High School I played my fair share of video games. Most notably I acquired a PlayStation and raided dozens of tombs with Lara Croft, and played Duke Nukem 3D my first First Person Shooter, but games were still not my main focus. I ended up spending more of my time programming, playing lacrosse, singing in choir, participating in student council, and spending time with my friends. Video Games were great, but I still had not decided to pursue a career in the Games Industry.
I graduated from High School not only having learned to program in Visual Basic, C++, and Java, but with a passion for programming. In the Fall of 2004 I decided to continue on my coding adventure by enrolling in the Engineering School at Cornell University focusing on Computer Science.
I entered Cornell University expecting to major in Computer Science, but to be sure I dabbled in other subjects Philosophy, Evolutionary Biology, and Civil Engineering before declaring my major. To this day I still have a diverse set of interests and I enjoyed all of these subjects immensely, but none of them lived up to the joys of coding.
College was this beautiful, wonderful, stressful blur. I ran on massive amounts of caffeine and memories of crazy weekends spent with friends. We worked really hard, but played really hard too. Even with all the pressure, stress, and deadlines I was having the time of my life. The classes were fast paced, I was being challenged, and I was learning an immense amount from Data Structures to Functional Programming to Graphics to Security.
Sophomore year I declared myself for CS, and also became a Teaching Assistant for CS 211 (Object Oriented Data Structures and Programming). In addition another immensely important event happened in the fall of my Sophomore year: I bought an Xbox 360, and Gears of War. I loved the game, and spent many nights during winter break staying up till 2am chainsawing locusts. I also spent a significant amount of time playing Viva Piñata that break, like I said diverse set of interests. This new console, some fantastic games, and the Xbox Live enabled social experiences reignited my passion for gaming. Now I began to consider Game Development as a career.
After Sophomore year I took a somewhat unconventional but completely awesome internship at Stanford’s Linear Accelerator Center (SLAC). I lived in a house with 20 brilliant physics majors, learned about black holes, dark matter, and quantum computing while helping to manage the Batch farm which provided all the computing power for the physicists working at the center. It was an absolutely amazing experience.
After Junior year I once again went West for the summer. This time to Redmond Washington as a Microsoft intern working on Windows Live Experiences (WEX). During that summer I got to exercise my coding chops and most importantly fully solidified the opinion that I wanted to be a developer. I left the Pacific North West at the end of summer with two job offers in WEX, but by then I knew I really wanted to work on games. So after some negotiation and another round of interviews I managed to secure a 3rd offer in Microsoft Game Studios as a Software Engineer in Test working on the Networking and Co-op of Gears of War 2. I was beyond thrilled.
I graduated from Cornell in 2008 with a Bachelors of Science in Computer Science from the Engineering School. It was a bittersweet moment, I had loved my time at Cornell and most of my friends were staying on the East Coast, but I knew exciting things were waiting for me in Seattle.
The Real World (Seattle)
In July of 2008 I moved out to Seattle, and joined the Microsoft Game Studios team working on Gears of War 2. I quickly was thrown into the fire as I was assigned ownership of testing the co-op experience. It was terrifying and exciting to be given so much responsibility right away. I eagerly jumped into the project and joined the team in crunching immediately after starting.
The first few months in Seattle were a whirlwind as we pushed to get the game through to launch. The hours were long but I was passionate about the project and I was learning a lot. It was an amazingly gratifying experience the day Gears of War 2 went Gold. When the game launched I had another immensely satisfying moment; my computer science best friend from college and I played through the game in co-op and at the end we saw my name in the credits. Life Achievement Unlocked!
I love social game experiences, both collaborative and competitive; So post launch I focused a lot of my energy on improving my skills in the areas of networking and services. So as we moved into sustain on Gears of War 2 I began focusing on the matchmaking and networking experience. I spent my free time diving through the Xbox XDK, learning about the networking stack, and playing around with Xbox Live Services. As work began on Gears of War 3 I took ownership of testing the matchmaking code and became very involved in dedicated servers for multiplayer.
In the Fall of 2009 I was asked to temporarily help the fledging 343 Industries studio ship one of the first Xbox Title Applications, Halo Waypoint. I knew it would mean extra hours and a lot of work, but the opportunity to work on new technology, and make connections in other parts of Microsoft Game Studios was too good to pass up. I dove headfirst into the transport layer of the Waypoint Console app, and helped get them through launch in November 2009.
The next few months I began to evaluate what I wanted to do next in my career. Working on Gears of War 3 was a great opportunity, but I really wanted to do be a developer. The parts of my testing job that I found most satisfying were designing systems, coding internal tools, and researching new technology. So when the opportunity to join 343 Industries as a developer appeared in January 2010 I jumped at it. It was a perfect fit. After reaching out to my contacts in 343 and then participating in a full round of interviews I was offered a position on the team as a web services developer to write code that would power the Halo Universe and enable social experiences; I excitedly accepted!
One of my first tasks at the studio was working on the Spartan Ops prototype. I was elated that I got to utilize both my technical and creative skills to help create a brand new experience; my Spartan adventures were off to an amazing start! The rest is history and a few years later we shipped Halo 4. After launch I once again had a intense moment of elation after playing through Halo 4 on co-op with my college bff and seeing my name in the credits. It never gets old.
Some thoughts, all my own and anecdotal. To be successful as a Game Developer first and foremost you have to be passionate about what you do, whether it is programming, art, design, writing, or something else. You need to be passionate about games and your chosen field. In addition I believe my love of learning has been a huge asset in my career development and growth. I am not afraid to dive into new technologies, or get my hands dirty in a code base I do not understand. I believe doing this helped me get into the industry, and continuing to do so makes me valuable. Lastly do not be afraid to ask for what you want, no one is going to just hand you your dream job. Of course there is a bit of luck and timing involved in breaking into the Industry, but working incredibly hard is the best way I know to help create those opportunities.
You should follow me on Twitter here
- Game Development, Programming, Web Services
- March 30, 2013