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

Saturday, July 25, 2009

Still glad to be here....

I think I have set some kind of world record. Since being laid off in January, I have applied for almost 300 jobs. From those, I received about 20 followup calls, phone interviews, and programming tests. I have had only 2 face-to-face interviews. The result: 0 jobs.

This should really be no big surprise. According to some reports, over 5000 people were laid off in the game industry alone in 2008. There were 10,000 layoffs from Microsoft alone. The result is that the job market for both game programming and general IT has been flooded with job seekers. Employers have pretty much had the ability to hand-pick each position from tens, if not hundreds, of applicants.

This knowledge made it a little easier to accept 300 rejections, but I have to admit I was feeling pretty discouraged. In less that 1 year my game programming career seemed to be over! I figured this was another world record: world's shortest game career.

Of the 300 positions, about 75 were for general programming positions in IT. As much as I wanted to stay in the game industry, I needed a job even worse. So, I figured I would have to go back into the world of business programming.

One thing that surprised me is that I did not receive a single inquiry regarding any of the general programming jobs I had applied for. All of the followup I received was for game-related jobs. I expected it to be the other way around. As it turns out, being a game programmer apparently has the advantage of being a specialty. There are far more general programmers out there to fill IT positions, which probably explains why I didn't get a single bite for any of those jobs.
However, game programming is a specialized field, and this means that there are fewer game programmers out there to fill those jobs. So, even though I kept getting turned down, at least I was getting interviews!

Robert

Sunday, June 21, 2009

Still hanging (in there)!

Well, I'm still between jobs. Since I was laid off last January, I have applied for over 250 jobs. I have had a few interviews, but so far, no job offers. So far I think I have the world's record for the shortest career in the game industry! But I have not lost hope...never give up...never surrender!!!

I find myself in a difficult position of someone who has a LOT of programming experience but not quite enough game programming experience. The other shortfall is that almost all of my experience is in 2D games, while most of the jobs out there are looking for people with 3D experience. It really doesn't matter to me whether I work in 2D or 3D games...I just love to program games. In fact, I just love the game industry, so I have also applied for positions such as tools programmers and web developers for game companies.

I'm sure that the biggest reason I don't have a job yet is just that there are SO many people out there looking for work. With large layoffs from big companies and lots of small layoffs from smaller companies, there are literally tens of thousands of people out there right now vying for the positions. This means that employers can be picky and choose exactly the person they want. Most of the positions out there are looking for very experienced talent with very specific skills. This must be a difficult market for anyone who is trying to break into the game industry as well.

If you are someone new trying to break into the game industry (or even someone, like me, who is in between jobs), then don't give up! I know I am not. Part of my strategy has been to widen the scope of my search. I will now take a job anywhere in the US, and I am considering some foreign countries as well. I have also developed customized resumes for each type of position, and usually customize each resume exactly to the job I am applying for.

So, don't want to bore you too much. In the meantime, while I am officially unemployed, that doesn't mean I am not busy. I am teaching programming courses online, and I am also working on some game projects of my own. So stay tuned and soon I might be able to tell you about the opening of my own independent studio. The truth is that, whether someone is paying me or not, I will ALWAYS be a game developer.


Robert

Monday, February 2, 2009

Fear, Trembling, and Harsh Reality

If you've followed the news in the game industry for any time, then you already know it's a volatile industry. Studios open and close at the the drop of a hat. People get hire to meet the needs of the current project then get let go when the project is complete. And then there is the spectre of outsourcing--the job that gets outsourced could be yours. In short, if you are serious about making a living in the game industry, you had better be prepared for a little excitement, and I! not talking about the good kind!

I'm going through an exciting time right now. The studio I have been working for has laid off over 50% of their workforce in the last year, I survived the first wave of layoffs back in July, but in January the remaining production staff was let go. So, just less than one year after breaking in to the game industry, I find myself broken out.

The reality if the game industry is this: if a studio can't make a profit, they will cease to exist. Unfortunately, the easiest way for any company to cut costs is to cut employees.

