Ok time for a Kenny rant!
But first a disclaimer, when it comes to college, I am a bitter and jaded man who has come to the conclusion that most academic institutions are businesses just like everything else. They are there to at least maintain stability for its employees and its own reputation ahead of the student. Most professors don't care about teaching since they have to teach a class of 100 people who would rather be partying than attending class, but the mighty GPA keeps those students in class. Simply put, your whole being is reduced to a number between 0.0 and 4.0, something that does not define a human being in my mind, and most interestingly enough not in most companies minds either.. I have seen too many people who have walked out of college with a 4.0 GPA and honors, and those people DID NOT LAND A JOB UPON GRADUATION! I, on the other hand, only have a high school education and some state college under my belt, but I have a really nice job here in San Francisco. For me, dropping out and getting my hands dirty was the best thing possible. I am learning A LOT more every day here in this environment than I ever learned in the confining environment that was my entire school career. Now I must state that my personality does not lend well to obeying orders without question, which is what school is all about. It is a test to see how well and how far you are willing to follow directions, a requirement in the "office space" style work environment that permeates this country needs. However, the path I took is not for everybody, I had to make 3 years of mistakes, both financial and social, before I wound up in my current situation. I can't promise that taking the risks I took will work for you, but I can save you a lot of heart attacks along the way regardless of the decision you make. Ok, disclaimer over.
Here are some things you need to know before going into games.
Simply ask yourself: What do you want to do in gaming?
Saying "I want to work in games" is all well and good, but in this era of 20 - 30 man teams or bigger, you are going to have to specialize. Do you want to program or do you want to make art? This question is not as obvious as it seems. Many game dev companies are using other peoples engines or "Middleware" to speed up development times and use less coding time. This saves the development company a lot of money by not hiring as many full time coders on the team. Also, as levels and models get more complex, the art departments of most game companies will expand a lot over the next few years. The drawback there is that defining wether art is "good" or "bad" is subjective at best, not to mention so far, the pay is not nearly as good as a excellent coder.
I will state right now that unless a miracle happens, you will NOT get a position such as "Project Lead" or "Lead Producer" off the bat. Noboby hires those people the first time unless you happen to fill that position in a previous project with a proven track record. (See: Warren Spector, *gulp* John Romero, American Megee, Etc....)
If you want to program, non gaming and gaming schools will teach you the basics of C or C++. Insist on C or C++, preferably both. These languages are currently at the core of game development, and I might add C is loosing a lot of ground. However, after basic C++ you are kind of on your own. Here is the thing on most academic institutions think about game programming: It is kids stuff. I am not kidding, even though the IDSA claims that the games industry is worth about $28 billion, most professors will not teach you a thing about games or game programing, mainly because if they could program a renderer themselves, they would not be working at a university. Most likely they will then begin to teach you useless database stuff, this is when you start to work on your own stuff. The major areas of game engines can be divided into the following:
1. Renderer
2. Physics
3. Network code (if multiplayer)
Render code is what Carmack is very famous for. He lives, eats, sleeps, and breathes this stuff. Get a book on basic OpenGL and/or Direct3D. Also learn a high level shader language such as
Cg,
HLSL,or
OpenGL 2.0.
Too many people underestimate the importance of physics. Yes even development houses. This is why an average Havok 2 physics engine licence costs $50,000. If you can program Newtonian mechanics into game engines, many companies will consider this a BIG plus. Your school might have a couple real-time simulation classes to cover this. They might use it under the excuse of disaster simulation or something like it. We all know you really want to use it for games.
I am sure Warden and Phoenix can tell you about optimizing the weapons in Gen for as little network lag as possible. Being able to write stuff like that will give you MAJOR props in the industry.
Well what about art? Art is content, content, and more content. The more, and higher quality of course, you create, the better. I would SERIOUSLY learn
Photoshop 7.0,
3D studio Max 6(out in September, you did not hear this from me :unsure:....), and
Maya 5. Lightwave is also good, but used a little less in the industry. (Although, their UVW unwrap R0X0r5!!!!1
) Do learn a mapping tool such as GTK Radient as well. I would like to state that the modeling programs I have listed above come with AMAZING tutorials, so use them.
Ok, now that you know all this stuff, how do you get a job with it? To a certain degree I am asking myself the same question, but I will give you what I have found out.
Network, network, network. Your university will do almost NOTHING to ensure your success in the games industry, they almost don't care about their graduates in general, but placing you in a specific position within a specific industry is not their goal, making sure you meet their employment quota of 95% is. I can't stress enough how important it is to know people inside the industry. The only way to handle that is to meet other developers and impress them. DO NOT ASK THEM FOR A JOB!!! Remember, you want them to want you. If you have a local
IGDA chapter, attend the meetings and become a student member. Do not be afraid to talk to real world developers. Show them your enthusiasm for whatever you are working on at the time. Nothing quite makes a conversation starter like "I am trying to tackle the problem of interaction between real time dynamic light sources and volumetric fog, I was thinking of using a voxel based system to replace partial opacity in the fog itself, do you have any ideas about this?" (This is assuming you are talking to a render god
)
If your community does not have an IGDA chapter, see if you can start one and hopefully bring in guest speakers. Attend trade shows and do similar networking. Yes, this includes Quakecon. However, if you can only attend one trade show go to
Game Developers Conference in San Jose, CA. The developers are very accessible and talkative there without all the hype of
E3.
Well I am really freaking tired right now so I will add a list of books you can read to help teach you this stuff later...first some Guiness...
and then bed.....