Best Education Path To Learn Video Game Programming?
Proudrooster writes "Fellow Slashdotters, I have transitioned to teaching and my students have asked me what is the best path to take to work in the video game programming industry. Which would be of more benefit: pursing a Computer Science degree or taking an accelerated program like those at FullSail? I have a CS degree, and suspect that the CS degree would be of more benefit in the long run, but I would like anyone in the industry to share their wisdom and experience with my students trying to follow in your footsteps. If you could recommend some programs in your replies it would be appreciated."
A couple other questions that might help those students: what non-academic methods would you recommend to students looking for a career in the games industry? What projects and tools are good starting points for learning the ropes?
...is a degree in living on bread and water from what I hear!
Invaders must die
Teach them that unless you're working for a good indie studio, game development is a great way to have your soul crushed into little pebbles of shit.
Seriously, lie to the little suckers. If they're asking about what the best way to become a video game programmer is, they probably haven't actually done anything besides play video games. Lie to them and tell them that a full CS degree is the only way to go, because if nothing else it gets their ass in college at which point hopefully the cluebat will strike and they'll figure out what they really want to do.
The ones who are actually going to become good game devs are already making maps, mods, skins or even full-on games with their pirated version of Creative Suite 5.7.whatever, so you don't need to worry about them.
1) University is a theoretical institution. It will NOT teach you have to be a game developer. That is a practical skill that you learn as you do it. What Computer Science gets you is theoretical foundations of how computers, and programming, works. It teaches you some deep background that can help you be a much better programmer. You can draw an analogy to electrical engineering in that they don't teach you have to make flying robots or the like, what they teach you is the electronics theory so that you can understand how the parts in a flying robot might work.
2) Don't decide you want to be a game programmer. Be a programmer, see where that leads. All work is work, it isn't going to be play, that includes game development. Just because you are making a game doesn't mean you'll have any more fun doing it than making a website backend or something. Learn to program, try out different kinds of programming, see what works for you. Don't limit your job options because you want to be a "Game programmer." If you find a game company that you'd like to work for and their project looks like the kind of thing you'd like to write, great take the job. However don't say "No I'm only going to do game development." As a practical matter there's more crossover than you think. Game development isn't all engine, or often even much engine. Look at Civ 5. They bought their engine (Gamebryo) and only had to modify it. However someone sat down and implemented a first rate XML and Lua parser, that interfaces with a SQL backend. Gee, sound a little like web or database development? Guess what? Same kind of thing except here it parses information on game resources.
3) Understand that game PROGRAMMING is not game DESIGN. Pick up the manual for a game some time. You'll notice that in addition to programmers there are directors, designers, artists, animators, writers, producers and so on. They are all pieces of the process that is game design, they all do their own part. The lead developer? Didn't design the game, unless he is also the lead designer. Even the lead designer didn't do it all, probably didn't have complete creative control. So be real clear on what part of the game process you want to work on. If design is your thing then programming is probably not. I'm not saying don't take some programming classes, you should understand how computers think at a basic level, but I'd say writing courses would be far more important. As a designer you have to put together something that will be fun to play, manage the structure and balance, not implement the code.
I think too many kids get obsessed with game development as the one and only career they'd want as a programmer. That is not a good thing. It is never good to limit yourself to only one particular kind of career in a wide specialty. No matter what you do, there are parts of work that don't change: Meetings, deadlines, assholes, problems, etc. More important to like what you do and who you work for/with than to be concerned with the final product. You might find that programming a high performance audio application (like say a sampler like Native Instruments Kontakt) just as challenging and interesting as programming a high performance game engine.
Don't think that because games are fun work with them will be fun. It can be, but not because of the games.
Also be aware that working in something can ruin it for you. Doesn't happen for everyone, but it can for some. Know yourself, and know if this is the case. I am one of those people. There was a time when I really toyed with my system. I overclocked it, I tinkered with it, it was a "geek computer." No longer. I build it myself, but out of parts designed for stability. I use Intel motherboards, that won't overclock even if asked. I throw money at problems, rather than time. Why? Because my profession is computer support. I spend all day troubleshooting computer problems of various sorts, I've no patience for it at home. It isn't fun anymore. I'm not saying I hate my job, far from it, I do what I want to do and I rather enjoy it. However it removed the fun. It is work now.
During my CS studies, I was considering to start working in the gaming industry too, but finally decided against it. My naive concept of working for a game studio was that I would sit together with creative guys and think about what cool games we could do and what nice features we could put into and how we could maximize fun.
.. even if in reality it would make it "just another boring FPS".
After talking to people who worked for different german game studios, my picture changed quickly. I found out that what most studios needed were programmers, programmers and programmers. And those kind of programmers who would sit around for 80+ hours per week and hack C code. Not really my understanding of "fun". Sure, there are other guys like the graphic and animation dudes, sound and music, asset management but in non of these would fit my CS background.
So I learned that what I initially was looking for, was becoming the lead game designer. Nothing you could expect to become with no hisotry in creating games plus at least 7 years of experience in the industry. And even if I magically would become a LGD, even he doesn't have all the creative freedoms I had image he would have. One guy told me, that a game they developed was starting out to be something like a sci-fi RPG, but one day they got a call from the publisher who told them, that "with all the LotR stuff going on, we should do something with hobbits and evles".
This might be different in the US, but in Germany you seem to be pretty much the slave of the publisher and and are bound to every shitty idea they come up with that would make the game better selling
So my bottom line is: if you love to code and already are a good programmer, go for it. If you want to "design" cool games you might be dissapointed how uncreative the whole process is.
Clearly this is just my personal subjective view, but I'm pretty sure many of the people who "want to become a game designer" have similar faulty expactations.