You are a creature of the night. You believe in the Matrix. Your PC is your best friend and an extension of your body. Coffee is part of your life force. Passionate about doing everything your way and super awesome! You understand languages that cause most people brain damage. We are NOT vampires and we DON'T glitter in the sunlight, those are pure misconceptions!
Programmers take 3 parts Art, 2 parts ideas, and 1 can of Red Bull and voila! You get an amazing game!
Seriously though, programming in the game industry is quite challenging, but very rewarding at the same time. So let's jump into it shall we?
What do Programmers do?
- Give time estimates on tasks in order to create a schedule at the beginning of every project.
- You will also create documents with all the technical details on every feature in the game.
- Implement features according to documents and the Game Designers vision.
- Code thousands upon thousands of lines.
- Lots and lots of bug fixing.
- Evaluate and improve game performance.
- Create clear and easy to read code that follows your companies coding standards.
- Leave plenty of comments on important functionality and/or hacks.
- Attend meetings, communicate with the rest of the team on your task status.
These are just a few things I can think of the top of my head. Most times you will be assigned a specific area(s) to work in. It ranges from Audio, Gameplay, AI, UI, Engine, Networking and other areas of the games that will need to be worked on. As a programmer you need to communicate a lot with the rest of the team when issues occur, or if you foresee problems with some of the design of the game.
Now make sure that you understand that as a programmer you don't have any control on the direction of the game. You are usually not there to share your ideas. You are there to implement what the Game Designer and Production Team ask you to do. Not to say that every studio is like this, but most are. I know a lot of people that tell me they want to be programmers, but when I question them about what their aim is, most times they realize that they actually want to be Game Designers.
So what skills do you need?
- C/C++/C# are core languages that you should know.
- Good Linear Algebra, Calculus, Math, and Physics knowledge
- Good writing skills.
- Scripting and web development are usually a good thing to know.(Lua, Python, PHP, HTML, Flash Actionscript)
- DirectX and OpenGL knowledge.
- Command Line knowledge, batch file and script making.
- Source Control knowledge.(Perforce, Subversion)
Now I would also suggest creating a portfolio website with coding examples of your best work. Most employers nowadays request coding samples, and this way you'll be ready for them. Try to be original and don't steal other peoples work as employers will research the code you give them and if you are caught stealing code, it's not going to go over well. Not to say you can't use open source code, but if you do make sure to identify which code is yours and which isn't.
Now this post only reflects tips and hints in a very general manner. With this information you can start figuring out how you are going to approach this type of career if it interests you. Each job is different and may have very different requirements.
I'm sure I'll touch on this again later, but it's a great start thus far!