Future Game Coders - Online Education or College?
An anonymous reader asks: "My cousin is about to graduate high school and wants to enter the game industry. I told him to get a day job (possibly as QA in a game studio) and get an online degree like DeVry's Game and Simulation Programming degree or The Art Institute of Pittsburgh's Game Art & Design degree. I have a BS and an MS in Computer Science, and I've only found what I learned mildly useful for my game programming hobby. Should he suck it up and get a 4-year degree, or is taking online courses focused on game development the way to go? Has anybody gotten one of these degrees and done well for themselves?"
A 4-year degree is better than a fake degree
If he will love game programming for the rest of his life, skip the 4-year degree.
If he might want to change to something else later, say outside of computer programming even, get the 4-year degree.
-Tom
Unless the university totally sucks, a computer science degree contains most of the important stuff for game development: maths, maths, applied maths, more maths. Did I mention some math? Oh, and some system programming.
In the end, thats all what games are about.
I didn't check by myself, but my girlfriend who goes to CMU told me they have a graduate program for game programming thats fairly popular with EA too I think, so then one can kill 2 birds with one stone: have a fairly decent CS degree, and game specific education, with a potential big name having you in their line of sight as soon as you graduate... Its almost a flawless plan, if it is true.
Get the dayjob being a game tester, see how demanding and unlike playing games working in the field really is, and then go from there. Granted, it looks and sounds fun, but for every person who's bragging about how cool there job is there's probably a horror story to match it.
There's no real need to rush to college or start paying for speciality education right out of highschool. Make sure you like the smell the roses before you want to grow them.
He will have far greater options with a regular degree.
An on-line degree is unlikely to open the doors that a degree from a regular college or university will.
Even from a regular college or university, the choice of the school can make a big difference. Years ago, I sent in an application to one company in New York City but never heard back. I mentioned that to someone who was familiar with that company. According to him, it is nearly impossible for anyone without a degree from an Ivy League School to get any kind of development job there.
So the choice of school does matter. A degree from an on-line school won't open near as many doors as from a regular school.
College is there for four things:
a) to further prepare you for a professional working life.
b) to give hands-on training with hardware you couldn't afford at home.
c) for people who can't learn as well on their own.
d) breaking into a career that heavily depends on diplomas.
Ask your cousin if he needs any of this, and he'll know his answer. D is definately a hurdle for programming jobs, but it fades as you gain experience to vouch for your skills.
Begin shameless plug:
Rensselaer Polytechnic Institute just got their new Games and Simulation Arts and Sciences program out the door--your son can get a four-year education in Game Design with one of five concentrations, or elect to take a dual-major or dual-degree with GSAS and a more traditional major like CS, Psychology, or something else.
I'm a freshman at RPI and I'm not planning on transferring into this program, but I am planning on taking a minor in Game Design Studies, which has been available for a couple of years now. I know some of the professors involved in making this program happen, and they've really been busting their asses to make the school faculty and the Regents of New York happy with it.
Read all about it here: http://www.gsas.rpi.edu/
Coding games as a hobby and working in the games industry are *vastly* different experiences. If he's hoping to find a career doing what you do for a hobby, he's in for a rough time.
Vocational education will teach him how to code. A college education will teach a much broader range of things. Note that the games industry isn't all about coding, and if/when he gets sick of it, the college degree will be applicable to a much wider range of jobs.
I'd suggest that he intern at a games company for a little while and see if it's really what he has in mind. And if he thinks it is, then he can choose between learning to code and learning a broad range of skills, depending what he sees himself doing there.
Please note that the questions is about "Game coders", not about music developers or graphics developers. The reason it's better to educate yourself in Computer Science and Software Engineering is because you want to be a scientist / engineer, not a mechanic. Game programming is still programming and has all the requirements (In fact, at times more challenging requirements) as any other sort of programming. And don't we all keep telling college kids to focus on the "Science" aspect of "Computer Science" for the long run benefits?
A Compsci degree will train the student to think in an analytical way to solve problems and understand the mathematical background of games. While a game design specific degree will train the student to follow an already defined path (Which will get obsolete in a couple of years anyway). A computer science student will be able to handle all problems technical or otherwise reasonably well. Game programming is a complex field. Not having thorough understanding of maths and computer science can only produce average-at-best programmers. In fact, in some cases, even maths and physics graduates will be more valuable to a game programming task than a game design degree holder.
For now, knowing game programming doesn't mean that you understand computer science. But the other way round is true (To some extent).
Rather than spending four (or more) years in college up front, perhaps a better choice would be to get into the lifestyle for 6-8 months first.
I would recommend 8-10 cups of strong coffee per day, so that he can stay up writing code for 12-16 hours, 7 days a week (start slow - 10x6, then work up to 16x7). Not fun code, but really mind numbing stuff. Get a good test project, then let him go at it. Figure a good project might be 4-6 weeks long (say, 500-600 hours of programming). When he gets about 75% of the way through - ideally when he starts seeing the light at the end of the tunnel - change the specs. This will be hardest for you, as you'll need to phase the changes so that there are 2-3 new things that need to be incorporated each week, plus 2-3 things that will need to be rewritten. Make sure that you throw in the rolling-rewrite or two - somehting he's already rewritten that "needs" to be changed...again. If you're certain he's not saving old code, do a re-set once in a while to make him re-code something he's deleted as not needed anymore.
If he's not a slobbering idiot in 8 months, he'll at least be ready to save yoy a year's worth of tuition by taking 22-24 credits per semester. And you'll know he can hack the EA deathmarch. Well, at least until he has a family.
Is it just my observation, or are there way too many stupid people in the world?
...and regularly hire programmers. The job interview generally goes pretty much like any other engineering position. If he wants to code, he needs to know how to code. Don't know how to write multi-threaded code? Sorry, no job. Never heard of a pointer? Don't need you. That's not to say a four year program is required, we've hired people from game schools as well. Generally they have a background in CS (working in IT, another BS, hobby programmer) that has given them exposure to hard programming topics. I've found that in general game college doesn't give you any real rigorous CS training, and if you want to be a programmer its no different in this industry than any other.
Oh, and QA won't help you get an engineering job. It will take time away from school. Better off spending that time writing a demo or something, as that would be more impressive than saying how you tested X and thought Y would be a better way to do it.
As someone who works at simply modding other people's game engines, I can easily say that you have no idea what the fuck you're talking about. Games aren't just about having an engine that you can simply throw assets at and run off the assembly line (well, EA may think so). Coding is an extremely important part of game design. Even if I were to agree with your point, SOMEONE has to make these engines that you speak of.
Depending on where you'd like to go with it, you may or may not require a computer science degree. If you're looking to get into the hardcore parts of engine design then computer science may be for you. There's an awful lot of complicated concepts required at that level, both in terms of application design, and mathematics. For 3d engines you need to know a good deal about 3d vectors, matrices, quaternions. If you're looking at programming AI then you've got to have not only a solid foundation of understanding the mathematics of the engine but also AI's own fun programming style, such as finite state machines, and graphs (especially with respect to pathfinding), just to throw a couple of the more popular AI paradigms out there.
On the other hand, if you're just looking at doing game logic code, which is still vastly important to a game (since it handles the details of gameplay), then CS might not be as important. A strong foundation in programming and at least an understanding of some of the topics stated above is an asset. As a modder, this is where I stand now. My education isn't complete, and I simply don't have the time to be fiddling around with creating my own engines or modifying those that already exist.
Game logic includes things like defining how items are stored in a player's inventory, building the bridge between the inventory UI and the inventory in memory, how enemies are spawned, the interaction of agents with the environment, etc. While some may describe it as being more "menial" (i.e. some may claim that there is not a lot of challenge when hooking up an interface with an API), I would say that game logic is still highly stimulating and provides a good degree of challenging problems to be overcome. While engine designers may be making interesting innovations in the world of graphics and physics, the logic coders are the ones making interesting innovations in the world of gameplay. To pull a quick example, Gears of War's "active reload" is something that is handled by game logic and not the engine, and I consider this to be at least a little innovative.
To further a counter-point to parent, the Doom 3 engine was licenced to Human Head for the production of Prey. Human Head did not simply have a team of artists that put assets and maps into the engine until they had a game. There was still a vast amount of change that needed to be made to the engine and the game code to handle the new things that happened in Prey. Portals that could be shot and seen through, anti-gravity, the ability to leave your body, etc. all did not exist in Doom 3. These had to come from somewhere; the coders from Human Head, that worked on a pre-designed engine. "Completed" engines do not preclude programmers.
From an employment standpoint, I can offer no advice. I have never been employed at a development studio nor have I applied.
Beware he who would deny you access to information, for in his heart he dreams himself your master. -Anonymous
I've been programming video games on for about 9 years now, with many shipped commercial titles on various platforms.
For the love of god, get a real degree. "Game" degrees are useless outside the game industry, and a joke and target of pity from within the industry.
Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
I think the 4-year degree is the way to go, assuming you are looking at a programming career path. Here's why:
- Game programming is hard. You need to be a first-class programmer (seriously), and I think the DeVry's degree would put you at a disadvantage.
- The game industry has a bias against online degrees (because of the above).
- The game industry often pays less than other software jobs. Having a better/more flexible degree might get you a better salary, since they will be competing against offers from non-game companies.
- College is fun. You might learn other things not directly related to game programming, and that's a good thing.
As for the path you suggested... as I understand it, QA is not usually a very good path for a job as a programmer, anyway. QA usually feeds more into producer/designer type jobs. To get a job as a programmer, what matters is to get as much programming skill/experience as possible - get part-time coding jobs and summer internships (even if they aren't in games) and try to do at least one really impressive games-related hobby project.One more thing I'll throw out there... if your cousin is only interested in programming because he wants to do video games, it's possible that game programming isn't the job for him. He might be better off as a producer or designer.
Total BS. The staff on most games is about 40% engineering. There are more artists per title than programmers, but the programmers make more money. I know because I work as a Rendering Engineer for a game company.
Programmers are needed to do everything from writing the code to optimize a mesh's index list for the GPU's post-transform cache, to writing blinn shaders, to making sure that the sliders work in the game so that the artists can work. The visual quality of a game depends on both artists and engineers. You need both, and even if you have an engine like Unreal, there is always more work to do.
Here's WHY you want a 4 yr B. Sc. degree:
* You will be exposed to the breadth of comp sci. Games are one of the few applications that require you to know a little of EVERYTHING. Specifically:
If games sound a lot like an Operating System, it is because they practically are!
* Sure some of the classes you will never use again, but at least you'll have the language and the background to know WHEN you should choose one algorithm over another, and the pros/cons of each. i.e. static arrays over dynamic lists, etc. Learning big O notation will help in this.
* YES, you probably could be be a great games programmer without a degree, but it's hard to prove it without experience. To get experience you have to demonstrate you have the knowledge. (classic chicken-egg) That piece of paper shows that at least you
a) understand the basics, and
b) were committed to finish getting it.
* Lastly, don't get into game programmers for the money. The pay stinks, & the are hours long. (BOO Crunch Time). Only the crazy ones survive in this industry (avg turn around time is There is always something NEW to learn, especially when the "next-gen" consoles come out. (Usually scratching your head at trying to figure out how to best make efficient use of the hardware)
Cheers
Just curious. Where the hell is another freespace game?
You mad