Although no industry is "layoff" proof, the games industry carries a much higher risk. Part of the reason is the nature of a game project. A game may only needs a few people in the beginning, but this may grow to 20, 50, ire even hundreds of employees when in full production. When the game is done, the company may find itself with a glut of employees and no work to do. This scenario is a human resource nightmare. Most studios try to have multiple projects in the works and then try to schedule those projects so the low time in one project corresponds with the high time of another, but sometimes it just doesn't work out.

Another tool used by many companies use to cope with the variable nature of game projects is outsourcing. This may range from subcontracting with a local art studio to create some assets to contracting with a team of programmers in another country. If a company can get the same quality of work for less cost, then who can blame them? Sure there are a lot of pros and cons to outsourcing, but it often boils down to the bottom line.

Several factors combined that led to the layoffs at my last studio: changes in the casual games market, a slow economy, poor holiday sales, and access to lower-cost labor oversees. Even the big companies such as Microsoft and EA have announced layoffs. The bottom line is that no one in the industry is immune.

There are some steps you can take to prepare yourself should for the worst. The key is to always be prepared to quickly find that next job:
  • Keep networking. You should keep track of every single person you meet while you are employed. People move around a lot in the game industry, and your present coworkers might be the one who helps you find your next job.
  • Get active on LinkedIn or other such networks.
  • Don't burn your bridges. Prior employers are an excellent resource when you find yourself without a job (as long as you didn't shaft them on your way out the door).
  • Keep your portfolio current. The day you get fired isn't the best time to decide to gather samples of your work.
  • Keep your website and other professional profiles current.
  • Keep up with the latest technologies changes in your profession.

It's also a good idea to have a plan for how you might survive a few months between jobs. Examples include:

  • Always have some money saved or invested that you can gain immediate access to.
  • Avoid long-term commitments such as leases and large loans as much as possible.
  • You might consider getting job-loss insurance on loans you do have if it is available. Such coverage could pay off your debt if you lose your job.
  • In the United States, make sure you file your unemployment claim on your last day of work.

I'm not saying - did all if these things, but I did most of them. I'm a little anxious about finding my next job, but I'm not devastated and I have some resources in the meantime.

One more thing: be flexible. If you're not prepared to move across the country a few times during your career, the game industry might not be the right choice for you.

Wish me luck!

Friday, January 16, 2009

Post-mortem of a Casual Game

My last post dealt with the issues involved in creating a sequel. The project I was working on was a casual game targeted for both retail and downloadable sales. Although the development time for such games is much shorter that that of AAA titles, the process involved is very similar.

As promised in my last installment, this post will focus on some of the things that hindered the development of my last project. If you have read post-mortems of any games, you will recognize many of these problems since then tend to recur in project after project. You know the saying..."The best laid plans of mice and men..."

So, here goes:

Staffing Issues

The game industry is always a roller-coaster ride when it comes to staffing. There are many factors that can affect staffing including layoffs and reassignment to other projects. Midway through my project, the production team was cut in half. Unfortunately, the deadline for the project could not be moved, so this meant that those who were left on the team were going to have a lot of work ahead of them.

Scheduling Issues

The initial schedule was created by one producer, and then assigned to another. Since different people have different methods, this resulted in the entire project schedule being re-written midway through the project. It was several weeks before we even knew where we stood and what it was going to take to complete the project on schedule.

Design Bottleneck

Unfortunately, the same cutbacks that affected the production team also affected the design team. There was now only one designer, and he was up to his neck working on other projects. Many design decisions were made by the development team, only to be later overridden by the designer when he finally had time to focus on our project. This resulted was time spent on work that either had to be re-done or never even ended up in the game.

Feature Creep

In light of the above problems, it seems like the obvious choice would be to cut features. Alas! Instead, features were added. It was felt that these features were critical in giving the game an edge in a very competitive market. This insured even more overtime for an already taxed development team.

Unmovable Deadline

Like many games, this project was slated for Christmas release. The need to get the product out for the Christmas season was critical, so this deadline could not be changed. To make matters worse, one of the distributers decided they needed the game 2 weeks ahead of our original schedule, effectively cutting two full weeks off of an already tight schedule.

Lack of QA

