How Do You Become A Console Game Programmer?
sknja writes "I am currently a junior in college and am about to begin the last 2 years of a 5-year electrical engineering program. I have a concentration in computer engineering, and a minor in Japanese. Right now, my life revolves around classes, video games, and learning Japanese. Since I am passionate about all three, I want to try and combine the three, my goal being to become an engineer working on game consoles. Since the end of school is drawing near, what steps should I take toward achieving this goal? Do gaming companies ever have co-op or internship positions open?" Is Japanese a practical or useful skill in this context, and how should/do game companies value internships and programming degrees vs. practical experience on game mods?
Hopefully the original asker will answer this question, but from what I read, it seems like he's more towards the hardware end of things (working on designing the consoles) than on the software (working on games for them). There's some crossover, but he's in computer engineering: hardware with a bit of software. Nowhere does he mention programming.
So, is it really wanting to be a programmer, or is it wanting to be a designer of the hardware?
Ability is best demonstrated with a showcase of a playable game or at least a prototype that shows you "get it". If you specifically aim for the consoles, then Game Boy Advance is a good place to start as it has a healthy and active indie/hobbyist developer community.
Game companies often find interns who have no skills to be a mere distraction, they rarely train people to become games programmers although I've seen this happen too! Not many remain with that company today.
As for Japanese, the skill is handy in the first months of development on new platforms when technical documentation is scarce and most of it in the original Japanese form. While this would make platforms like PlayStation 3 theoretically applicable, you'd also have to have serious PlayStation 2 experience to be useful in such teams.
You can program any of the current generation consoles without knowing a word of Japanese. Also for most games localization into other languages is generally done with language experts and little to no specific programming is involved in making each of the language versions.
Perhaps there are opportunities to look into for translating existing Japanese games to the American market. As the popularity of the manga culture seems to be on a constant rise, it's very likely that we will see more of the older Japanese games which were originally never planned to be localized. The code and comments for these are likely to be Japanese, or Engrish at best.
The one advantage you have from your lingual ability is that you can play rare Japanese games and thus expand your knowledge and understanding of the art. Play those games, and make sure you mention it on your resume!
Jouni
Jouni Mannonen | Game Designer, Consultant
On becoming a game programmer -
Programming for consoles ranges from very easy to very hard. Some manufacturers (only Sony so far) provide specific platforms to aid in game developers. Sony's PS2-Linux kit is basically the same as their $10k professional TOOL product, but it's missing support, printed manuals and one of he others (and your games only run on other Linux kits). Others (for nintendo consoles I think) need to be bought from stores like Lik Sang. Finally, there are companies like MS who force you to shell out for the console and if you haven't signed a deal in a few months you have to give it all back.
I would say that developing for a console using these tools is invaluable, sure companies may not regard years of PS2-Linux programming as actual "experience" but it will give you a headstart in the industry if you already know how to program for the platform.
The hardware side -
I know hardly anything about this, but companies usually don't expose themselves that much in this area. But I suppose that you could find a job there and work your way up the chain until you're working on the next PS.
Japanese -
This one is a bit more difficult as it depends on where you want to work. For the game console (hardware) development, then we all know that the life of this spawns from Japan, so learning Japanese would be a must. Programming is a bit different as although some of the best games come from Japan, a lot still come from the English-speaking countries, so it really depends. But if you like learning it, why give it up?
in terms of internships, i know ea does summer internships and allows people to do their masters (and i think maybe their ph.d.) thesis with them. no on else that i know of really does that. from what i've heard, your best bet into getting into the industry is to do in house testing. the thing is though, i don't think that'll help much with programming. sorry i don't have a direct link to the ea internships page for ya. i gotta run and just saw this.
There's this thing that goes "the games industry is hard to get into". You know, get yourself a good degree, maybe a masters, start as a tester and maybe after a few years scraping by... etc etc. Does anyone's experience actually tally up with this? In my experience its easy to get into the industry, provided you can show some basic ability (via a game or tech demo) and have a demonstrable love of games. If you've got a solid academic background, then its even easier. My advice: don't sweat it, just go for it!
There are programs at many universities that will help you get into the gaming industry. Guidehall is one of them. Check it out.
Jouni already posted some great tips, but if I may add:
Don't forget to keep learning! i.e. Subscribe to the Game Dev Algorithm Mailing List Pick up the "Game Programming Gems", volumes 1 thru 3.
Put your knowledge into practise. Write demos. Pick up the Linux PS2 kit, and start learning how the hardware works. Each successive console builds upon the previous one.
Don't forget the general comp. sci. knowledge. Master C++. View the assembly code the compiler(s) generates. Learn STL, specifically what it's strengths and weaknesses are.
Best of luck!
Yeah I didn't see much in programming listed in the original post. SOunds more hardware specific.
But I'd thought I'd throw this out. The Insititute of Interactive Arts and Technology is offerig degree plans (BA,MA, PHd) for game design. Check it out.
Now I've seen Everything
Do yourself a favor and pick up a copy of devkit advance and start hacking. Many, many success stories of breaking into the industry have been heard from hobbyist hackers who produced a tiny demo showing promise, even on the GBA. You'd be surprised how many 2D game programming techniques translate almost unchanged into the 3D realm. If you're interested in 3D console programming, tho, pick up a dreamcast and get the devkit for that.
On hardware design: I have no idea.
On Japanese: Another big move in the industry is to have localised versions of games come out closer and closer together. Wouldn't it be nice if a game could hit a Japanese market at the same time it hits the American and European ones? This requires knowledge of internationalization practices. Japanese is one of the harder languages to support, programmatically, so building support for it into your games will give you a good grounding and excellent experience. Release a demo that parses and displays UTF8 strings on the gameboy advance. You'll be hired, I guarantee it.*
(* not a guarantee.)
- Cloud
You read the headline, but not the actual posted question. If you had you'd realize the headline was wrong. (Listen up /. editors, this applies to you too)
This guy doesn't wan't to be a game programmer. He's an engineer and he wants to work on game consoles. Big difference people!
No Comment.
I was in a situation very much like the asker, when I started college.
I spent a lot of my free time writing my own version of a certain game which will remain nameless, since I don't feel like plugging my project. Once I had something I was happy with, I decided, on a whim, to send it to the creators of the original game, in hopes that they might enjoy it.
At the end of my email, I decided I might as well ask if they had an internship program, and how I might apply to it. They responded saying that they've never had an intern, but they liked my game, and would be happy to make me their first intern the coming summer. After the summer, I was offered a position at the company once I graduated.
So, the two key things in my case were writing something to get a company's attention, and then performing well during my internship. Oddly enough, my linux experience was a huge plus, since I was able to save them a lot of money during an upgrade phase.
Best of luck getting into the industry, and finding a place you enjoy working at. It's always been my dream to make video games, and I can't thank my bosses enough for taking a chance on me.
To sum up the PS2 in short, they were going for high performance, high throughput, and most importantly (to Sony anyway), low cost. If you're going to make 40 million of these things, you've got to make it so that it'll be cheap eventually!
With that in mind, think about why they chose the type of RAM they did (Rambus) and its characteristics (long-ish latency but high throughput for contiguous addresses, nice for DMA), why they chose what today is considered a ridiculously small cache (8KB!), why they've got scratchpad RAM, why DMA is so important, why they chose ridiculous bandwidth between the CPU and GPU, why they chose embedded RAM on the GPU... the list goes on.
If you don't understand what game programmers find important about an architecture, you won't be able to create something adapted to games. And I'm not saying PS2 is necessarily the best example, it's just probably the most accessible modern console. I've heard many say that the PS2 is difficult to program (mostly due to its parallelism which is hard to get your head around at first), but once they 'get it' (i.e. the designers idea of how it should be used) then getting good performance is not a problem.
I'm not a console programmer, but I am (well, will be) a developer doing dev tools and kernel stuff for Xbox.
I personally just went the "obvious" route: gave my resume to my closest Microsoft recruiter and interviewed, etc. I do consider myself the luckiest SOB ever in terms of positions I got to interview for, however.
If you feel you have an awesome game idea, Microsoft actually does make it tons easier to become an Xbox developer than it is to become a developer for other consoles. MS has the Xbox Incubator Program, which takes what MS feels are very good ideas and basically becomes your publisher. They will buy the dev kits and resources you need to finish your game.
Unfortunately, I don't have time to finish my thoughts at the moment... Perhaps later.
You should never take life too seriously - You'll never get out of it alive.
If I'm not mistaking Id and another company or school started an institution for game designers and programers. It's only 1-2 years or so but it'll give you a headstart on attaining your goal.
-illumina+us "I put on my robe and wizard hat..."
I was in almost the exact same situation about two years ago. I graduated with degrees in both CS and Japanese and headed straight for the game industry.
Most of the important stuff has already been said, but I'll add a few more comments. First of all, you must start writing games during your free time. A GBA demo is great, but a PC demo is fine too. If you do a PC demo, your work will probably be more impressive if you minimize your reliance on 3rd party APIs like DirectX and OpenGL. On the other hand, if you can demonstrate a knack for quality game design, good AI, and/or good character handling, writing a demo in DirectX won't be detrimental.
Secondly, pick up some books (somebody mentioned the Game Programming Gems series, which are great) about game development and familiarize yourself with common methods and algorithms. This will help you at interview time when they ask you to implement A* on paper or to explain how you would write a 3D renderer on a platform that does not support floating point (like the GBA).
You've missed the Game Developers Conference this year, but if you are still looking next year it is a great place to hand our resumes and make contacts. You can apply to be a volunteer, and they'll give you full access to the conference in exchange for about 20 hours worth of work.
Finally, there is your Japanese skills. If you are interested in working in Japan as a programmer, I should warn you that you'll face lower pay, the annoying Japanese seniority system, and possibly even longer hours than here in the states. However, it can be done, even by foreigners with very little Japanese under their belt. I'd suggest checking out this article (especially the last 1/3rd or so) concerning (among other things) a professional console developer went to work for Sega in Japan. Also, Tokyopia is a great forum run by foreigners with gaming interests in Japan.
One other thing to consider: Many Japanese game companies have American offices, but most of them only localize and distribute games developed in Japan. Do you want to write code, or perform translation/localization? If your goal is code and you end up working in the States, I am sorry to say that you probably won't have many chances to use Japanese professionally.
waka
On actually doing the Japanese thing, I have actually spoken with one of the lead recruiters from Nintendo's Redmond headquarters. Her comment was that they don't hire Americans in Japan. Maybe here in America.. in their 1 office... but that's it. I would focus more on North America, Europe and the growing player, Australia.
-KenixKil
Nihongo zen zen shaberarehen daiyo!
Even after I graduated and took a job at a company in the US, my Japanese skills got me a foot up when my company started doing business with Japan. Thanks to my collegiate experience I was a natural fit to be the guy that goes on business trips to Japan, and that has afforded me even more opportunity for career growth within my company than I would have expected otherwise possible.
Looking back on my life so far, I can say that deciding to take that class has changed my life dramatically. I've met people and done things I would never have thought possible, all thanks to that one little decision to take the class, and enjoying it enough to stick with it.
FYI it's "gatsu" when you're talking about a date, and "getsu" when you're talking about a length of time. Think of it as "gatsu" always going with "ni". Incidentally you don't really need the "no" there, either.
I've seen one intern position so far posted at EA, so they are available.
Console and PC games are developed with many programmers, as you can tell from credits in them. Each developer puts forth effort into a specific aspect of the game, based on what the game designers intend the game to be.
My guess is that you are primarily interested in the actual physics of the game. Physics may play an important part within a game, but there are needs for interface programming, as well.
Also, console games are beginning to go online. This means there will be server programmer positions available for consoles, but be *unix/MS based, instead of specific console hardware.
So, you can choose from a specific field or just practice as a jack-of-all-trades until you settle on which facet of a game you are interested with.The game industry isn't for the timid. You won't be paid well, you'll work insane hours, there's no social life to speak of - but you'll have fun doing it. It's like being on crack. It's the highest of highs and there are plenty of lows. I usually steer people away from getting jobs in the game industry, but if you really want to do it, then make sure you know what you're getting into and have a backup plan.
I went into the gaming industry, first SEGA, now Nintendo, from an academic background (previously involved in numerical chemical reaction simulation). As games get more and more complex, it's drawing more and more techniques from traditional "pure" academia, especially when it comes to Artificial Intelligence (neural nets, etc), and Graphics/Physics (physical based modelling and simulation, rather than canned animations).
I count amongst my colleagues, many programmers and researchers, etc. who have Ph. Ds who wanted to do something more interesting than working in a stuffy lab or teaching, madly pursuing tenure, and have entered the games field, and don't regret it one bit.
You must love playing games -- that hasn't changed, but these days, academic qualifications are key, and they will indeed count, just like having a good demo would. While there are still greats like John Carmack, etc. who have learned their skills on their "own", solid theoretical academics (even though they don't teach you the "specifics" of console programming) do matter nowadays as well.
As for the Japanese question, I'm working in Japan now, and while there's definitely racism in a overt level, it's not difficult. You also don't need Japanese strictly to be a programmer, and in fact, English is a good skill, since the vast majority of technical literature out there is in the English language. Myself, I started out speaking English, but slowly, by studying books on my own, I learned Japanese -- a much easier language to learn than English, IMO, believe it or not due to the much more structured rules on sentence structure, grammar, and pronounciation!
-- Samir Gupta, Ph. D. Head, New Technology Research Group, Nintendo Co. Ltd., Kyoto, Japan.
I've worked professionally as a programmer (primarily working with graphics/rendering) in the games industry for a few years now, with my most recent credit being MechAssault for the XBox. I'm doing contract work right now though, while pursuing a degree in Japanese.
/. ja nihongo ga dekinakute yominikukute sumimasen.
If you're really interested in games and the language, then maybe pursue a career in localization? That is to say, translating text resources (in-game and out) from one language to another, taking into account cultural differences and sensitivities. Your technical abilities would surely be an asset, especially if you were working with US/EU developers to make their games CJK-friendly.
sou iu koto ni sitara, mazu, pootoforio wo tukuru tame ni ganbatta hou ga iindesu yo. mijikai nihon kara no geemu wo pikku shite, eiyaku sureba ii deshou. owattekara, mata geemu wo pikku shite ripiito shite ganbatte kudasai!
a) learn MIPS assembly
b) learn linear algebra backwards and forwards
c) get a homebrew console dev kit
( for dreamcast or ps2-linux )
d) learn to sleep 4 hours a night max
e) polish your resume
Damn right you should atleast speak Japanese. I don't know a whole lot about gaming industry(I just play games) but chances are I'd guess you'd spend some time in Japan, or maybe you visit there. How else are you going to hit on those hot hot Japanese women? Hell it would make getting a Japanese prostitute just that much easier... Oh wait, I wasn't much help was I?
1) have no life outside of work
2) express a great interest in working on either sound or front end UI
3) If you're interested in Japanese things, it can't hurt to rape Nanking