xingd.net

.net related techonology

导航

So You Want To Enter The Game Industry

Posted on 2005-02-16 12:06  xingd  阅读(998)  评论(1编辑  收藏  举报

So You Want To Enter The Game Industry?
----------copy from www.GameTutorials.com

Ever since I was a boy I wanted to make games.  To be more precise, ever since I gathered around the Nintendo Entertainment System watching my older brother and his friends play Super Mario brothers 3 - I set that goal.  Though most kids might have said or thought this, I actually did it.  For those of you who have a desire to get into the game industry, but don’t know where to start, I can offer my experience of what worked and what didn’t.

Starting in the mid 1980’s, the video game market seemed to be dominated by Japanese companies including Nintendo, Sega, and NEC. It came to my mind as a youth that if I could speak Japanese it would drastically increase my chances of getting into the industry.  It wasn’t until I started looking for a job that this didn’t make much difference unless I wanted to go live in Japan.  On the other hand, while I was learning Japanese I was learning to program using BASIC on the Apple ][ GS.  This was my first experience with programming.  Soon I moved on to PASCAL, then in High School I learned C.

It wasn’t until my senior year in High School that I found out about my dream school.  It blew my mind to find that there was actually a school that taught game programming.  Based in Canada, the name of the school was DigiPen.  Upon hearing that they only accepted 100 people a year I went to a normal year of college, received good grades and was accepted shortly after.

Before classes started and DigiPen we were warned that this was not a school where students play games all day, but a school or intense learning and siphoning out the elite programmers.  I soon found out that this was an understatement as the workload was at least 14 hours a day and we were at the school from 9am to 10pm.  Saturdays and Sundays were spent in our groups working on our game design and code.  If you hate math, you would hate this school.  Imagine sitting through 3-hour lectures for each subject, then getting a half an hour break to go to the bathroom or get something to drink.  It was impossible to have a girlfriend (at least one that would stay with you over a week or 2) or even think about a part time job.  Some might say this would be hell, but for me it was a heaven.  15 people dropped out the first 2 weeks, and by the second semester we lost dozens more.  Just one year of DigiPen teaches you just as much if not more than what a computer science major knows when they get their degree, plus it’s all related to the game industry.

Sure you eventually start to get burned out, but this is nothing from what the mainstream industry dishes out.  If you can’t sit at a computer for 16 hours a day you probably won’t enjoy the game industry.  Though not all jobs in the game industry are like this, that is what you should expect going in.

Eventually I found a job in the game industry, published a couple titles and here I am currently ramping up for the Nintendo GameCube.  Below are answers to some of the most popular questions from those interested in getting into the industry.

What Should I Do Now To Prepare?

If you are still young and in school or already have a career, but want to change, I recommend learning to program.  It isn’t so important in the beginning which programming languages to learn, but that you understand the concepts.  Just like any spoken language, most of the concepts are the same but with different words attached to the same meaning.  One of the most important things to have is a knowledge of games.  That means you can tell your family you have my permission to sit and immerse yourself in games till the wee hours of the night.  You can’t be expected to create a game unless you have played them before and
know what’s fun.

The Internet is probably the best place to learn.  Thousands of people have gone through what you are about to go through so there is an abundance of information to be shared.  If possible, try taking some classes that deal with math, physics and programming.  There is a saying that it is easier to teach a mathematician how to be a programmer than it is to teach a programmer how to be a mathematician.  I believe this to be true.  Once you have a solid foundation of logic, the rest is just
teaching the syntax to make it happen.  Don’t stress on learning a particular language.  Programming languages change, but the concepts stay the same.
        
As you are learning the basics, try to make little games along the way.  Text adventures are one of the easiest games to create because you don’t need to know any graphics programming to do them.  Whatever type of game you do, keep everything that you create.  Even if the game looks stupid and is really basic you might be able to use it when you eventually go and look for a job.  This can impress upon a future employer that you love making games and have spent your free time doing so.  It also might be good to show the evolution of your games throughout your learning experience.

Another important thing to know is 3D concepts and the math behind them.  Learn linear algebra and how to display objects in 3D.  Not all games are full-fledged 3D environments, but you will have a lot better chance getting a job if you know the math needed to perform the tricks behind the fun.  This is one of the things that separates a good game programmer from a bad game programmer.  Most people can do the simple logic in games, but not everyone can optimize a BSP tree (Binary Space Partition), write collision detection routines, hidden surface removal and skeletal animation systems.

What Programming Languages Should I learn?

Like I said before, don’t stress too much on which language to learn in the beginning because languages are ALWAYS changing and you will always be required to learn a new one to keep up with the changing technology.  Once you get the concepts of programming down I would focus on C++.  C++ is the most popular language in the game industry. Why you ask?  Because it’s fast, powerful, and is low level enough for you to do most anything you need to do, but is also high level enough to not have to write an exuberant amount of code to do it.  Unlike some languages, C/C++ is available on almost every operating system and is quite easy to port between them.

If you can, I would learn C before learning C++.  That way you will fully grasp the benefits of a language with built in Object Oriented Programming (OOP).  Some people still haven’t made the switch from C to C++ so it’s always a good idea to have that knowledge in your back pocket in case you have to use C.

There is one more language that is good to know in the game industry and that is Assembly (ASM).  Though most projects might only have %5 or less of assembly code, it is a great way to optimize graphics code. Assembly especially comes in handy when it comes to hand held games, which need every little bit of speed they can muster.

Which Compiler Should I Use?

If you decide to jump on the C/C++ bandwagon you will want to pick up a copy of Microsoft’s Visual Studio.  Currently version 6 is the latest, but version 7 is right around the corner and worth every penny.  One of the best places to find this is www.Amazon.com.  You can find the standard edition usually for around $80 (US), sometimes less.  If you are tight for
cash, you can always download a free Borland compiler (www.borland.com/bcppbuilder/freecompiler) without the visual interface
 (DOS prompt compiler) or search the Internet for a free IDE (Integrated Development Environment) compiler such as Dev-C++
(www.bloodshed.net).  If you don’t use a windows operating system there are dozens of other free compilers out there.

What Does An Employer Look For?

Having had experience interviewing potential employees, I know what will get you hired, fired or out the door before you can say, “I… want… job…” in your native language.  By far, the game industry is one of the most difficult software development industries to get in too.   I will attempt to go over all the key points that you want to show your potential employer.

First, this isn’t the 80’s. Don’t fool yourself that because you know something technical you have this huge edge and should get paid a six-figure salary in the first year of your job.  Believe it or not, but there are tons of people out there that have better skills than you and are looking for a job.  I would be so bold as to even suggest that a large number of them could be around the age of 15.  Children have been using computers since they were little.  Computers aren’t as much as a mystery to most people as they were back 10 to 30 years ago.

I want to impress this upon you because just because you might even know a lot about computers and had the highest math scores in your school, it doesn’t mean anything if you can’t communicate with people.  The game industry is not a place where you all sit in your own corner offices and exclude yourself from the group.  If you can’t work with people I guarantee you will have about a 2% chance of getting a job.  I have interviewed so many people that have the social skills and awareness of a possum.
After the first few questions you know immediately if the interview is over or not.  Employers want someone who is a “team player” and can communicate with everyone on the team.  If you have a problem, they want to be sure that you aren’t the type of person who will try and solve it themselves for 3 days before telling someone you ran into a roadblock.

Also, if you can’t handle stress, you won’t be the lucky one with a job. No one wants to work with someone who can’t hold his or her temper (Or their liquor for that matter…).

Next, once you prove that you aren’t a mutant who has never worked in a group, you will need to show your skills.  You do not need to have a college degree to get a job.  If you have a 4 year degree from a good college and no experience what-so-ever, and another guy applying for the same job has never gone to college, yet has a sweet 3D demo to show with a cool portfolio of games, you will most likely not get the job.  All college does is show your employer that you have the capable
knowledge to “learn” how to make games.  It’s a lot more impressive when you show that you know how to make games.

Write good clean code.  If it’s messy don’t bother showing it.  Remember that since you are working in a team, other people will be reading your code.  Don’t fool yourself that you will be the only person working with your code.

Sound excited and interested to work in the game industry and especially at the company you are applying for.  Don’t let them know that you have been bouncing your resume all over the place.  They want to know that you want to work their.  Do some research on the company you are interviewing at.  This means play their games, learning about their history and possibly talking to someone who works their about their experience working for the company.  If you go the extra mile to find information about the company it shows that you are selective in whom you work for, not desperate to take anything that comes your way.

Many employers will give you a test to take to see what you know and how well your problem solving and math skills are, so don’t be surprised. Take a calculator just in case, but don’t make it obvious.  Be sure to bring something to write on and with.  Show them that you are taking notes on their company as they are interviewing you, try slipping in a few questions about them.  Usually at the end of the interview they will ask you if you have any questions.  Try and have the questions thought of before hand, possibly written down on your pad of paper.

Don’t be cocky.  It’s so easy for a programmer to get up in the clouds about their skills.  Employers want to see that you are confident, but are always willing to learn news things, especially their way.  No one wants a programmer who thinks their way is the best and won’t budge.

Last of all, but not least, have something to show them that you have done.  This helps out in more ways that one.  Of all the people that I remember interviewing, it was those that brought in an example of their work, either on a laptop or on a disk/CD.  With all the people and resumes that flash through their office, you want to stick out above all of them.  That is your goal and that is what will get you hired.  If I could sum this all up in a sentence I would say be excited to work there, humble, teachable, sharp and easy going with something to show to distinguish you from everyone else.


What Kind Of Salary Should I Expect?

I was surprised by what I found upon finding out how much people make in the game industry.  Believe it or not, but you more likely to make more money programming outside of the game industry, and probably working less hours too.  Visual Basic database programmers make more than someone writing a 3D engine.  You want to know why?  It’s because people get paid more to do the jobs that no one else wants to do.  No offense to database programmers, but that’s how it works.

If you have never had a programming job and are an entry level programmer you can expect to make around 35K (US), depending on the region of course.  This is a bit lower than the 40K+ that entry level programmers make outside of the game industry.  This of course goes up if you have programmed at another company before. Experience is what matters, not necessarily skill or knowledge.  A game programmer with about 5 years of experience could be expected to make around 80K+. Some people might start at this salary, but it is rare.

With more people getting Computer Science degrees it will become more competitive than it is already.  You might want to think about going into something like AI instead of the typical graphics programming that most people want to do.  Graphics can only get so real, eventually the game play and AI is going to stick out instead of pretty colors.  I suggest getting a head start on developing these things.

Who Actually Makes The Games?

Most game companies are just the developers.  That means that the company consists of art and technical leads, producers, artists and programmers, with a CEO up on top making sure everything is going smoothly.  The developers pitch their ideas to a publisher, which if they like the idea, fund the project.  This doesn’t mean that the game is for sure.  There are milestones that the developer must provide along the way to show that the game is good and according to what was pitched to the publisher. If you decide to add a feature to your game the publisher must approve it.  Publishers usually have a bad wrap in the industry for shortening development times, which produce crappier games.  This might be true, but developers sometimes don’t realize that without the publisher there is no money, and without money there is no game or bread on the table.

There are so many games out there that do bad that it makes it a risky business for the publisher to invest too much money into one product. Developers sometimes exaggerate the truth about how long it will take to finish the game so that it will convince the publisher to go with their idea.  The problem with this is, that some companies don’t hit the target release data and their projects are cancelled.  This is a horrible reality of making games.  Not all projects get shipped.  I have heard of projects
that were even finished that didn’t get shipped because marketing decided that it would cost more to market it than it would bring back in sales.

How Long Does It Take To Make A Game?

Depending on the game the time to complete it can be varied.  Some games are as short as 6 months or as long as 5 years.  If you are making a sequel to a game it could be just 6 months to a year because you already have the base completed and you only need to add a few more features, levels and art.

The average development time for a game is about 2 years.  Games cost on average of 2 to 6 million dollars to develop.  When putting that much money into a single product you want to get it out the door as soon as possible because it’s already behind in technology once it hits the shelf.

If you do not want to program games, but want to design them it’s even harder to get in to the industry.  It seems that everyone has a good idea for a game now days.  This may be true but you aren’t going to get a meeting with a publisher unless you know something or already have part of the game finished.  A lot of people start as a programmer, artist or producer and then move into a designer position.  This is the best way, especially if you are working for a small company.  

Though getting into the game industry isn’t an easy task, and once you are in you bust your butt, It’s worth it!  On top of being a game programmer I am the co-web host of www.GameTutorials.com, which teaches programming geared towards games from knowing nothing at all to 3D.  There are over 200 tutorials written by us that simplify the complex world of game programming.  You will also find links to the other great sites devoted to development in the game industry.