About this blog
Ramblings of an old application programmer who's life has new meaning as a game programmer.
Entries in this blog
I haven't posted in a while. Mostly it's because I've been so busy working. Terrible problem...too much work!
As an independent developer, I depend on contract work to make an income. That means that I spend a lot of time working on other people's stuff. Not that I'm complaining. I enjoy the work. It is challenging and still allows me to flex my creative muscles.
I'm currently in a lull where I only have one contract project (instead of three at once!).
That means I actually have time to do other things like blog and WORK ON MY OWN GAME!
The Contract Trap
I have read it in other people's blogs and heard it on other people's podcasts: Once you start taking on contract work then work on your own game will suffer! The truth is that you have to meet the milestones on your contracts (if you want to get paid) and you don't have to meet the milestones on your own projects. So, my own game keeps sliding while other people's games get done.
Don't get me wrong...I love contract work because I love things like food and cars and having a roof over my head. Being able to do contract work means that I get to stay independent, make a living, and still do what I love which is program games.
When I look back over the last several months I am struck wondering where all the time went. I think the most difficult part of being a self-funded Indie is trying to maintain the balance between making a living and working on my own game, which is the reason I decided to go Indie in the first place.
So, now that I have some time, I also have some time to re-group and re-evaluate. I'm getting 'back in the game' and ramping back up on development.
Keeping the Flame Burning
It's easy to get discouraged. Over a year has gone by since I started my game project and I don't feel like I have enough to show for it. I remember last year thinking that I wanted a playable demo done by the end of 2010. Now that is my goal for 2011!
However, I keep reminding myself that I'm in this for the long haul. Obviously, I have to survive and that means taking on contract work to have an income. So, I just remind myself that no matter how long it takes I will finish my game.
Connecting with People
It can be really easy to fall into the trap of never interacting with other people. After all, I work from my home and my development team is distributed and online. Weeks can go by without hearing another developer's voice!
One thing that has really helped me is making it a point to regularly interact with other people involved in the project. My designer recently "forced" me to setup regular meetings so we can talk about the game. My initial choice was to work in isolation to 'get some coding done'. The truth is that talking with others about the game always gets me more motivated to actually do some more work on it.
Isolation bad. People good.
I am a great believer in the Bible, that is, the Game Design Document. Although the urge as a programmer is to get coding as soon as possible, I know the benefit of a good design document from experience. Without it, your ideas get fuzzy and you end up doing a lot of programming that is wasted on fleeting ideas.
So, my first step was to start creating a game document. I found that completing the design document helped me turn my fuzzy ideas into a set of concrete specifications.
The accomplishment of getting that first page of the game design document inspired me. Now there was something concrete to show for my game idea. The more I wrote the more progress I saw. This is another benefit of creating a design document first: instant gratification.
Once I finished the game design document, I had a solid reference to use to begin programming. I'm the kind of programmer that tends to work in spurts. One weekend a spurt happened and I created the first prototype for the game.
The more I accomplished, the more I was invested, the more I was motivated.
I don't want to give you the idea that this has been easy and that I have achieved all of my goals. The reality of survival has side-tracked me several times. It's too easy to spend all of my time on projects that actually make money.
Being independent is the world's most complex balancing act. If you aren't careful, you'll find yourself back in the place where you are doing everyone else's projects but not your own. Once you start down that path, it's easy to get detoured from your game. If you find yourself detoured, get back to the main road!
I'm not suggesting that anyone be irresponsible. I understand that human nature (and sometimes survival) means going for the money first. However, with discipline and planning, I have always been able to get the game project back on track while I survive.
One final word. Just last month I had another spurt and created a web page for my new studio. I immediately sent word to all of my friends, family, and colleagues to check it out.
Twitter. Facebook. The whole deal.
Frankly, I was scared to death.
Going public meant that this was more than just a dream or idle fancy. Now everyone that is important to me knows that I am trying to make it as an indie. Some of them probably think I'm crazy. Others will understand and respect my decision. But the fact is, the word is out and I'm really not good at failure. Now, more than ever, I am motivated to succeed because, in a way, I am accountable to those who are rooting for my success.
If you're unemployed and wondering what happened to your game development career, I hope this article inspires you to do something more. Even if you already took that job programming for an accounting firm, you can still make a way to do what you love--make games. Make your own game.
Independent by default. For me, it's either this or boring. I now work just as many hours as when I was employed, if not more. The sense of accomplishment and the satisfaction that I am still doing what I love more than compensates for the extra time.
3:00 A.M. Tired, crazy, happy!
The new era of indie games
I remember a time about as eight years ago when I was first researching the game industry. The general consensus at that time was that the days of the small "garage" team game developer was over. Games now cost millions of dollars to produce and thousands of man hours. Furthermore, specialization was the norm. Not only were their designers, programmers and artists, but also specialists inside of each of those fields. The conclusion: making a game on your own or with a few talented friends was no longer an option.
Fortunately, the indie game developers weren't listening.
Now, more than ever, the environment and technology are open and supportive to small, independent games. An abundance of tools have cropped up that target the small indie studio. Torque, Unity, XNA, and PlayFirst are just a few examples of low cost or free game engines. Just as important are the avenues of distribution that have opened up. Services such as Steam, XBox Live Arcade, Kongregate, and many other services have come up that directly focus on smaller games. Finally, there are new platforms that make sense for the indie game including the PC, web, Facebook, iPhone, and Windows Mobile. The point is that the barriers of entry are now lower than ever.
I'm not saying that it's easy. In fact, the competition is overwhelming on all of the promising platforms I named above. But there is one thing to keep in mind: Three years ago, few people took game development on the iPhone seriously. Now it is one of the most prolific platforms for games. The same is true of Facebook. If these examples are indicative--and they seem to be--there is a huge market for the more "casual" games that indie studios are best at.
No, I'm not talking about getting a bunch of kids in a room to play your next game. I'm talking about the need to focus or you'll never get anything done! There are so many variables to consider when first starting an independent game that it can be overwhelming.
Once I had decided that I was going to get serious about making my own game, I was immediately lost in the details. What kind of game did I want to create? Which platform and language should I use? Should I use a game engine or should I just start from scratch?
Decisions, decisions, decisions.
Ultimately I used two criteria to make these choices: experience and resources.
I asked myself, "What programming platform do you have the most experience with?" Although I am fluent in C++, I also did a great deal of development in Visual Basic and C# in my previous business. I had a lot of experience in .NET web development as well. Knowing that anything done in C++ doubled or tripled development time, I decided to use on C#. I also decided to use the web because I could leverage my existing knowledge of ASP.Net development. This would allow me to target the web as well as Facebook with my game.
I realize the C# and .NET aren't the most common tools to use for game programming, but this leads to the second criteria: resources. In the beginning, I knew the only resource that I had was me, so I chose the platform that would allow me to produce meaningful results in a reasonable amount of time.
I also knew that my greatest limitation was art. I am no artist! So, when it came to picking a game design, I chose a type of game that was not art intensive. I needed a game where even I could supply the art if needed, and hopefully I could get a real artist involved at some point in the future.
So, there's my focus: a web based game--written in C# and ASP.Net--that doesn't need a lot of art. Having this focus is what allowed me to move forward. My advice: moving forward is always better than not moving!
It's been a while since my last post. Part of the reason is becuase life has been a little chaotic since then! Unfortunately, I was laid off from my previous studio, and since then I've been working at starting an independent studio. The way I see it, going indie is the only choice I have right now if I want to keep making games. In other words, it's Indie by Default!
This article was originally publised in the February 2011 issue of IGDA Perspectives. I will be reposing it here as a three part post so everyone can enjoy it!
In the computer world, default is the state of rest--that which occurs when nothing special is going on. It is the status quo. Over the last three years, it has been my experience that the default state of employment in the game industry is unemployment.
Since entering the game industry in 2008, I have had a wild ride. First, Dallas followed by lay off in less than a year...then a seven month job search...next Canada followed by layoff within a year...more job search. You get it. I've been unemployed about as much as I've been employed. Of course, I knew the game industry was infamous for such instability before I ever decided to point my career in that direction. I also realize that there are thousands of others from the game industry who have faced similar or worse situations over the last several years.
When life gives you lemons...
The first time I was laid off, my entire focus was on finding another job. Seven months and 300 resumes later, I found another job as a game programmer. Looking for a job was literally a full-time affair. Eleven months later I was laid off again.
After the second layoff, I decided to turn my disadvantage into opportunity. Given the current economy, I realized that finding another job would be a multi-month adventure. This time, I wanted to do more with that time than just look for the next job. I also wanted to continue working at what I love: making games. After all, that's why I got into the industry!
Before I entered the game industry I had been self-employed. My longstanding joke was that a self-employed person is just an unemployed person with a business card. So here I was "self-employed" again. Since I already had some experience as an independent programmer, becoming an independent game developer seemed the next logical step.
I have to admit that having been self-employed for the last 15 made it a little easier. I had a lot of resources to fall back on such as previous clients and online avenues of revenue. Since I was already familiar with the ropes of being self-employed, I decided to spend about 50% of my time working for pay and the other 50% working on my game. Somewhere in there I would keep my eye out for promising jobs.
The opportunity of independence
Anyone who has been involved in making games for someone else has also thought of ideas for their own game. But there are real barriers to making your own games while you are employed for another game studio. Generally, as an employee, you must sign non-disclosure agreements and non-compete contracts that essentially block you from developing your own games. What's theirs is theirs. What's yours is also theirs. Being unemployed generally means that you are free of such agreements.
Another new resource you suddenly discover as an unemployed person is time. Now that you're not crunching 12 hours a day, what are you going to do with yourself? Catching up on the last three seasons of Lost will only take so much time! The key is to find a way to balance what is essential (such as making enough money to survive or looking for that next job) with what is desired (making games).
I realize that survival and looking for a job can be a full time effort of its own. However, with planning and discipline, you can make the time to keep making games.
Think about it: while you were working for the typical game studio you are already working 12 hours a day. Why stop now?
Being unemployed can be a great opportunity. First, there is a good chance that you are receiving some kind of short term support in terms of unemployment benefits. You may have the support of a spouse. If you were smart, you saved up some money while you were gainfully employed. Second, even if you spend a lot of time on the job search, you probably still have more discretionary time on your hands than when you were employed. Finally, you are probably free of any contractual limits on your ability to make your own games. You've dreamed of making your own game...now is your chance!
That's it for part 1. See you next week for part 2! R
So you want to go Indy?
I see a lot of posts on forums that look something like this:
I want to break into the game industry, but I really don't want to waste my time going to school or anything. I've got this great idea for a game and I know it will be the greatest. I'm thinking I'll just skip the whole job thing and just start my own game company. Can you give me some advice?
Anyone who has followed my blog for a while knows that I am a pretty strong advocate for the more traditional route to a job in the game industry: get a degree, then get an entry level job and move on from there. The biggest problem with posts like the one above is that it looks like whoever wrote it:
- Doesn't really want to work hard
- Is trying to skip all the prep work
- Thinks their great idea is so great that everyone else is dumb for not realizing it
- ...and finally, doesn't have a clue!
But let's say we're talking about someone who has really prepared and wants to seriously consider going independent rather than working for another game developer. What should such a person consider when trying to make this decision?
The first question you should ask your self is why? There are many motivations people have for choosing to go independent:
1. A veteran in the industry may decide that it's time to break out of the mold and start a company that is run the way they want it to be run.
2. A student may decide that going independent is the best way to extend their project from school and turn it into a completed, marketable game.
3. In the current economy, going independent is a viable alternative to unemployment.
These are all good reasons to consider going independent. If this is something you are seriously considering, then realize that you have a lot of work ahead of you. Running your own studio is much harder than just getting a job and working for someone else, so make sure you know what you are getting yourself into!
Do Your Homework
First, starting an independent game studio is much like starting any other business. You have to consider what form your business will take (e.g. sole proprietorship, corporation, etc.). There are licenses to get and bank accounts to create. Will you have employees? Triple all of that!
If you have never run a business, then you need to do some research and find out exactly what it takes to start one. One resource I can definitely suggest is your local Small Business Development Center (SBDC). The SBDC is a branch of the federal Small Business Administration. They offer free information and advice and can also facilitate a small business loan. Check them out at http://www.sba.gov/aboutsba/sbaprograms/sbdc/index.html.
Are You a Business Person?
I have been self-employed for almost 20 years. I think the most important lesson that I have learned is that being really good at what you do (e.g. art, programming, game design) does not necessarily mean that you are good at running a business. In truth, I am really good a programming, but I suck at running a business.
In order to be successful, you are going to need someone who is really good at business. If creating art or writing code is what excites you the most, then you probably are not that person! Someone who is truly good at business gets excited about things like marketing, sales, budgeting, and cold-calls...these are not things that I love to do.
So, if you are seriously considering starting an independent studio, make sure that you have someone on your team who dreams of running a business more than they dream about creating a great game.
So Many Hats to Wear
If you truly are thinking about going solo, then remember that the full responsibility will be yours to make things work. As an independent computer programmer, I estimate that I spend only 25% of my time actually coding. The other 75% is spent finding work, getting people to pay me, and doing paperwork and other administrative chores. You may be able to run solo for a while, but eventually you will have to bring in other people who are experts at business so you can focus on your area of expertise.
And so much more...
Of course, there is no way I could go into all of the details of starting an independent studio in one post. Hopefully this has at least given you some food for thought. Going independent is a hard road, but it can also be rewarding. And there has never been a better time for independent studios in terms of technology and opportunity.
Until next time...Good luck!
Well, it has been quite a while since I posted to my blog, and of course, a lot has happened. I have moved on to "greener pastures" after begin laid off, yet I am still going strong. Stay tuned here for my current venture. Until then, let's continue my topic on how to break into the game industry.
In my last blog ("Let's Make a Deal"), I talked about the three most common ways to get an entry level job in the game industry: programmer, artist, and game tester. While these three "doors" are the most common entry points, there are certainly other possibilities!
There are so many types of jobs in the game industry that I couldn't possibly cover all of the options. However, after reading this post one thing should be apparent: There are many roads that lead to the doors of the game industry. If you want to be a part of this great field, then there is a place for you regardless of your age, background, or choice of education.
The following positions are part of the standard production team for most studios. They were not included in the previous post because they are typically less likely to be available as entry level positions
Producers are the project managers of game development. They are responsible for leading the production team, insuring that the project is on time and on budget, and interfacing with management and the publisher. Associate producers typically assist the producer. Whereas the producer may have responsibility over several projects, the associate producer may only assist with a single project. Of course, each studio is different.
It seems like everyone wants to be a game designer. Everyone has this great idea for a game and thinks that qualifies them to be a game designer.
"If Studio X only realized how great this game idea is they'd hire me!"
Of course, it takes more than just a great game idea to be a game designer. Among other things, you must have excellent communications and writing skills. You should have a broad background in humanities such as philosophy, history, and psychology. Finally, you should be designing games, even if they are paper based!
As one reader of my last post pointed out, it is possible to get an entry level job as a game designer. In fact, the last studio I worked at had done so. Just realize that it take more than a great game idea.
The positions below are often support positions in the IT (Information Technology) department, but can also be directly involved in the game depending on the type of game.
Do you have a knack for working with PC and Macs? Can you configure and troubleshoot? Load software? Install hardware? Most studios need people with these skills to keep a multitude of workstations working, configured, and upgraded.
Most studios have a relatively complex internal network and they need someone with the skills to build it, configure it, tear it down, set it up, and keep it running. This includes knowledge of servers to support version control, SharePoint, Wikis, web servers, and other such tools.
Many companies use databases for internal purposes. Furthermore, many games such as web-based and social network games are built on modern databases. Studios often need skilled database managers to design, maintain, and tweak their databases or get essential information out of them.
The web is used in many ways in the game industry. Many games have a community website that allows fans of the games to get involved, post feedback, or ask questions. Many studios also use the web to market or distribute their games. Finally, many games are based on the web. For all of the reasons, most medium to large size studios need experienced web developers to accomplish all of this.
Many game studios have large community websites with blogs and forums that must be maintained. This community manager is responsible for keeping the fans happy and informed.
The positions below are not directly related to creating games, but are essential nevertheless. These positions could certainly provide careers in their own right, and could also lead to positions that are more directly involved in making the games.
Marketing is responsible for getting the word out about the newest games. If you have a degree in marketing and want to apply it to a creative field, then the game industry might be the perfect fit.
Sales is sometimes handled by marketing, but is also often its own department. People who are successful in sales are successful with other people. Sales personnel are responsible for finding buyers and distributors for games. This might include getting your game out to online distribution points such as Big Fish and Steam as well as brick-and-mortar stores such as Wal-Mart and GameStop.
Someone has to design those flashy boxes that game come in as well as a multitude of other marketing materials including flyers, posters, t-shirts and more. If your penchant is more along the line of business graphics design rather than game art, this might be the place for you.
Some game studios maintain a technical support department so that customers can call in and obtain help from a human being in areas such as game installation, game bugs and crashes, and other technical support issues.
So there it is! Again, this is not a comprehensive list, but it does demonstrate that there are ample opportunities for people who didn't necessarily get a game-specific degree (except perhaps the game designers). Basically, any position that you would find at a medium to large company probably exists at a game studio--human resources, accountants, receptionists--the list goes on. These opportunities also offer entry points to people in other professions who would like to cross-over into the game industry.
Next time we'll talk about one more possibility: Starting your own game studio.
You probably don't remember watching the game show Let's Make a Deal as host, Monty Hall, asked the proverbial question: "Is it behind door number 1, door number 2, or door number 3?" Picking the correct door meant winning the grand prize. Picking the wrong door meant, well, not winning the grand prize.
Although finding a job in the game industry is not a game of chance, it is important that you understand the viable entry points (or we'll just call them "doors") so that you properly prepare for that position. As it turns out, there are three common doors to choose from.
Door Number 1 - Game Tester
Becoming a game tester is often touted as one of the easiest ways to at least get your foot in the door (boy, how far will I be able to stretch this analogy!). Behind door number one you can expect many hours of playing games, finding bugs, and documenting those bugs with great alacrity. The movie Grandma's Boy might be your reference for this position, or perhaps you have watched The Tester, a reality TV show where participants compete for the rare prize of a job as game tester for Sony. Consider these two references as "dramatizations" only.
One thing is true about game testers...they actually do sit around all day long and play games. As fun as this might sound, get ready for some really grueling work as you play the same game over and over and over. A student once asked me if game testers got to choose the games they tested (indicating that Pokemon might not be his thing). No such luck. As a game tester you will play games you love, games you hate, and everything in between. The important part of being a game tester is the ability to spot, reproduce, and then accurately report bugs. This is mostly done by comparing the game you are playing to the game design document (often over 100 pages long).
Game testing is tedious, and the pay probably won't allow you to buy your dream car (or even your dream game system), but it is a valid door into the game industry. For example, in the company I work for, one game tester was recently promoted to producer while another tester was promoted to designer. The key to climbing the ladder is to do your job well, take initiative, and communicate your desired career goals with others in the studio.
Door Number 2 - Game Programmer
It is quite possible to get an entry level position as a game programmer. These titles often go by the name "Junior Programmer". As a junior programmer, it will be your job to be part of a team of more experienced programmers. You will be expected to make a real contribution to the project, and you will also be expected to listen, watch, and learn from the other programmers around you.
Keep in mind that even a junior programmer is expected to have mastered the core concepts of game programming. For most game jobs this will mean having a Bachelor degree in computer science, being fluent in C++, and having a working knowledge of both 2D and 3D game programming concepts. You will almost certainly have to complete a programming test before you will even be considered.
Being a junior programmer means lots of hard work, and probably some overtime (especially during crunch). Since this will be your first game programming gig, you will probably find yourself putting in some extra hours as you learn more and more about what it is to be a game programmer. In this position, it is important to get your assignments done, research skills that you don't have, and ask for help when you need it. Most of your companion programmers will be more than willing to take time to help you better yourself.
Door Number 3 - Artist
Entry level positions are also available to artists. As an entry level artist, you will be expected to work as part of a team of artists on a particular project creating assets that will be used in the game. Depending on your skill level and the type of game, this might be anything from creating marketing materials to creating 3D models. Another common area for entry level artists is creating art for the UI (UI = User Interface).
Just as with a junior programmer, even a junior artist (I'm not totally sure they use that title!) will be expected to have mastered the core tools which may include Adobe Photoshop and one or more 3D modeling programs such as Maya or 3ds Max. Most employers will want to see a portfolio of your existing work before they interview you.
As with any game development position, being an artist will mean hard work and some overtime. One of the most essential skills you will have to learn is the ability to get large amounts of work done by a certain deadline. This often means knowing when a piece of art is "good enough" and moving on to the next item. Artists rarely have the luxury of poring over a certain piece of art until it is "perfect". However, you often have a chance toward the end of the project to add additional polish to your work.
Door Number ?
To keep this article short, I have intentionally limited my discussion to the three most common doors for entering the game industry. There are certainly other ways to break in, but these are the most common entry level positions. In my next post I'll discuss more of the positions that make up a working game studio.
One important thing to keep in mind is that you should have an idea of your target entry level position long before you are looking for a job. For example, if you are getting ready to choose a college, make sure the college offers a program that will prepare you for the entry level job you are targeting. Even if your entry point is as a game tester, you will most likely have a career goal that comes after that, and this is what you should focus on during your education.
Continuing on with my thread about game education, I would like to share my thoughts about a particular program that I am very familiar with because my son attended there. This post is not designed to either endorse or criticize the program at Full Sail. Although I am very pleased with the education that my son received their (and he is, too), any student considering a program at or like the one at Full Sail should take the time to learn about all of the details--positive and negative--before making a choice.
As I have stated in my previous posts, attending a specialized game college has its advantages and disadvantages. For my son, the advantage was that Full Sail offered a focused, accelerated program that allowed him to get his degree in game programming in only 2 years (remember this point as your read on). He was not interested in a traditional four-year college because he didn't want to take four years to go through college. He also felt that a traditional program would spend too much time on material that had nothing to do with game development. At the time (2005), Full Sail was one of the few specialized game colleges. Interestingly, he was first attracted to Full Sail because of their music program, which is also considered to be very excellent. When his career focus changed to game development, Full Sail seemed like a great pick.
Before I continue, let me briefly discuss my thoughts on traditional vs. non-traditional programs. It can be argued that traditional four-year colleges offer a better, more well-rounded education. Sometimes when I hear potential students (like my son) say that they don't want to attend a four-year college because they feel the general education will be a "waste of their time", I automatically jump to the conclusion that this person might be just using this as an excuse. Personally, I feel that the breadth of education offered by traditional programs is very valuable. Many employers may also feel the same, wondering if a student who opted for an accelerated program was looking for some kind of short cut to their education.
Having said that, I also realize that you can't force a square peg into a round hole. There are different kinds of students who learn or excel in different types of environments. Knowing my son, I could see that he would flourish in an environment like Full Sail but wouldn't necessarily flourish in a traditional program. As a student, you should take a hard look at your motivations for seeking a specialized program, and make sure that you don't somehow think this is the "easy way". I can tell you from experience that getting an education from Full Sail is anything but easy!
At the time my son attended Full Sail, the game development program was offered as a two-year degree. They had just upgraded the program so that the student actually earned a Bachelor?s degree by the time they were done. This is very important because having a certified Bachelors degree is leaps and bounds better than just receiving a technical certificate of some kind.
Full Sail is a 24 hour, 7 day a week school. This means that your classes could potentially fall on any day of the week, at any time of the day or night. Realistically, most of the classes occurred between the hours of 8:00 A.M and midnight. Very few sessions were held on Sunday.
Students take 2 (count em - two!) classes each month. Each class takes a month to complete and typically meets three times a week. Each class session is 8 hours log and is divided between 4 hours of lecture and 4 hours of lab. The average student should then plan on at least another 4 to 6 hours per day outside of class to complete the required homework and projects. In other words, you will be investing at least 12 hours every day to your school work. This doesn't leave a whole lot of time for smelling the roses (or partying). Those who don't take this commitment seriously generally end up dropping out.
Attendance and Academics
One of the things that Full Sail recruiters don't emphasize enough is their attendance policy. Since Full Sail is so accelerated, missing class is not tolerated. If you miss one class session, you might be able to catch up. If you miss two class sessions, you are automatically failed and have to retake the class another time.
Again, because of the accelerated nature of the program, there isn't a lot of slack for missing or failed assignments. Basically if you don?t complete one or two assignments, or fail a single exam, it is likely that you will fail the class and be required to take it again.
Students can be put on academic probation. This means the Full Sail will require the student to take from 1 to 6 months off of school before they are allowed to return and continue their studies. Academic probation can be invoked for failing too many classes, attendance problems, or if your GPA falls below a certain level.
Realizing that the accelerated nature of the class might scare away potential students, Full Sail recruiters are quick to stress that you can retake any class that you want to until you pass it. However, they may leave out the nasty details, such as:
- Students are charged a retake fee (potentially over $1000) each time they retake a class.
- Although students can theoretically take a class as many times as necessary, there is a fundamental limit on how many times you can retake courses because of the 3 year time limit put on completing the program (see below).
- If you have to retake a class, this will generally delay your entire program. For example, let's say you fail 3D Programming I. Had you passed it, you would have continued on to 3D Programming II. But since you failed it, you can't take 3D Programming II, or any other course that had 3D Programming I as a prerequisite. The result is that you may only be able to take one class instead of two next month, and so on until you have a chance to repeat and complete 3D Programming I (which isn't guaranteed to happen the next month).
The Full Sail program is designed to be completed in 2 years. However, few students are able to accomplish this. It is almost inevitable that students will have to retake one or more courses. Furthermore, Full Sail enforces a 3 year completion time limit. What this means is this: if you do not complete your program in 3 years, then you cannot graduate and you will not be allowed to finish.
Failure became a real possibility for my son. He had to retake a few classes, and then this cascaded to delay future classes that he could take until he had completed the prerequisites. During the last six months he was faced with the possibility that if he failed a single class for any reason, it would be impossible for him to complete the program in the 3 year time limit. This means that you could spend over $50,000 dollars, invest 3 years of your life, and complete 90% of the program only to be told that you will not be allowed to graduate!
On the positive side, all students in the Full Sail game development get a free laptop! Hey, if nothing else, you'll get a cool laptop for that fifty grand you paid for tuition! Other perks include:
- State of the art equipment
- 24 hour access to labs
- An expansive technical library
- Credible instructors who really know their stuff
- Many connections with people inside the industry, including regular visits from recruiters and other reps
At the time my son attended Full Sail, the cost of tuition was around $56,000 (includes books). This is a lot of money, but not so bad if you compare it to a four-year program. For example, in-state tuition at a local college for four years plus books will run you about $8,000 per year (not counting housing and food). Out-of-state tuition will raise this to about $15,000 per year. So, the cost of attending a college in your state of residence will run about $32,000 over four years (just under the cost of Full Sail), while attending an out-of-state college will cost you about $60,000 in four years (about the same as Full Sail). Of course, these are just estimates and you should check the actual costs of any school you are considering. The bottom line is that the cost of attending Full Sail is about as much as it would cost you to attend an out-of-state college.
Full Sail does an okay job of helping students position themselves to get a job after graduation. But like any college, they cannot find a job for you. You will hear legendary stories of students who got their dream job offer before they even graduated (and this does happen). However, these cases are definitely the exception. The reality is that you will be graduating with about 30 to 50 students (each month) and all of you will have to vie for whatever positions are available at the time. It took my son 9 months to get his first job.
The Bottom Line
Full Sail is a great school. My son feels he got what he expected, and has now been working as a game programmer for over 2 years. However, his success was due to his dedication, and he came very close to not being able to complete the program. As an interesting side not he and two friends all began Full Sail at the same month. Only he completed the program. The drop-out rate at Full Sail is about this high.
If you are considering attending Full Sail, or any other specialized, focused, game college, keep these things in mind:
- Make sure you understand how much time you will have to invest daily to complete the program, and be honest with yourself as to whether you are willing to invest that much time.
- Really, really, really make sure that you are aware of all of the schools academic, attendance, and related policies.
- Make sure that you understand that the college does not make the student. Any program you attend will require you to completely dedicate yourself to the task if you want to succeed.
One final caveat! This discussion of Full Sail?s policies is, to the best of my knowledge, accurate as of the time my son attended their program. It is entirely possible that some or all of these have changed since then, so make sure you find out for yourself!
That's it for now!
I am proud to announce that I can finally reveal the game that I have been working on for the last six months: Dark Void Zero. Released in January for the Nintendo DSi, my focus was on the iPhone and PC versions that will be released on April 12. Be sure to pick this one up. It was great fun to program and even more fun to play!Now for this week's subject.
I receive a lot of questions about what kind of school or program I would recommend for students seeking to get into the game industry. There are basically three paths that you can follow in this regard:
1. Standard four-year colleges
Most four-year colleges offer standard degrees that are applicable to game development. The obvious example is a Computer Science degree if you want to be a game programmer. Many four year colleges are also starting to offer concentrations or specializations related to game development.
A four year degree from a standard college is still the preferred degree by most companies because these programs are based on accredited, standardized programs of study. Even better, attending a college in your home state will cost you significantly less that any other educational option.
2. Technical colleges
Technical colleges are intended to provide practical education on a specific subject in a short amount of time. The rise in popularity of game related careers has inspired many of these colleges to offer game related programs.
The jury is still out on the usefulness of technical degrees since they aren't generally regarded as highly as a standard, four-year degree. The main advantage of a technical college is that the program is focused and can generally be completed in two years or less. However, you will probably pay more to go to a technical college than a four-year institution.
3. Specialty colleges
You can think of specialty colleges as super-technical colleges. A few of these have made a name for themselves (DigiPen and Full Sail come to mind) as premier colleges in the field of game development. They offer stringent, focused programs of study with an emphasis on the student completing a "real world" game-related project by graduation.
Like technical colleges, a degree from a specialty college may still hold a certain stigma when compared to a traditional four-year degree. Critics of such colleges question how much students can really learn in these hyper-accelerated programs. Proponents argue that this kind of time-pressure mimics the real-world of game development and prepares the student for the work environment. Specialty schools are also typically the most expensive choice
So which type of college is right for you?
The quick answer is that you should attend the type of college that you can afford and that meets your learning style and situation.
If money is the major consideration, then try to find a four-year college in your own state that offers a traditional degree that meets your goals. If you can find a program that also offers a concentration or specialization in game development, then that's even better.
However, different people have different learning styles, and some people just can't fathom spending four years to earn a degree. The general education required to achieve a traditional degree is sometimes perceived as wasted time that could be spent learning their true love: game development. For such people, a specialty school might be the answer, especially if that school offers a standard degree. For example, students who graduate from Full Sail's game development program do so with an accredited four-year degree. "General ed" courses such as history and psychology are custom designed to be relevant to games, making even them easier to swallow!
Finally, let's say you already have a full-time job and/or family that makes it impossible for you to attend a full-time college or specialty school. In this situation, a technical program might be the ticket. Most technical colleges adapt their program to working students, often including large, online components that can be completed according to the student's schedule.
Remember: for most employer's the real question isn't where you went to school but what you know. I have personally worked with programmers from all three types of schools. In every situation, the programmers had excellent skills.
When it boils down to it, it is the student more than the school that may determine the effectiveness of the education. You literally get out of your education what you are willing to put into it.
There is one more important point to make on this issue: Not all game design courses are created equal! Some programs try to provide a general course of study that touches on all aspects of game development: design, art, and programing. Others focus on one aspect of game development such as design, art, or programing. Contrary to the scenario presented by some advertisements, most careers in the game industry are specialized. This means that you should specialize to. Before you enroll in any program, you should know which area you want to specialize in, and then chose a program that focuses on that area.
That's it for this post. In my next post I will go into detail about one specialty college that I am intimately familiar with! Come back next time to see why!
P.S. The Princeton Review just completed a report on the top fifty game design schools. You can read their report at http://www.princetonreview.com/top-fifty-undergraduate-game-design.aspx.
Well, I've spent the last six weeks in crunchy goodness getting my latest game out. By the next time I post I should be able to let you all in on the name of the game. But not yet!
Today's topic is education. One of the most common questions I get from people interested in pursuing a career in the game industry is whether or not they should get a formal degree.
At first glance, this seems like an odd question. If you want to be an accountant, you'll get some kind of degree in accounting. If you want to be a lawyer or a doctor, you'll have to get an advanced degree in either law or medicine. So, it seems like the answer to this question would be a resounding "YES!"
However, there is a decided split of opinion on whether or not a formal degree is essential to pursuing a career in game development. Those who favor an education point out the classic benefits of having a degree, while those on the other side see a degree as just another piece of paper, and stress the creative elements of game development that can't be learned in a lecture.
Once again, we can blame rock 'n roll.
After all, how many rock stars have music degrees? These people made it because they practiced their craft and pushed on with their dream. In the same way, there are legitimate stories of people who have made a great new mod (think Counter-Strike) or a great new game (think Portal), and then went on to game development glory without the hassle (or expense) of a formal education, right?
Actually, both co-developers of Counter-Strike graduated from college with formal degrees while the co-developers of Portal were all students at DigiPen. Somehow this point is often left out when these stories are told.
In the early days of game development, it was much more common for a brilliant game idea to be enough to ensure a bright future as a game develeoper. And there are people out there -- renegades of our industry -- who made it on sweat and blood more that textbooks and Cliff notes. Well, not to worry, even with a degree, you'll still have to put in the sweat and blood!
For the record, I am a member of the camp who strongly encourages newcomers in our industry to pursue a formal degree. I'm not saying that it is impossible to get into the game industry without a degree, just that it is more difficult.
Now that the game industry has matured, the hiring practices have become more akin to those found in the corporate world. Scan the job postings on Gamasutra and count the number that require a formal degree. There are several key reasons why having a degree tends to make you a much more appealing candidate for any employer.
1. A student with a formal degree has successfully completed a gamut of courses that have been analyzed and certified to effectively teach the material at hand. Schools, professors, and curriculum all have to be accredited by third parties for quality and relevance.
2. As you go through school, your knowledge of the subject matter is continually tested and verified. All of this is rolled up into two significant marks: your GPA and your completed degree. While you could read all of the same books and do all of the same "homework" on your own, there would be no third party verification that you had successfully learned the material.
3. Bypassing a formal education means you miss out on a significant part of the classroom experience: practical knowledge and mentoring from those who are professionals or educators in the field.
4. Many employers see school as an analogy of the work environment. In school you have to show up on time, meet deadlines, and perform under pressure. The same is true in the job environment. The fact that you succeeded in school under such a structured environment is seen as evidence that you might also succeed at the job.
For many companies, a degree is a kind of litmus test. When faced with a stack of 100 applications for a single job, the first stage of rejections might simply be based on who has a degree and who doesn't. This creates a catch-22 situation. While most companies ultimately hire based on "what you know" no matter how you learned it, it may be difficult to ever get the opportunity to show what you know if you can't get people to take your resume seriously.
That's it for this post! For those of you who have decided that it is in your best interests to pursue a degree, the next big question is what kind of degree or school is best? That's next time!
First, let me say that the feedback from my last blog was welcome and stimulating (see my Gamasutra post). Ad to that the honor of being chosen by Gamasutra to be the featured blog of the week! I had hoped to keep up my once a week "resolution", but as you can see, I haven't quite done so. But now the show must go on!
Last week I discussed some issues that make getting a job in the game industry slightly different than some other fields. This week I'll discuss one of the practical side effects of this difference: location. Although jobs in the game industry are spread out all over the world, they tend to cluster in certain areas. If you live in one of those clusters, then it will be much easier for you to find a job. If you don't, then get ready to move!
When it comes to location, the game industry is much like other entertainment industries. For the music industry, the main hub is Nashville. For dance and stage acting it's New York. For movies, Hollywood. So where are the major hubs of activity for the game industry?
Although there is no single location that companies flock to for the game industry, there are several cities that have become prominent hubs:
* Los Angeles, CA - not surprising since its home to the entertainment industry in general
* San Francisco, CA - especially prominent for the games journalism and marketing sectors
* Seattle, WA - must have something to do with a small company started by Bill Gates
* Austin, TX - mostly known for a wealth of smaller independent studios
While there are locations scattered across the U.S. (and the world) where you can find a job in the game industry, you increase your likelihood of getting a job if you live in one of these key hubs. The need to be willing to relocated was particularly relevant to my situation.
At the time that I began considering a move into the game industry, I was living in Grand Junction, CO. This is a moderate sized city close to the border of Utah. The closest large cities were Salt Lake City, UT to the west and Denver, CO to the east, each about 250 miles away. Suffice to say that Grand Junction is too small to have any game-related companies, so I knew I was going to have to move. If I wanted to stay relatively close to "home", then both Salt Lake City and Denver were prospects.
Unfortunately, there are only a handful of game companies in both Salt Lake City and Denver. In order to find a job in the game industry, I had to expand my horizons. So I extended my search to include the western half of the United States. I landed my first job in Dallas, TX. This meant moving 1000 miles away from my family in Grand Junction, but it was a move I was willing to take.
After the studio in Dallas laid off many of its employees, I was faced with an even more difficult decision. With the economic and job situation at the time, I was forced to consider any job in any location in the United States. Even that wasn't enough, and eventually I took a job in Canada!
The moral of this story: to get your first job in the game industry you'll probably have to move. To get your second job in the game industry, you'll probably have to move.
Unfortunately, the game industry is also pretty notorious for high rates of turnover. That means that you probably won't only move once during your game career. You may move every time you get another job. This is where living in a hub that has many game companies becomes a real advantage. The more game companies that are in the area, the less likely that you'll have to pack your bags every time something changes.
A particularly useful resource in this regard is David Perry's Game Industry Map located at http://www.gameindustrymap.com. This site allows you to search the world for game related companies. If you search for a particular location, it will show you a map identifying all of the game related companies in that area. It's like the Google Maps of the game industry!
That's it for this week. Stay tuned next week when I delve in to the big question of how to best prepare yourself for a job in the game industry.
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.
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.
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: until yesterday: 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!
Well, the GOOD news is that my persistence finally paid off. Yesterday I received a job offer from Other Ocean Interactive, a game company in Charlottetown, Prince Edward Island. Those of you who have been following my blog may recognize the name of this company--it is the same company my son works for. So, there's probably another world record: the first father-son programming team working for the same company in the game industry!
Having my son working at Other Ocean was either going to work for me or work against me...it all depended on what the company felt about hiring family members. But one thing is for sure...I got this job not only because I was qualified, but because of who I knew. So, yes, I am still a strong believer in the power of networking. I have tried to keep track of everyone I met or talked to during my job hunt because this surely won't be the last time I need to find work!
So, the adventure begins again! I start work at Other Ocean as soon as I can get my Canadian visa, which will probably take about a month. Stay tuned for the further adventures. If you're out there and still trying to find a job, keep the faith and keep hammering away. If possible, don't compromise and hold out for the job you love instead of the job you have to settle for.
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.
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!
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:
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.
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.
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.
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.
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.
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.
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.
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.
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).
...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:
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.
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. :)
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 naive 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.
After my phone interview, I was sent the feared programming test. These tests are designed to gauge your knowledge of the C++ language as it applies too games. I ahve seen several versions of programming tests sent by game companies. In my opinion, many of them are an unrealistic test of an entry level programmer's skills. That means that these tests are a major hurdle to overcome for recent graduates or anyone trying to break into the game industry.
I know this is just my own personal soapbox, but the reality of programming is that you do most of it with a reference or two at your side before you get up to speed. Even experts need to refer to reference materials to get it right. So a test that require advanced math and programming to be completed in a short amount of time without any reference material seem unrealistic to me. However, the reality is that you MUST be prepared to deal with these types of tests if you ever want to get to the next step.
Perhaps we'll cover some of these types of questions in future blogs and run through the solutions. Fortunately for me, the test I was given was more realistic. I can't share the specifics of the test, but I can give a general idea of what was required.
The first step was to create a basic "adventure" type game. The implementation was left totally up to me, but I could tell from the requirements that they were looking for a piece of code that demonstrated a wide range of standard C++ skills with some direct application to game programming. Some of the elements necessary to pass this test were:
* Implementing a game loop
* Creating classes
* Class inheritance
* Container classes
* Virtual and pure virtual functions
* Using polymorphism
* Static variables and functions
* Friend functions
* Use of the standard template library (STL), especially vecotr
* Use of iterators
* Dynamic memory allocation and deallocation
The second requirement was to write a detailed design spec for a particular problem. Some of the skill required to pass this part of the test included:
* Good writing skills
* Good analytical skills
* Solid problem solving skills
* A basic understanding of state machines
The thing I most appreciated about my test is that it was a true test of my problem solving abilities, not a test of how well I had memorized particular routines or snippets of C code. I was allowed to solve the problems using any resources at my disposal without a time limit (other that the deadline to turn in the test which was quite reasonable).
I think the key to my success in passing this test was that I didn't put it off until the last minute. I started that day, and then worked on my solutions over the next two days, leaving time at the the end for review and polish.
I'll be the first to admit that I did not pass these tests with perfect accuracy. I later discovered I had made one or two glaring errors. However, the company I work for looks for good problem solving skills more than they look for perfect code, and my performance was sufficient to earn me the next level in the process: the face-to-face interview!
So I had just received my first phone interview from a game company. I was both excited and anxious. I had applied to this company precisely because their advertisement encouraged those who were trying to cross-over from general IT into game programming. I knew that I had no game-related experience, but that I had a wealth of experience both in programming and the areas that surrounded it: project management, training, system design. I also had excellent writing and communication skills. Would this be enough.
The phone interview began with a general discussion of my background. One of the biggest questions I knew I had to answer was the "Why". Why did I want to get into game development? Why was making this career change? Why was I moving from self-employment to employment?
I don't want to bore you (too much), but I had really thought out the answers to these questions. I realized that I already had a couple of factors working against me. First was my age. At 46 its hard to change careers. People either think that you are overqualified or entrenched in your ways. They may also feel that your skills are out of date. I couldn't change my age, so I worried about the issues I could control.
I had tried to deal with the latter by keeping up with the latest programming techniques and by self-studying the issues surrounding game development, game design, and the gaming industry in general. For example, I realized about 5 years ago that my C++ skills had atrophied since I was working mostly in Visual Basic for my clients. So I forced myself to start doing work in C++, even if I got paid little or nothing for the projects. I also read every book I could get my hands on related to game development, got on every mailing list and website, and attended a few game industry conferences. By the time I got my first interview, I felt confident that I had a good grasp for what was going to me demanded of me.
You might think that being overqualified was not an issue since I had no experience in game development. However, my interviewer was concerned about one major issue: with over 25 years experience, how did I see myself fitting into the company? In other words, would I be satisfied as an entry level programmer? Would my pride be damaged? Would I be able to accept the salary that they could offer? I already realized that I would have to be willing to enter the industry at an entry level, even if that meant taking a cut in salary. I had no expectations of special treatment because of my years of experience. I just wanted to program games. If you find yourself in a similar situation, you will have to work all of this out in your head before you go seeking a job. Fortunately, the salary I was offered was very competitive and I was glad to consider the entry level programming position.
Another concern was whether someone who had worked for himself for the prior 15 years could integrate back into a corporate environment involving teamwork and collaboration. For me, there wasn't that much difference between having to please a client or please an employer. Both situations required teamwork and collaboration. Furthermore, many of my projects for clients had involved working with a team of other people to accomplish the project. The key was to communicate that I did not feel like I had to be the boss. Anyone who has worked as a consultant realizes that they are not really the boss anyway--the client always rules.
Next were questions about my technical skills. The interviewer told me that he was more interested in my ability to get along with people and solve problems than my particular skill level in C++. Nevertheless, we did cover basic C++ issues including class inheritance, polymorphism, and pointers. Although I felt good about my answers, there were definitely some concepts that I had no formal knowledge of. For example, I didn't know what a singleton was, although I understood the concept.
Although this was my first interview, I knew that many companies put technical prowess above everything else. This company continued to communicate that teamwork and personality were more important as long as you had the capacity to learn the technical skills.
More than anything, I just focused on being straight with my interviewer. I didn't try to come off as someone that I wasn't. I wasn't an expert game programmer, but I was an expert application programmer. C++ wasn't my strongest language, but given daily use it could be. I also emphasized my other strengths in problem solving, planning, and communicating. But I think the most important issue was a willingness to be flexible, teachable, and easy to get along with.
I had felt very good about the interview. I was informed that a programming test was on its way. And that will be our next story: The Test.
Well, I am now officially starting my seventh week as a game programmer and I have finally taken time to start my developer blog! I think my story of how I got here is sufficiently interesting, so this is the topic of my first entry.
I have been programming since 1979. Yes, I'm that old. I got my start in computing in a mainframe shop and have been variously employed in computers ever since. I taught myself Basic on a PDP 11/34 computer back in the day and have since programmed in Cobol (ech!), Fortran, C, C+, C++, Visual Basic, Java, Python, and a few other variants of those. My core languages are Visual Basic and C++.
For the last 15 years I had been self-employed. As a consultant, I sold myself to whoever would pay for my coding pleasure. That meant I got to do a lot of database design, school projects, and other stuff that was real interesting. Really.
Although I enjoyed my 29 year tenure as an application programmer, the time comes when an old programmer looks back on his life and asks, "What have I really accomplished?" In fact, I asked this about 5 years ago and the answer was that I had helped a lot of people but still didn't do what I loved...what originally got me interested in programming in the first place...that's right: games.
Games in 1979 were great! We had advent, trek and my all-time favorite tripe (if anyone knows where to find tripe let me know). I realized that I could create my own worlds!
So, here I am in 2008 and I'm finally doing it. I studied game programming on my own for the last 5 years. Attending E3 in 2004 was a life-changing event for me...I just had to get into game programming. But could and old-dog learn new tricks? Even if he did, would anyone care? (If a programmer falls in a forest and no one is around....you get it...)
My big break came when I responded to an job opening from a mysterious company who said they would actually like to hire someone who wanted to cross-over from IT into game programming. I sent the resume and held my breath (well, I did eventually start breathing again), and then went on writing those other programs. Then one day I got a phone call...