Followers

Friday, January 15, 2010

So, you want to be a rock star?

I thought I would start the year with a series of posts related to getting into the game industry. I get emails from students and others all over the world asking me questions about this.

In some ways, the game industry is like any other industry. You get an education, typically with a major in the area that you are targeting. Once out of college you start looking on job boards, etc., for jobs that interest you and send in your resume. Like any other job, a college degree doesn't guarantee you a job, and it sometimes takes months to find your first one. Once you get your first entry level job, you work your way up the ranks. Sounds easy, right?

The Creative Industry

Although the path indicated above will work in general, there are some aspects of the game industry that set it apart. People often talk about "breaking into the game industry" in the same sense as people talk about "breaking into the music industry" or "breaking into acting". Because the game industry is a creative field, their are several barriers to getting a job that you don't find in other industries. Saying you want to be a programmer is like saying you want to be an accountant or plumber -- learn the skills and you'll eventually get the job. But saying you want to be a game programmer is more akin to saying you want to be a rock star. Not only will you need the skills, but you'll have to be the best of the best just to get considered. The same is true of most jobs in the game industry.

What makes the game industry different? Here are a few thoughts:

  • The game industry requires higher levels of technical skills compared to similar jobs in other industries.

    Game programming typically requires cutting edge skills to create cutting edge software that pushes the envelope of the technology. Art must be top notch. Designers must be exceptionally creative. Producers deal with the worst possible scenarios for keeping their projects on track.

  • The game industry requires higher levels of creativity.

    Making games is still more of an art than a science. Just like it's hard to define what makes a great song, it is hard to define what makes a hit game. Everyone making a game is required to implement technology in creative and innovative ways. For example, a graphic designer has to do good art. But a game artist has to do good art and make it move or make it 3D or make it any number of things, all while keeping within a memory or resource budget! Programmers have to make computers do things that they don't want to do while remaining usable, responsive and fast. You get the idea. Also, some people are able to break into the game industry by demonstrating their creative talent alone, completely bypassing the traditional route.

  • The game industry is part of the entertainment industry.

    Like the film and music industries, the game industry delivers entertainment. This has two consequences. First, our products are non-essential in the sense that people could live without them if they had to. Second, we provide a way for people to escape reality or experience alternate realities or just have 15 minutes of fun! In other words, if people are going to shell out money for our product, then it had better meet whatever emotional need they had for buying it in the first place!

  • The game industry has an aura of celebrity.

    Gamers aren't just consumers of our product. They become fans. They perceive those in the game industry as wizards who concoct a special magic. Although the game industry hasn't quite reached the level of celebrity as the film and music industries, it is still perceived as a field where it is a privilege to be involved. No one talks about breaking into the banking industry, but you have to break into the game industry. This means, for example, that getting in might be as much about who you know as it is about what you know.
So there it is. I'm not suggesting that other industries don't require just as much skill and commitment. I'm simply pointing out that the nature of the game industry and the aura surrounding the entire entertainment industry make getting a job in the game industry a little harder.

That's it for this post. Next week I'll dig a little deeper into the ramifications of trying to break into a field based on the entertainment industry.

Monday, January 4, 2010

A New Year's Resolution

Well, it's the beginning of a New Year and the start of a new decade.

One of my resolutions this year is to make regular entries into my blog. Most of my past blogs have been about my entry into the game industry. I have thought a lot about what kind of content I wanted to move forward with. Should I share my genius insights into game programming? Rant about the projects I am working on? Or continue sharing my roller-coaster ride through the game development world?

There is a plethora of information out there about game programming techniques, and people far more qualified than I to write about them. So, although I may share a trick or two as I go along, programming will not be my main focus. Instead, I will continue to deal with the basics: how to prepare for or break into the game industry, basics on success in this field, and occasionally a new programming trick I that has helped me.

So, here's to a great new year. Thanks to all of you (yes, all 5 of you!) who have followed my blog and left feedback. As always, feel free to post questions or even suggest topics that you would like me to cover.

SO, what am I working on anyway?

I am currently working on a project whose name I cannot disclose. I can mention that it is being co-developed for the iPhone and PC, and possibly the Mac, and that it is a 2D retro platforming shooter. I think it will be great fun and hope you'll all pick it up when it is released. One of the big challenges of this project has been learning a whole new platform of skills. This is my first project on the iPhone, and my first project to ever use OpenGL. As you probably know, you must use a Mac to develop for the iPhone, and this is also the first real work I have done on a Mac. In addition, the iPhone uses a variant of C/C++ known as Objective C, and I have never used objective C. Finally, I have had to learn how to use the in-house game engine that we are using to accomplish all of this. In total, I have had to learn FIVE new technologies for this project: Mac Leopard, OpenGL, Objective-C, XCode (the development tool for the iPHone), and the new game engine.

This underscores my first point of the year for those who may be trying to break into the game industry: FLEXIBILITY.

No matter what your ambitions (programming, art, design), the tools of the trade are constantly changing. There is a dichotomy between the need to generalize and the need to specialize, and it may be difficult to know exactly how to balance these two extremes. For example, I often get questions about which programming language to focus on from those who are interested in game programming. The answer depends on what type of game development you are interested in: AAA titles? Web based? Mobile gaming? I'll cover this question in more detail in a future blog. The important idea is that two years ago I would have never told someone they should brush up on their Mac/Xcode/Objective C skills because at that point most of this technology didn't even exist (or at least, wasn't being widely used for game development).

Being in the game industry (as with many technology careers) means you must certainly specialize in something (e.g. C++ programming), but be aware of almost everything else so that you can easily change gears and pick up a new skill when the opportunity presents itself. Before now, I would have never marketed myself as an iPhone developer, but I knew I could pick up the skill because I have had plenty of experience programming.

If you are currently in school, try to expose yourself to a wide variety of technologies. For example, if you are a computer science major, take courses in a wide variety of programming languages and topics. You might not think it is important to learn databases or web development if your target is to be a game developer, but those are exactly the technologies that are being used for the burgeoning social gaming platforms (think Facebook and MySpace). So, even if you focus on a core language, make sure you at least get exposed to other languages.

I would also recommend an inter-disciplinary approach. First, choose which area of game development you are really interested in (e.g. programming, art, design, or production). While you focus on that area, take classes (or read books, etc.) on other areas so that you understand how they work. For example, every programmer should have a basic understanding of how art is created for games and the tools that are used. In my current project I have had to do a lot of work that would typically be done by an artist (e.g. convert and resize art assets). Artists should understand the basics of programming and how that might affect the art they create. Designers and producers should understand the basics or both art and programming and how it impacts them.

As a programmer, I have read over 20 books on programming, but also several books on game design, and a book on game production. I have taken an online class in Maya, and have become proficient in Adobe Photoshop. Additionally, I have programmed in over 10 different languages (my core skill). If you are having trouble deciding on what your focus should be, I would suggest scanning the job boards at sites like Gamasutra.com and Gamedev.net. Look at the types of jobs that are available and the skills they required. Some will be very focused, such as a job requiring experience with the Unreal Engine. Others (often smaller companies) will ask for individuals with a wide variety of skills. Which jobs sound the most enticing to you? This will give you an idea of where you might want to focus.

In closing, while specialization is important (e.g. you must have one core skill that you are completely competent at), it is also important to have a general background of knowledge that you can draw from so you can adapt to change and new opportunities.
Thanks for reading! I hope to be diligent and add a new post each week, so stay tuned and leave your feedback.

R