Becoming a successful game programmer

Started by
8 comments, last by bioglaze 9 years, 12 months ago
I need advice for becoming a really successful game programmer, i'm 16 years old and i know intermediate level c++ and directx. I've big dreams, i want to be successful in my career. What should i do? What are the books you suggest? I want to spent most of my time learning techniques about game programming, it never bores me.
Advertisement
Start making games with the language you are using which in your case is C++.

Success as a game programmer can be measured and viewed based from many different activities.

Perserving in a difficult and challenging technical implementation is one of those. Not giving up when times were tough will get you far.

Implementing a game that flows. Not just showing gameplay but showing the whole package of basic game implementations(main menu, load/save game, highscore, dialogue, animations). If the program can transition from main menu to gameplay and then go back to main menu, it does show care went into the technical design of the game.

Personally, I never used books. I learned through reading API and game development articles(even from games that used a different language than I used). Concepts from different programming language can be applied the same way.

Building games (and game technology if that is your interest) is my recommendation. Practice is important. Through doing, you find the areas in which you are lacking and you can work on it.

On top of this, books and articles are useful to fill in your knowledge gaps. I don't have any specific titles as I don't read many books nowadays, but any books on the topics you are interested in would be useful.

You'll eventually find out your areas of interest (i.e. rendering, AI, character animation, physics, etc.) and you can start researching those topics more in depth, and targeting your projects to work on these skills (many professionals are only skilled in one or a few areas). At this stage I find it is more useful to dig into books and papers. I find the "Learn to program games" style books are fairly poor in general and are not detailed enough, plus you can generally get just as good information for free online. Books on domain specific topics are generally better and provide adequate detail to actually learn from.

At your stage, you'd probably want more academic books, rather than practical game programming ones. A good reference book for C++ (or whichever language you are working in) is useful, as well as a book on data structures. If you're not interested in reading books at this stage, google and sites like this are great for asking specific questions on problems you're having. You'll cover the other topics in post-secondary school anyways.

Having a collection of impressive demos is a good way to get seen, You could also even mod existing games and get some experience there. A degree in something like Computer Science will certainly open up some doors, but that alone is probably not everything. Read lots of books, and stay busy doing stuff. I'd recommend Game Coding Complete as a good book to start with.

Also having connections with other developers/people, maybe around your age or from a community. People may not say it's as important, but being able to share idea's and experiences will help you if you're having a difficult time for what ever reason. Nothing sells or get's played if no-one knows about it.

Obviously this kind of thing comes after you have the ability, but all the comments above are about that.

#1) Never underestimate the value of networking. Attend events that you are able to, introduce yourself to people, and make yourself memorable.

#2) Don't limit your learning to games. Software development and computer science are huge fields, much of which is universally applicable. If you only study games, read gaming articles, and look at what other games programmers do you are shutting yourself off from huge swaths of knowledge that you can use.

#3) Learn to code. Write readable, clear code. Learn to comment effectively. Use whitespace. Learn the 'standard' style guidelines for a language and follow them.

#3a) Learn universal algorithms, data structures, design patterns. This goes back to #2. The more tools you have in your toolbox the more potential solutions you will see to problems. Hashmaps are not the universal answer to everything.

#4) Study as much math as you can get your hands on. If you go to college, consider majoring in it, or at least a minor if you get a CS major. Higher math like linear algebra, differential geometry, topology all come into play in game design and implementation.

Beyond that - do you just want to be a game programmer or do you also want to learn to be a game designer? That's another set of skills you may want to pick up that include writing, artwork, modelling, sound, character development, theory-crafting, etc... Even if you don't master those things, knowing enough where you can have an intelligent conversation with the people who do specialize in those areas can't hurt you. Make sure your writing skills are strong enough that you can write a short paper without spelling and grammar mistakes: for good or ill, that's one of the criteria we use to judge others by (that and usable vocabulary).

Finally, work on your people skills. Read Dale Carnegie's books and if you ever get the chance to take the course, jump at it.

"The multitudes see death as tragic. If this were true, so then would be birth"

- Pisha, Vampire the Maquerade: Bloodlines

I need advice for becoming a really successful game programmer, i'm 16 years old and i know intermediate level c++ and directx. I've big dreams, i want to be successful in my career. What should i do? What are the books you suggest? I want to spent most of my time learning techniques about game programming, it never bores me.

