Best Education Path To Learn Video Game Programming? 240
Posted
by
Soulskill
from the try-the-duke-nukem-technical-institute dept.
from the try-the-duke-nukem-technical-institute dept.
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?
The first thing you need... (Score:5, Insightful)
...is a degree in living on bread and water from what I hear!
Lie to them (Score:5, Insightful)
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.
1st of all: Join the modding community. (Score:5, Insightful)
First of all: Join the modding community. Find a mod that is in active develpoment and that you like and join the team. See what you like most on the project and if you tend more to the programming or the designing side.
Depending on that you have various options: Joining a special course in Game Developement, Animation, etc. like Full Sail or the likes if you're a Designer type. Or regular CS with a focus on Application Development if you are the programmer type.
Anyway you do it, joining the modding community is a must before anything else.
Why? (Score:5, Insightful)
I was under the impression that the consensus here is that video games programming was, at least in the mainstream industry, an extreme sweatshop, slave-like, gaming-enjoyment destroying kind of IT job...
Sure, do it for fun (who doesn't) but joining the industry is a bad idea.
Maybe u should first do your due diligence and warn them about it!?
Re:Oh boy (Score:5, Insightful)
In fact, if you really like developing games, you ought to take 8/5 corporate soul-crushing job (that will crush your soul much, much less) and just make games in your spare time (or at work during downtime) for fun.
Being full-time game devs is not any more glorious than producing yet another client address screen. It is easy to get excited by stuff like playing throught HL2 episodes with commentary on or by reading blog of some lead dev/indie dev/wanabee-dev-smartass, but kids should realize that they are not going to be the ones making interesting decidions and artfully crafting game but peons building someone elses vision under incredible time constraint. Each company only needs few people who say "At this point, we will add x to enforce dramatic tension.". Becoming one of them is unlikely.
Welp (Score:4, Insightful)
Which would be of more benefit: pursing a Computer Science degree or taking an accelerated program like those at FullSail?
I have worked with several artists (and one programmer) from Full Sail on several movies. They are all gifted, talented, and easily employable peeps. I think these people speak very highly for that school. However, I do feel that these are the crem-de-la-crem. I never, for example, met the wash-outs. Whatever students you send that way will need to step up and kick ass. They get hired because we call the school and say "send us your best!"
The reason I mention this is that I think it's more important that the right expectations are set than it is to pick which direction to go. You might get some info that suggests a fairly noticeable change in pay going in one direction vs. another, but it's all for naught if they don't treat it like an extended job interview. I have heard some terrible stories about students paying >$25,000 only to storm off on one of their projects because another student was acting like a tool. None of those stories ended with "he's in Hollywood now!"
I imagine the path down a CS degree is similar, but I haven't heard of cases where impressing the instructor was more important than getting that piece of paper. This is, of course, something I wouldn't want to speak authoritatively about.
I realize that you're looking at the long-term return on the education, but I think that depends too much on the student. If they're insatiably curious, I'd nudge them down the Full Sail route. If they're not, well I'm not saying they should go the CS route, but I would say that they'll have to get the requisite knowledge spoon-fed to them and they'd need to go down a path that'd make that happen.
Join the Omega Theta Pi frat (Score:3, Insightful)
Always Look at Job Lifestyle (Score:4, Insightful)
This goes for any one in an advising capacity: get the person to at least think about (ideally investigate) lifestyle of the job, like compensation, work hours, length of career, level of autonomy and self-direction, etc. Ideally go on premises for at least a single day.
One of the best things I ever did is work on a feature movie set handling animals for a few weeks. Wiped the idea of film school out of my head right quick.
Step 1: Forget about friends and family (Score:5, Insightful)
The game industry is the western world's remaining sweat shop. One of my best friends works in the industry. During the last few months of development he tends to work 14 hours a day, 7 days a week. This goes on for months, and applies to the entire company. Why?
Because schedules in the game industry don't even pretend to be realistic. Marketing decides when the game will be out, and everybody works insane hours to make it so. It's not an exceptional thing, it's routine in the industry and based on game release dates I pretty much know when I'll stop hearing from him for a while. People get forced to do it because most of them are easily replaced due to a lot of other people who think "wouldn't it be cool to make games?"
It's not. He can't even enjoy the games he makes because working on them is so soul-crushing that it's impossible to have fun playing them. Hell, he doesn't even get paid overtime!
So if you really want to be in the game industry, make sure you're a loaner without a family who doesn't like to sleep very much.
A better bet is to get a CS degree, get a job working for some boring company or the government, and mod games as a hobby. Modders get to do it because they love it, on their own schedule.
Not really (Score:4, Insightful)
Not really. Having tried both, I actually found making corporate Java programs to be a _lot_ less stress.
It's not just the deadlines, it's also, well, let's just say that unless you work for some incredibly shitty boss (and you should probably quit then), in corporate jobs you're a lot less likely to have a constant stream of change requests right until the deadline and in fact even past the deadline. We tend to make a fuss when the client wants another field on a mask or such, but few people have a clue what it's like to have Mr Designer come up with great ideas that turn the whole engine on its head.
Also in a corporate database and Java job you may (or may not) have to deal with code that is properly structured and has automated testcases. If you're lucky, comments too. In fact, in some places it may even be enforced. And the need for ugly hacks is also a bit less present. In the games industry you have code written by people straight off college, who never had to write anything over 1000 lines and half of them still think that structure, refactoring or the rest of the theory is something that lazy old has-beens invented to make themselves look busy. If you're unlucky, it'll be code from someone who even thinks he has something to prove. If you're _really_ unlucky it will be script code from some hapless designer who got shanghaied into writing scripts because "everyone knows" scripts are teh easy stuff and game design stuff and no need to waste a real programmer on. Also, not only you'll have to deal with some obscure hack that might be there just to deal with the idiosyncrasies of some obscure driver version from 2005, but it's undocumented and everyone who even knew about it or the condition has long ago burned out and left, so you're left guessing if it's horrible code or necessary. Also, it's been written under terrible time pressure, so not only it's funky code the kind that gets produced on a Sunday evening after a 100 hour week and lots of skipped sleep, but nobody had the time to "waste" with comments, refactoring, test cases, etc.
And so on, and so forth.
Plus, I guess there's the sheer frustration about the creative part. In business a usecase may be dumb but ultimately you have to fit what the client wants done. You can argue about usability or fonts (and lose badly,) but that's about it. In games you may well have played a hundred games in that genre and actually understand better than Mr Designer why that idea is dumb and has failed before. He's not omniscient, and especially for games which get developed more out of "well, let's try genre Y because it sells better" he may actually be designing something he doesn't understand, or even hates. Just look at all the featured copied badly between games, because someone didn't even understand why they're there. Now imagine that you actually do know, and have read the interviews from the designer of the game you're trying to copy, and know full well that what you're asked to implement is a horrible caricature of it. But nobody's listening to you.
Re:Oh boy (Score:1, Insightful)
"That is true for almost any kind of software development, especially when you're young and inexperienced"
No it's not, it's completely different. In the games industry you're not staying late to fix a few bugs you've made now and then, you're staying late because you have to, because it's the only way the project can possibly get done in the allocated timeframe with the resources given.
There are plenty of businesses out there that have reasonable development deadlines whereby you can go on time every day regardless, simply because there are enough resources and reasonable deadlines- I know because I've only ever worked in companies like this, and am now a lead developer myself. I make sure that my team are able to produce quality software in a reasonable timeframe, without having to stress themselves out with long hours and it works fantastically- my staff churn out really good quality code because they're allowed to have a life alongside work and they actually appreciate being here. I can fight my teams corner in this respect without any difficulty simply because we produce software that consistently wows the directors and gives staff at our firm the software they need to do their jobs better.
The games industry, at least, under the large publishers, which is pretty much all of it bar the indies nowadays has a different view on things, it believes the best way to profit is to get as many hours out of people for as little pay as possible, replacing them by eager young developers who are willing to take that shit because they're misguided in believing that working in the games industry is actually somehow worth it.
Of course there are companies outside the games industry that do this too, but unlike the games industry this is not pretty much exclusively how it's done- there are few exceptions in games, whilst there are plenty in business.
Interestingly I was at a game development conference in the UK a couple of years back which I attended out of interest of the subject, and because I do some indie development myself in my spare time. One thing that stood out was the comment from developers at Rare Software, they said that they too had to work horrendously long hours and didn't receive particularly great benefits until - get this - they were taken over by Microsoft. I think the fact it took a take over by a business software firm (and Microsoft of all firms too...) to actually improve working standards, decrease working hours and so forth is quite telling about the whole situation.
Pushing people to despair, taking away their personal life, and keeping them stressed is absolutely the worst way to get good software written in a reasonable timeframe- I've yet to see the benefits of the game industry's way of doing things, it's not as if they're well known for delivering on time is it? They certainly have a much worse track record of overshooting deadlines than most business software groups do and hardly have a great record on software quality either.
Re:Lie to them (Score:5, Insightful)
I've had TWO teen boys at different times ask me the very question "What do I need to do to get into game programming?" and my answer was simple:
You don't. If that is what you *really* wanted to do, you would already be skinning and modding, but instead you are playing games 24/7.
The problem is that they think it would "be fun", kinda of like playing games, but with more control. I did point the older (17) boy to the Steam SDK, which was free since he had a source game, and told him to dig in using the free tools. That lasted less than the time to download the tools. Two years prior, he had decided he wanted to get a job as a "video game tester".... Yea, I know.
Re:The first thing you need... (Score:3, Insightful)
Have a look at the big guys' recruitment pages
Good advice, as long as looking is all that you do. From what I've heard from the people in the industry that I know (not many, admittedly), working for one of the big game development companies is the opposite of fun. Low salaries, boring projects, long hours, and abusive management are considered normal. The smaller companies generally provide a much better working environment.
In any case, the degree is largely irrelevant. They really care about experience. Write a mod for a popular game, or write an open source game. Even write some technology demos or simple web games. Concrete evidence that you are motivated to write games and have the skills to do so are a lot more important than the degree. A degree in computer science will give you the theoretical background that you need, but it won't do anything to set you apart from the other hundred applicants who also have a degree in computer science. A degree in game programming shows them that you want to take shortcuts.
Re:Tell them three things (Score:3, Insightful)
I'm a former game programmer (only got out a few months ago) as well and I agree with you 100%. The short of it for me is if you like playing and creating video games, don't join the industry. Things you enjoy doing are better kept as hobbies. The industry likes to take your excitement and crush it with late nights and by making you feel like crap about every product you make, though I'm sure there are exceptions to that. You might think that the long hours aren't a big deal, but when you're SO/Wife starts telling you that you need to find a new job because she's tired of not seeing and you start considering sleeping at the office you'll start changing your mind.
One last thing, the pay often sucks. There is a high demand for these jobs because people think they want them, so they end up offering you crap money compared to working in other areas of programming. I was offered more money to work in VB6 than I was offered to work on games in C++.
I haven't complete given up on game programming that said, I still work on little projects on my own time, but I won't ever do it for anyone else again.
Re:Lie to them (Score:3, Insightful)
Indeed. To my fairly extensive experience, remarkably few uberhacker-level coders became coders by means of getting a degree in CS of any sort. Almost none of them, actually. I am a physicist, but I teach periodic independent study students how to program in C because nowadays CS departments only teach (crap like) java or C++ -- great to prepare a student to be a corporate clone, not so good for learning how to work close to the metal. I sometimes teach 3rd year CS students who still don't know what a pointer is or how to use malloc or manipulate structs. But with only one, maybe two exceptions, my best students over years have not been CS majors (and the ones that were were smart as hell and did CS not to learn to "program" but to learn about algorithms, assembler, microcode, and systems programming, and maybe to increase their marketability a bit in the process).
Real coders, on the other hand, tend to be born, not made. They learn on their own, usually in apprenticeship with either a specific guru/mentor or (nowadays) with the support of internet-based social networking with distributed guru-level mentoring. In most of the cases I know of personally the potentially "brilliant" programmers taught themselves how to program after taking a single course, maybe two, where they learned just how cool it is to build machines out of words. Sometimes they did this in a terrible language with terrible habits, but by staying up and working on their own projects until 3 am at the expense of sleep and personal hygiene for several years they become immersed in the coder "culture". When I teach one of these guys, it is mostly to beat good habits into them, teach them how to toplevel organize large bodies of code (not perfectly, but better than they have been doing:-), how to use make and unix toolsets if they've been doing all of their hacking in a gui-driven ide that hides all of the guts of the OS and low level interface from them, convince them that not to comment their code is to die either at my hands or at their own when they try to figure out their own code a year from now, how to use svn. Oh and sure, how to code in C, but they ALREADY know how to code, usually in two or three languages (sometimes including C++) -- it's more like "topics in C", making them (finally) learn about pointers and so on.
Some of them are indeed interested in gaming, but all of them are interested in being entrepreneurs. They like hacking on their own shit. All they want is (eventually) a clear pathway towards making a living at it (or getting rich) without having to work for a soul-sucker. It isn't the 80 hours a week that daunts them -- they would LOVE to spend this kind of time on something really cool. Its doing what they are told, working on boring stuff, doing something they think is stupid, not being able to be creative in their work.
So yeah, its a rough pathway to success, but the ones that succeed (and some of them do, at least according to legend:-) still do make four or five million by the time they are 25, usually by getting together with three or four like minded friends and as you say, build a game just because they can and then have enough marketing savvy to actually publish it and make money (until they get bought out or come up with a best-seller and make the big time). That's how at least some companies originally got onto the scene, isn't it?
The open source software process that has been so good at producing toplevel systems such as linux (driven almost entirely by these independent types) has alas not been kind to the would-be game programmer because it is so very hard to SELL games there, and games are way too difficult to produce and maintain without any derived income in the long run. That could still change. One day blizzard might realize that they could GIVE away a linux-native version of WoW (and dump the emulator or VM layers that currently add hassle and cost speed when using it on a primary linux platform, which I did for years until I finally kicked the e-co
Re:I hire games programmers. (Score:3, Insightful)
Ok, it seems that you hire game programmers.
Now, explain me why there is no game programmer in his forties ?
I mean, all the people I know quit working on games at some stage, and I know no team with very experienced developers.
I don't speak about management, since a few developers are able to become managers, but this is very rare too.
Disclaimer: I've been a game programmer during 20 years, and I'm now an happy engineer, outside of game programming.
Re:I hire games programmers. (Score:3, Insightful)
I don't know about his answer, but my guess would probably be compensation and corporate environment. Most game companies design work environments to appeal to younger professionals. Once you get to a certain point, realize most of your peers are younger, you have no upward mobility at the company, and your programmer friends working outside of videogameland are making substantially more money, your love for the industry wains...not to mention the fact that the deadlines are unrealistic and you're likely to be the mature person on the team who actually gets stuff done.
The margins are rough enough in the game industry these days that I can hardly blame companies, though. It's a lot easier to hire younger folk who will work for less to be in a cool industry than it is to hire more experienced people who need to feed their family.
Ask about lifestyle... (Score:3, Insightful)
(These questions are similar to the questions people are asked to consider by career counselors before they go to law school - Working as a lawyer tends to mean long hours and reduced life / work balance. It also usually means a good salary, nice house and a BMW, so most (but not all) of my lawyer friends consider that a fair trade-off. )