Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Games

Best Education Path To Learn Video Game Programming? 240

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?
This discussion has been archived. No new comments can be posted.

Best Education Path To Learn Video Game Programming?

Comments Filter:
  • IANAGD (Score:3, Interesting)

    by rwa2 ( 4391 ) * on Wednesday October 06, 2010 @03:38AM (#33805230) Homepage Journal

    But really, let them focus on the tools. Go for the CS degree. The art will follow. Or rather, develop the art in concert with the tools. But you need the tools!

    Learn the programming, then hack in something using the tools and a good existing game engine, such as the Valve Source engine (relatively easy to script for with Garry's Mod) and maybe something more complex with the Unreal Engine. They don't have to be total nerds to grok the code, but you do need to empower them with the ability to make gameplay changes to an existing engine.

  • by Cidolfas ( 1358603 ) on Wednesday October 06, 2010 @03:46AM (#33805280)

    From what I understand of the games/gaming industry, programmers have a short lifespan and are easily replaced without pay at a major studio. If they really want to make games, tell them to start making games ASAP, and ask them if they think they can do that 80 hours a week! If they do, then it's a tossup: the DigiPen and FullSail programs give them focused experience (note: hiring managers are reported to not care that they went to gaming schools), while a CS degree gives them career flexibilty.

    Personally, I'd sit them down and ask why they want to make games, and if it doesn't sound like they want to because of a desire to be clever with object inheretence or design complex AIs, encourage them to take storywriting or point them to a program like my Alma Matter (UT Dallas)'s Arts and Technologies (ATEC) program, where they can help a kid develop art and storytelling skills and give him experience making projects of all kinds in fields. From there he can work his way into industry the old fashioned way: tons of unpaid hard work for the love of it, perhaps with eventual success by getting hired. Being a CS gaming guru is great if you're interested in writing a network stack for a multiplayer game or increasing the engine's efficiency with DirectX, but most kids who want to get into games aren't thinking about those jobs.

    Being unemployed (B.S. in Chemistry, likely going back to Grad School in one of a few fields next year if anybody in Texas is hiring and reads this. Also capable in IT and PHP development.) I've got some time to think about this myself, and I think I might try to make an indie game working with an artist friend of mine. If that works out, then I might try and make it work as a career, but from what I've read working ANY job in the gaming industry requires loving the medium and loving making things more than any love of money or sleep (unless you're a publisher, accountant, or HR, then I hear it's a better work environment with similar pay to other positions). In fact, that goes for doing anything creative in today's society. Encourage your kids to take a serious look at what they want in life and if the reality of the gaming industry fits it.

    And, when they don't do that, point them to CS. If they hate it, they'll have the math for almost anything else in college so they don't lose a year.

  • ObAbstruseGoose (Score:4, Interesting)

    by tommituura ( 1346233 ) on Wednesday October 06, 2010 @03:47AM (#33805290)
    Show them this: Rite of passage [abstrusegoose.com], and you'll save them some pain, at least.

    On the more serious side, tell them to simply get cracking with maps, mods, skins, simple game programming (like asteroids/minesweeper/etc), scripting, etc.
  • by Haedrian ( 1676506 ) on Wednesday October 06, 2010 @03:53AM (#33805330)
    ...from working in ANY ICT related industry - especially development ones - is that there is no such thing as "Knowing enough" or "Too much knowledge"

    Going on that, make them choose the full course - it'll show them the hard work, dedication and speed of learning which will be expected from them for the rest of their career.
  • by rainmouse ( 1784278 ) on Wednesday October 06, 2010 @04:00AM (#33805366)
    Please note, from what I've seen port folios count for a lot more than degrees in games development, which are usually either soft courses or badly written and usually using technology 5+ years out of date. There are some good ones out there but they are few and far between.
  • Get a CS Degree (Score:2, Interesting)

    by KulSeran ( 1432707 ) on Wednesday October 06, 2010 @04:09AM (#33805416)

    Companies will hire depending on who they are looking for. There is some stigma about the trade schools sometimes, and a CS degree will get you to other jobs aswell. While it is a flame-war-able debate, I'd argue on the side of a CS degree over the tradeschools. Trade schools are good, as I work with several people who came from those degrees. But there is a divide on knowelege. Trade school degrees like FullSail give a good overview of the game aspects of programming and design, but they lack some of the more fundemental courses of Computer Science and Mathmatics (like compilers, languages and automata, operating systems, parallel programming, etc.) The CS degrees on the other hand lack a lot of the hands on programming courses focused on game specific technology like Graphics, AI, and Design. Really, the best bet would be trying to get the best of both worlds.

    Also, let them know that the pay is lower for the hours worked when compared to other computer programming positions out there in the world. They have to be motivated to make games or they are going to burn out fast. And, yes, the ones who actually want to make games should already be making them. If you start making games/programming when you get into the industry you are 10-15 years behind the people of the same age who were actually motivated to work in their free time.

    Point them at good side resources. What are they interested in? Send them to Wii/PSP/PS2/PS3 homebrew sites to learn to hack away on real hardware. Send them to modding communities to make HalfLife 2 mods, or Quake maps, or Starcraft 2 maps. Send them to places like http://www.gamedev.net/ [gamedev.net] http://aigamedev.com/ [aigamedev.com] http://www.gamasutra.com/ [gamasutra.com] or other high profile programming forums.

    Encourage them to do ACM programming contests or topcoder.com programming contests. Get them to learn to solve problems, debug programs, and use source control. Get them to explore stuff other than programming; having a good understanding of art, music, or some other set of game related tallents helps out the team flow.

    Even after doing a tonne of programming on the side since forever ago, I still don't feel like I learned enough before becoming a dev. And after two shipped titles, I can say you still have to learn on the way. Technology changes too quickly to ever stop learning. Getting to the goal of being a game developer isn't the end of the road.

  • by Sycraft-fu ( 314770 ) on Wednesday October 06, 2010 @04:27AM (#33805488)

    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.

  • Go for the CS degree (Score:3, Interesting)

    by tempest69 ( 572798 ) on Wednesday October 06, 2010 @05:09AM (#33805660) Journal
    If a person loves making games, it's in them, and they can keep at it in a CompSci Framework. And have a degree that makes them marginally employable should the job market be full. A theory based CompSci program can really change the way you understand solving problems. Writing an in depth compiler makes a huge difference in your ability to understand how programming works or fails to work. Now I dont have a game degree, and there are some solid concepts that could make for a very rigorous course of study. But I suspect that the field is too new to have any respect outside of a small group of people who know the system.
  • by Rough3dg3 ( 1372837 ) on Wednesday October 06, 2010 @05:33AM (#33805784)
    I graduated from a university of Abertay two years ago with an honours in Computer Games Development. I have since stayed in academia to complete my PhD and have the fulfilling job of teaching a few modules on the first, second and third year courses. From my experience in taking the modules and teaching the modules, a degree in CS would have done me just as well, probably better, than my current degree. I have found myself in situations having to explain basic programming concepts to 3rd year students, the same students who were fast tracked into Playstation 3 and XBOX 360 development. I don't mind that they don't understand a particular algorithm, I get frustrated that they don't understand the concept of an algorithm. I don't mind that they don't have a natural talent for mathematics, I get exasperated when I am continually asked "Why do we need to know so much triangle stuff". The best module I had was a module named "Languages and Compilers". Sadly, the module never came up until four year but increased my understanding of programming languages more than 3 years of programming modules. My wish, with hindsight, would be doing my degree in CS and learning the graphical aspect of programming in my own time, creating a library of small, simple yet well programmed games for any future employer to see.
  • Re:Why? (Score:3, Interesting)

    by xtracto ( 837672 ) on Wednesday October 06, 2010 @07:11AM (#33806268) Journal

    THIS.

    Back in the day (around 1992, the time of MK, Wolf3d, UltimaVII, etc.) when I was 10 years old I wanted to be a game developer with all my heart.

    I knew also wanted to be into computer programming, and knew how to program in GWBASIC. I made my own very simple games while learning C/C++.

    Fast forward to Univesrity, I gladly chose Comp. Sci. course but, after reading a lot (I used to buy the GameDev magazine which was overpriced in Mexico) about the state of the videogame development industry (it is like the American dream... you can be reaaaally successful [like John Carmack, etc] but the 99% of people will get miserable jobs) I chose to do something else.

    Nowadays I do computer models and simulations (similar in some ways to the part of games I liked) for research (I've got my PhD in Comp. Sci) AND I develop homebrew games in my spare time (I'm right now into DS Homebrew).

    This path has ensured me that I still have fun developing games and I earn money doing something that pays pretty well, allows me to travel (right now living in Germany!, last week visited Czech Republic!) and I am quite free with my working time :)

  • Re:Why? (Score:2, Interesting)

    by xtracto ( 837672 ) on Wednesday October 06, 2010 @07:25AM (#33806340) Journal

    I just want to add to my reply focusing on the actual questions by the submitter:

    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?

    In no particular order
    - Learn to program C and C++ (no not C/C++, learn their differences)
    - Learn some scripting language (Lua is used in game programming a lot, Python is also OK)
    - As other have said, learn to use tools like Blender, mainly so that they *understand* what does it mean to make a game.
    - Work in an Open Source game. Just browse around SourceForge and look for a game... (start with simple games like http://www.wormux.org/ [wormux.org] before going all the way to 3D).
    - Redo old games... everytime I want to learn a new programming language (or platform like Wii or DS) I do a Tetris clone. Doing a game which is "predesigned" will allow you to focus on the actual *programming* so that you ensure you learn the needed skills. Additionally, you can keep improving the game by adding new stuff as you learn about the platform.. 3D tetris, etc).
    - Read books. There are lots of books about programming (e.g. game programming all in one [amazon.com]) for very low prices. In the beginning it does not matter if the book is a bit old.

    - Finally, after you have tested all that, choose in what part of the game development process you want to specialize. Do you *really* like coding?... or you prefer doing the 3D models? do you like designing the scenarios? or do you prefer the sound? Do you like to create the NPCs AI?. You must have in mind that in commercial games each of these aspects is foreseen by a different person (or group of persons) so it is very likely you will have to specialize.

  • Passion or fad? (Score:4, Interesting)

    by Rophuine ( 946411 ) on Wednesday October 06, 2010 @08:36AM (#33806700) Homepage

    I've been the student who desperately thought I wanted to write computer games. I've been the interviewer (for a financial software house) interviewing ex-games-programmers. I've been a team-lead mentoring ex-games-programmers. I've worked with a 1st-level phone support guy who'd spent 6 years as a hardcore C++ game developer but couldn't find any software work and had to take a support job.

    First of all: tell them not to do it. The glory isn't what they think. The fun isn't what they think. The hours will suck, and the rewards will be average. Their shop will go under, and they will be competing with their 30 colleagues who are also out of work for whatever local jobs are going. They will come out as hardcore coding junkies with mad skills, and then end up taking jobs as interns under 'developers' with half their talent.

    But: they will work with a bunch of young people, on crazy deadlines and massive unpaid overtime. They will meet some crazy people. They will eat a lot of pizza, and they will get free time on their competitors' games. They will be part of a tightly-knit, fast-moving industry which teaches them amazing technical skills. They will get no credit for it.

    If they're sans-girlfriend, have few commitments, and want a few years of madness which they'll walk out of at the end with few rewards apart from the experience, they should pursue it. They need to know that it will suck the life out of them, they will feel under-appreciated and over-stressed, and they will probably need to rely on friends and family to get through lean times. It's an option when they're young. It's like traveling. Do it now: you won't be able to when you're older.

    I'm speaking purely from a coding perspective, when it comes to skills. Maths, physics, and good coding skills. They need to know all about pointers, recursion, memory-management, event loops, and algorithm efficiency. They should pick an open-source engine or game, and try to contribute (this will help massively in landing a job).

    Most importantly... they shouldn't do a FullSail course. Or whatever. Game programming is a long-term prospect for ... maybe 1% of gaming coders. I made that statistic up, but it's not high. You will move on. When you do, you do NOT want to be showing up to your interview at the software branch of some financial firm or engineering shop with no credentials other than a games-programming course and game programming experience. CS and some physics and maths courses will go a long way towards landing you a decent 3rd or 4th job. A games-programming-centric accelerated course will dump you in your ass in 4 or 5 years time with no credible education and barely-credible experience (however unfair it is, most people interviewing you will NOT lend your years of low-level C++ development much credit at all).

    There you go. Doing a focused course MIGHT land you a game-software job, at massive cost to your future. Doing a CS course also MIGHT land you a game-software job. There's probably a slightly lower chance (or perhaps even a slightly higher chance!) But, your fall-back and long-term career prospects will be massively better off with CS. When you fall in love, buy a house and a puppy, and have kids, you will have career prospects at companies which leave room for those things.

    I've seen it. Go the focused-games-programming-course route, and you end up with 6 years of good software development experience and having to take a crappy support job at a company which doesn't give REAL developer jobs to people with games programming degrees, making 10k less than the graduate CS guys. It's shit-unfair, but I've seen it.

  • by lowrydr310 ( 830514 ) on Wednesday October 06, 2010 @08:58AM (#33806906)

    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.

    I have a handful of friends who work at one of the big name developers. This is exactly the case. This is only a guess, but it's probably because of supply and demand. There are so many people who want to work in the industry that many are willing to accept long hours, low salaries, and abusive management. If you don't accept these terms, someone else gladly will.

    Now I also have a bunch of friends who work for a flash game developer (think facebook games); it's a much different there than it is that console/PC game studios. They work long hours, but they all have fun doing it and they get paid very well.

  • Re:Oh boy (Score:5, Interesting)

    by Steauengeglase ( 512315 ) on Wednesday October 06, 2010 @09:42AM (#33807374)

    I think the guy who did Minecraft would like to speak with both of you. You don't need a cast of thousands, just a product that sells. See Xanga for more info.

  • Re:Lie to them (Score:2, Interesting)

    by jimrthy ( 893116 ) on Wednesday October 06, 2010 @10:15AM (#33807790) Homepage Journal

    I mostly agree with you, except about one point.

    It's been my experience that a CS degree is mostly a waste of time. The kids who are going to be great programmers started in high school, or even earlier. Pretty much every time I've had to deal with some kid fresh out of college with a CS degree, it's been a nightmare. He's been taught a bunch of useless theory by clueless academics who can't begin to imagine what it's like to write software in the real world. He's convinced that he knows everything, and that I'm just an old fogey who hasn't bothered to stay in touch with modern technology...even though all the stuff he learned in college is at least 5 years out of date.

    I've met one exception who proves the rule. Have them get a math, physics, EE, or some other "hard science" degree instead. For that matter, some of the best programmers I've worked with had music degrees.

  • by Surt ( 22457 ) on Wednesday October 06, 2010 @10:51AM (#33808282) Homepage Journal

    NB: I worked for blizzard on Diablo, Diablo II, Starcraft, WOW.

    A generic CS degree is good enough to land you a game job if you can prove you can write games. A games degree may NOT be good enough to land you any other kind of CS job you might want in the future. Furthermore, the games-only programs are generally laughed at in the high end of the industry.

    And, like me, you may find yourself wanting to work at the high end of the industry one decade, and wanting out of the industry the next. The games industry is very much a frat environment. Which is great fun when you are up to about 30 years old, and suddenly starts looking like a complete waste of time when your first kid arrives, and you start wishing you didn't need to spend 70+ hours in the office every week. In all seriousness, it is a fantastically fun environment ... with an extraordinarily high burnout rate. Make sure your long term choices include that likelihood of burnout.

There are two ways to write error-free programs; only the third one works.

Working...