So you want to spend most of your time learning techniques about game programming. But, what is "game programming"? It is a very broad field that encompasses concepts and techniques from many areas of knowledge.

Yes, you can study game programming as a self-contained discipline; there are books about it. @cyberpnk recommended Game Coding Complete, and I recommend Game Programming Patterns (which you can read for free).

And then you find out those books assume you have a certain degree of knowledge of a lot of other stuff, e.g. math, physics, and software engineering. The more knowledge you have, the better.

And then you come to the conclusion that, in order to become a good game programmer, you have to study *A LOT* of stuff and write *A LOT* of code. While you can skip college and learn and do all of that on your own, you'll need to put together a study plan and work on it really hard. I think this article is a good starting point.

Study a lot. For the *very* basic stuff, you'll need a decent grasp of precalculus.

Write a lot of code. You say you know intermediate C++, and that's good; you'll also need to know the basics of algorithms (time and space complexity, data structures) and software engineering (coding style and organization, design patterns). Learn to design, test, debug, refactor, and profile. Write documentation. Learn how to use source control.

That's for getting started. The more knowledge you get, the better it is for everybody involved - you, your coworkers, your company, your players.

As for becoming really successful, that depends on what is your definition of "really successful". Becoming a lead developer at a major studio? Starting an indie studio and shipping your own titles? Creating a successful engine that you license to other studios? Or something else?

Last but not least, have fun along the way.

Thank you everyone for your useful advice. I've read Frank D. Luna's DX11 book and many other articles on the internet. I've just ordered real-time rendering third edition and after that, I'd read the books you all have suggested and would try to learn c++ in more depth and other languages and work as hard as possible.

I need advice for becoming a really successful game programmer, i'm 16 years old and i know intermediate level c++ and directx. I've big dreams, i want to be successful in my career. What should i do? What are the books you suggest? I want to spent most of my time learning techniques about game programming, it never bores me.

So you want to spend most of your time learning techniques about game programming. But, what is "game programming"? It is a very broad field that encompasses concepts and techniques from many areas of knowledge.

Yes, you can study game programming as a self-contained discipline; there are books about it. @cyberpnk recommended Game Coding Complete, and I recommend Game Programming Patterns (which you can read for free).

And then you find out those books assume you have a certain degree of knowledge of a lot of other stuff, e.g. math, physics, and software engineering. The more knowledge you have, the better.

And then you come to the conclusion that, in order to become a good game programmer, you have to study *A LOT* of stuff and write *A LOT* of code. While you can skip college and learn and do all of that on your own, you'll need to put together a study plan and work on it really hard. I think this article is a good starting point.

Study a lot. For the *very* basic stuff, you'll need a decent grasp of precalculus.

Write a lot of code. You say you know intermediate C++, and that's good; you'll also need to know the basics of algorithms (time and space complexity, data structures) and software engineering (coding style and organization, design patterns). Learn to design, test, debug, refactor, and profile. Write documentation. Learn how to use source control.

That's for getting started. The more knowledge you get, the better it is for everybody involved - you, your coworkers, your company, your players.

As for becoming really successful, that depends on what is your definition of "really successful". Becoming a lead developer at a major studio? Starting an indie studio and shipping your own titles? Creating a successful engine that you license to other studios? Or something else?

Last but not least, have fun along the way.

Becoming a lead programmer at studio.

1. Practise, practise, practise.

2. Try something new (seriously, get out of your comfort zone).

3. Don't use assets from the internet, hire artists and composers (and if not, learn making graphics and audio yourself).

4. Google is your best friend (even the best programmers in the world need to use Google at some point).

5. Stuck at something? Ask! (But don't expect anyone to do the homework for you, people will only provide you simple examples).

6. Be proud of your projects, so don't be shy and reach press from all over the world to spread the word about your game.

7. Also learn important stuff aside programming (game industry standards, game design, ludology, research, game industry ways of working, project management, etc.).

* Write and read code every day.

* Write and read blogs.

* Be active on forums.

* Learn UI/UX design. Simple is hard.

* Release your code and listen to constructive feedback.

* You can never be perfect, but you can avoid making same mistakes twice.

* Make games with your friends/classmates.

Aether3D Game Engine: https://github.com/bioglaze/aether3d

Blog: http://twiren.kapsi.fi/blog.html

Control

This topic is closed to new replies.

Advertisement