Ask HN: I want to be a game developer. What should I do?
I have always admired games and the technology that makes them tick, but never had the chance to work on a real game because where I'm from there are simply no game studios.
But I have recently moved to the US. There are much more opportunities here, but the problem is that I lack the experience necessary for a game developer. In my understanding, modern games are very complex and it would be extremely difficult for a person with no previous experience in this area to just jump in and start working on them.
So, my question is, what should I do to qualify for a software engineering job in game development? What do I need to learn? And another thing - if you are an engineer at Valve reading this, what would I need to show you to get a job at the company?
A little bit on my background, if it helps: I'm a C++ guy, I do know C and can write low-level or system-level code if necessary. Understanding of linear algebra is present. I did work on some simple games in my spare time, but a) there was little spare time between my day job and my studies, so the games had to be really simple b) they all look like shit because I'm no artist.
4 comments
[ 5.3 ms ] story [ 16.4 ms ] threadI'm interested in this question as well I suppose, so upvoted.
>> tools devs, who build the tools needed to manage the game environment;
>> server devs, for those games with a multiplayer component'
>> network stack devs, because that piece of code must be bulletproof and FFFFFAAAASSTTT!; and
>> AI devs, to guide the NPC's to their prey...;
Gone are the days of Epic's Sweeney and ID's Carmack, guys who would sit and write an engine in a week. Valve-type games are now million-dollar budget epic sagas. That said, there's nothing wrong with Plants Vs. Zombies... or Angry Birds... they've both made millions.
You need to decide what parts of the process appeal to you, and focus on those. Or, you could write a game, from the ground up, and spend a few months to a year cutting your teeth to learn how it works.
Then, there's always an internship if you feel you can afford a few months working for nothing to get your foot in the door.
If it were ME, and it has been (I sold my game company back in '94 for a pittance), I'd spec out a simple game, write it, add a network component, write it, and get some friends to test it in play to see how it goes. You don't even need cool graphics to start... those can be added later if you design it correctly.
Good Luck!
Just to throw another idea out there, a further alternative would be to work/look at open-source games. Technology wise you are definitely in the correct direction, most common languages in game dev are C++ and various scripting languages (from my experience).
I have no idea how much time you have or what sort of stuff you want to do in games (e.g. graphic/sound engine, networking, ai...) but since you mentioned FPS games, you could look into Xonotic. It is a fast FPS game, open-source and based on a heavily improved Quake3 engine.
That might give you a better idea of what components make a game and you will not have to worry about artworks etc. if you want to contribute/fork.
But I figure, while contributing to open-source will help you understand games better, it will not get you hired without networking I think. You can also check out the SIGGRAPH convention presentations, lots of interesting, although maybe too specialised, stuff there.