Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm an entry-level programmer just out of college. As I've found out, I don't really enjoy working on "boring" applications like networking, firewalls, and such.

My dream job would be something like a game developer. What should I be focusing on to move into games development? Are there specific technologies or languages that I should know?

share|improve this question

closed as off-topic by MichaelT, GlenH7, gnat, Kilian Foth, Dan Pichelman Oct 7 '13 at 19:42

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, GlenH7, gnat, Kilian Foth, Dan Pichelman
If this question can be reworded to fit the rules in the help center, please edit the question.

1. Be willing to accept abuse 2. Refer to 1 – Andrew Finnell Aug 12 '11 at 12:49
@Andrew I disagree. You should never accept personal abuse. Huge workloads, tight deadlines, heated meetings - that's par for the course for some industries, but your personal dignity is non-negotiable. I heard similar stuff said about investment banking, and turned out to be completely untrue -- people may be demanding, but they don't abuse you personally. That's unprofessional and unproductive. – quant_dev Aug 12 '11 at 12:58
"Game programming" isn't very specific. What kind of games? What kind of role? – Peter Taylor Aug 12 '11 at 13:01
Read this,… If this is completely above you then stop and throw away your dreams. Now write a PacMan clone. If you can do this and have the passion to do it in a single weekend then you MIGHT have what it takes. Just be prepared for some heavy competition, low pay, and no appreciation. It is a labor of passion and love and it is definitely not for everyone. – maple_shaft Aug 12 '11 at 13:33
If you don't like coding "boring" applications like networking, you wont like coding "boring" applications like socket messaging which is a necessary part of multiplayer game design. – zzzzBov Aug 19 '11 at 3:21
up vote 6 down vote accepted

In many respects it's the same as any field of programming: apply for jobs with game development companies; if they reject you, ask what you should improve before you apply again.

In terms of skills, it really depends a lot on what job you're applying for. Firstly, you say you want a game programming job. Be aware that game programming and game design are not the same thing: the game designer(s) might not do any programming, and the game programmer(s) might not get any input into the design.

In minigames it's not unusual for the entire game to be programmed by one person. That person will need to be able to handle graphics, sound, and game logic (which may include moderately tricky physics) at a minimum, and possibly things like networking and AI too. A reasonable grasp of geometry and algorithms is likely to be necessary. The languages which are most useful here are Flash / Java / potentially JavaScript in the near future for web and Java / Objective C / C++ for smartphone apps. I suppose C# (XNA) is also a possibility. If you're going to have client-server communication then it's useful to understand network protocol design (as in: how do I design a protocol to communicate my game state securely and compactly) and you may want experience in Java / PHP / Python / Ruby / etc. for server-side code. The great thing about minigames is that projects are small, so you can have a regular moment of satisfaction when you release one and see the player response.

In larger games the roles are much more specialised. A large RPG, since you mention that as a possible area, will have a small team working on the engine and a larger team working on quests. The quest development may well be in a domain-specific language, so specific language skills would be acquired on the job. These roles are likely to have a fairly large design component, so companies may look for story-telling ability in addition to general programming ability and understanding of algorithms.

Other large games may have dedicated roles for physics (PhD in physics or maths generally required), AI, graphics (e.g. there might be some people who only write shaders), audio, networking, testing (i.e. writing scripts, not playing), etc. Decide what areas might interest you, look at job postings in those areas, and consider how you might demonstrate your interest and skill. This kind of company is unlikely to be impressed with a Sokoban clone, but if you're interesting in shader dev then having a demo-scene portfolio could impress them.

Finally, I can't let the comments on work-life balance go past uncommented upon. There's more to the world than EA, or even than the USA. In my five years in the games industry I worked 40-hour weeks, solved interesting problems, took home a living wage, and published some fun games.

share|improve this answer

Do a search on Game Development, this subject is discussed a lot there.
For example this one: Is game development a super elite club?
(Well okay, it is a question I asked there :))

share|improve this answer

Getting a job in the gaming industry is simple. Go apply. There are companies. The worst they can do is waste some of your time.

But if you go the professional industry route, be prepared for 80 hour work-weeks with a never-ending crunch time. Game development is cut-throat and the corporate overlords focus is on profit. And forget about having any say in game design. I highly suggest you avoid working for someone and make your own games on your own time. In that case, be prepared to starve. Very few are successful and fewer are rock star successes like Notch.

Java and C++ are fine languages for developing games. C is fine if you enjoy roguelikes. You probably won't have much call for Delphi.

Also, no. No you don't have the skills. Game development has a lot of facets to it other then what language you choose. Graphics programming, user interfaces, real-time constraints, artificial intelligence (or at least something close enough to fake it), event-driven programming, bit-blitting, collision detection, path finding, sound. The list goes on and on and is largely specific to what you're making

Make a game or twenty. Or hire on at a game company. You'll learn.

share|improve this answer
A good article on death marches in video game development… – Chance Aug 12 '11 at 16:03

Start out small. Get a game programming book or two and create something like a Tetris clone and maybe something small in your favorite genre (this is assuming you want to be a game programmer of some sort). From there, build an indie/freeware game or two. Keep building games and getting better at it...continually. All the while you're also building your portfolio. After you have a nice portfolio, present it to games companies that are looking and go from there.

share|improve this answer

Write games. Obsessively. Until you you become great at it. You probably need 10,000 hours, and lots of coffee/pizza.

Sooner or later, if you've got the talent then either:

  • You'll find out your little hobby game is suddenly a hit (see: Minecraft) and never need to work again.
  • You'll have a portfolio of personal game projects which is so impressive that game companies will be fighting to hire you. Then you can pick the one you actually want to work for.
  • You'll decide you actually want to write something other than games. But you'll be such a great programmer by then that I guarantee than nearly any other coding you do will feel easy.
share|improve this answer
I would consider this to be probably the best advice, however sanity comes into play also. When juggling another development job its difficult to go home and spend evenings and weekends developing more and not get paid for it. It comes down to "How bad do you Want it". – Bryan Harrington Aug 12 '11 at 19:46
+1: @CyprUS - Additionally I would add that it's FAR FAR harder to finish a personal project game than it is to start one. Actually finishing a game shows that you can handle the boring and frustrating aspects of game programming instead of "just the cool stuff". – Justin Shield Aug 12 '11 at 22:32
Learn 3d mathematics and C++ like there's no tomorrow if you want to work on AAA stuff. – World Engineer Aug 12 '11 at 23:33

There's no shortage of books covering game design and development. It'd be a good idea to learn about game development and write at least some simple games on your own before jumping into it professionally. Writing games and playing games are very different activities; enjoying the playing of games doesn't necessarily mean that you'll enjoy game development. Also, learn about the industry so that you have a good idea of where you'd like to work.

share|improve this answer
Some people say that once you know how games are made, you won't enjoy playing them so much anymore. – quant_dev Aug 12 '11 at 13:11
@quant_dev, I haven't had that experience. You get less distracted by the graphics and have higher appreciation for depth, polish, and complexity. So your preferences might shift, but I wouldn't say you enjoy playing games less. Maybe there's a little less magic when you spot an AI powered entirely by rand()? – Philip Aug 12 '11 at 15:42
For some, the act of building the game is the game ;-) – Patrick Hughes Aug 19 '11 at 2:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.