The QA department had minimal staffing due to the above mentioned cutbacks. This meant that everyone at the company became QA. Although we all did a heroic job, there simply was not enough time and resources to properly test every aspect of the game.

The End Result

No game goes out the door without any bugs. My last project was no exception. We knew we were releasing a product that would have problems, but at the end of the day we all knew that we had done the best possible job we could do under the circumstances. Luckily, there was time after the release to continue fixing bugs and patches were released. However, no one likes to buy a game with obvious bugs, and this definitely did not look good on the company. Regardless of the problems, I was proud to be a part of this project. I can honestly say that everyone involved gave 200%. We were amazed that we could complete the project as well as we did, given all of the difficulties we had.

Next post: Fear, trembling, and harsh reality.

Monday, December 1, 2008

Keeping it Real, man....

Hello again everyone. Well, now that I have had some sleep, not to mention a little break during Thanksgiving, I thought I'd talk about what has been going on since the Great Crunch.

The last project that I worked on was a sequel to an existing franchise. As much as possible, I'd like to be open and honest in this blog to give everyone an idea about what it is like working in the game industry, so I'd like to talk about the ups and down we had developing this sequel.

Being a sequel, this new game had many features in common with its predecessor. We were able to use a lot of the same code, and even some of the same assets (e.g. art, effects, user interface screens). In fact, one reviewer suggested that too much of the content was simply copied from the previous game. Although everyone is entitled to his or her opinion, I can tell you that nothing is further from the truth.

Feature Re-Use

When you have a game that has a large following, it is expected that the sequel will have some continuity. Therefore, you don't want to make the sequel entirely different from the original. With this sequel, we decided to keep the basic mechanics of how you shoot and match balls in place because this is what players have grown to love. On the other hand, we also added some radical new features including a progression map, a deep story, and voice-overs, which had never been done. Although this might sound like "fluff", it took a great deal of work and a great deal of programming to pull it off. Even then, we weren't sure if players would like the new direction we had taken things. Although we have received comments from both those who did and did not like the new features, overall the response has been positive. Should we do another sequel, the challenge would be to once again provide a little bit of the new with a little bit of the old in a way that satisfies veteran players and entices new players.

Code Re-Use

Sure, a lot of the code was re-used from the previous game. But that is more a testament to good design than anything. In many cases there is no reason to re-invent the wheel when you are doing a sequel. However, it is very rare, indeed, that code can be simply recycled and used without modifications. I would estimate that 70% of the existing code had to be modified, and another 50% of code was added completely from scratch to incorporate new features.

For example, we wanted a new mode where two chains of balls could approach each other face to face. We also wanted a computerized AI opponent in this level. Neither of these ideas had ever been incorporated into the previous games. Creating the ability to have a computerized opponent meant writing completely new code as well as modifying almost every piece of existing code to allow for this new possibility. In the end, we only used the AI in a single mode, but the code will now allow an AI to be added to any level.

To allow for two opposing trains, the entire class (a class is a group of related code) that handled train movement had to be completely re-written. This re-write impacted all levels, even if they didn't use opposing trains, because all levels share the same core code for managing the balls, collisions, matches, etc. During the re-write, new bugs where introduced that impacted every level of the game (not just the new levels). For a while the balls would spin off wildly and go the opposite direction off the screen! Not only did the bugs have to get fixed, but all of the interactions had to work exactly as players would expect them to work. I spent many long nights perfecting that particular piece of code.

Asset Re-Use

At first glance, it might appear that portions of this game are re-used directly from the previous version. If you look closer, you will discover that this is rarely the case. For example, all of the balls were re-designed. All of the background art is completely original. The only thing I can think of off the top of my head that was not re-designed is the actual shooter. We had plans to change this but simply ran out of time. Some effects (such as coins falling) were also re-used, but most effects were revamped as well.

Although putting out a sequel can be slightly easier than creating a game from scratch, it isn't as easy as some people may think. We spent just as much time developing the sequel as we did creating its predecessor, if not more.

Well, that's it for this post. I'll try to post more often now that I have time. In this blog I have mostly focused on things that went right with the game. Next time I'll talk more about what went wrong!

Till then. Keep gaming (and/or programming if that's ur thing).

Robert