Followers

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

Wednesday, October 29, 2008

It's been a while...

...since I wrote in my blog. That's because I just crawled out of the long, deep, dark black-hole called crunch.

Unfortunately, crunch is still a reality in the game industry. While many people decry crunch as a moral outrage, the truth is this:

Crunch Happens.

I'm not kidding when I say that I have spent the last 90 days working 12 to 16 hours a day, 7 days a week. Well, I did take a long weekend at the beginning of September. Anyway, I have been working A LOT and I'm proud to say the my first game as a lead programmer was launched on time and will be ready for you in store shelves before Christmas.

Whether you are in the game industry or just hear about the game industry, you hear a lot about the C word (no, not Christmas!)

Some romanticize it: late nights with pizza and other food items littering the desks. Sleeping in the couch. Days between showers. You get the idea. Loss of vision. Partial insanity.

Others scorn crunch. They decry the lack of overtime paid, the way it takes them away from their family. The pizza.

I don't complain about crunch (nor do I complain about people who complain about crunch). The truth is, I'm a natural cruncher. Before I came to the game industry, I worked 12 hour days all the time running my own business. The difference now is that I get to do something really fun and I'm relatively sure I'm actually going to get paid for it.

It is also true that my wife still lives in Colorado (she hasn't been able to move to Dallas, yet) and so I have no family here and nothing better to do.

I'm also a newbie to the game industry, so I think I would have been disappointed if my first game went out with no crunch time. I guess that makes me a romantic.

I applaud the efforts of those who work hard to try to raise the quality of life in the game industry. I understand that it is harder on those who do have spouses and children they'd like to see occasionally. But I don't think crunch will ever go away. Because crunch is everywhere. Whether you are in the game industry, an application programmer, or a student trying to finish school--at some point you just have to do whatever it takes to get the job done so you can succeed.

That's not just crunch.

That's life.

Robert

Tuesday, July 29, 2008

To Infinity and Beyond

Well, I've been crazy busy these last few weeks! I just spent about 2 week in iterator hell trying to rework some code and I can tell ya I'm not all that fond of the C++ implementation of iterators! It seems like no 2 iterators want to talk to each other.

If you've been reading my blog, then you just about know my life story by now! Thanks for taking the time. On a related not I also wrote an article for GameCareerGuide.com on how I broke into the gaming industry. Take a look at http://gamecareerguide.com/features/578/no_more_it_for_me_how_one_tech_.php. Don't know how long it will be there.

So, now that you know more about me that you ever cared to, how would you like to know about my son, Stephen. He is also a game programmer and know works for Other Ocean Interactive in Charlottetown, PEI, Canada. I won't go into too much detail (he'll be writing his own blog soon, I'm sure), but his tale is interesting as well.

About 5 years ago I remember Stephen coming to me and telling me he wanted to make a living off of video games. He had a magazine article that discussed the three main careers at the time (art, programming, and QA). I thought that was a great idea. As programmer, I knew he would be making a pretty good salary, and it was a perfect match for his love of gaming.

At the time he was still completing high school, so we begain checking into colleges. Previously, Stephen had checked out Full Sail Real World education in Florida because he was interested in their music program (Stephen is a drummer). Now, we started looking into their Game Development program.

Full Sail seemed like the dream school to attend for this field. They offered a Bachelor's degree in 2 years and were totally focused on game development. Of course, the cost is beyond beyond!

I would like to say, for potential students out there, that the jury is still out on degrees from game technical schools. In a way companies are still a little leary of such schools because it it unclear whether the education you receive is on par with a four-year college. Most of the research I have done indicates that a traditional Computer Science degree with some emphasis on game theory is still the baseline requirement.

The one thing schools like Full Sail do offer is that you come out of the program having written at lest a couple of projects. You also come out of a school like Full Sail with a "game career" work ethic, e.g. work until you drop or drop-out!

So we chose Full Sail because I wanted to go into debt for the rest of my life, er, I mean because I thought that it was the best fit for Stephen's goals. Also, I liked the fact that the program resulted in a B.S. Degree, not just a certificate. My advise would be to steer clear of programs that don't offer an actual Bachelor's program In just about every industry, tech school certifications are almost meaningless (but not totally...anything is better than nothing).

Anyway, just before he went to Full Sail, Stephen and I had a chance to go to E3 (what I refer to as "the real" E3). I was mesmerized. I'm not kidding when I say that E3 changed my life! I remember thinking, "I have got to get into this!" An here I am.

One more life lesson. Getting the degree isn't any guarantee of getting a job. Although some people get jobs right out of school, it is more common that it will take some time. It took until April before Stephen found the right match. After many interviews, tests, and "Thank you for your interest" letters, he finally got a job offer. In fact, it was 1 week after I had accepted my job offer. It was a happy day at the Madsen family! (I wonder if there are any other Father/Son game programmers out there?)

If you are trying to break in to the game industry as either a student or otherwise, it will take perseverance, hard work, and a tough skin, but my advice is to keep moving toward the goal!

Where to from here?

So, enough about me already! From here out I'm going to try to write about my experience as a game programmer rather than my experience getting here. Maybe I can share some useful tips and trick along the way. Feel free to come along for the ride. :)

Friday, July 11, 2008

Running The Gauntlet Part 3 - The Interview

I jokingly refer to my on-site interview the "six hours of torture." For six hours I stood at a whiteboard assailed by questions as small teams of programmers threw scenarios at me to solve. Some required actual coding (no IntelliSense on a whiteboard) and others required design. I was told at the beginning that the goal was to test the limits of my knowledge.

We started with the basics: C classes and object, copy constructors and related issues, pointers and dynamic memory. We covered 2D related game math: trigonometry and applications of vectors and matrices. Break. Next we covered inheritance, polymorphism, containers, STL. Lunch. State engines, lerping, timing, quantum physics, the nature of God and the Universe. 42. Break. Why are you here? End.

I believe two strategies are relevant to this type of interview. The first is to apply good problem solving. Even if I didn't know a specific technical demand, I at least tried to analyze the question and form an approach toward the solution. The second strategy is to know what you don't know and ask questions. If I reached a point where I simply didn't know what to do, I said so.

I'm not sure if MumboJumbo's approach is unique, but I definitely agree with it. At each point in the interview, I was told that my problem solving skills where more important than my technical knowledge. Every time I reached a hurdle that I couldn't cross, we worked through that hurdle together. My interview was a two-way process in which information flowed in both directions.

I am happy to report that I have been working at MumboJumbo for almost 3 months now and I am in programming heaven. Someone just asked me the other day if working in the game industry had lived up to my expectations and the answer was a resounding, "Yes!" I may be old, but I'm not too old to have that naïve kind of joy that I am finally doing what I always wanted to do (and getting paid for it!).

I hope my story inspires someone out there who, like me, wants to get into the game industry but feels it might be too late. The game industry is not just for twenty-something year olds just out of college. In fact, the industry is beginning to realize that there are important lessons that can be learned from traditional IT. As an IT professional, you have those skills.

The key to breaking into the game industry is twofold. First, prepare. Looking back, it took me five years of preparation (along with making a living) to come to a point where I was ready and marketable. Second, find the right company. Not every company will appreciate you or overlook your obvious lack of game-centric experience. But the right companies will. And you wouldn't want to work for anyone else.

In future episodes...

One thing I have learned about being a game programmer...I don't have a lot of time to blog! But I would like to continue writing about my experience and sharing tidbits of technical and other gaming wisdom along the way. Stay tuned.