I want to be a game programmer.It's my dream.Now I'm learning C++ and I want to ask you what all I must know.What I need to learn?
Thank you and sorry for my english
Jump to content
Posted 31 January 2013 - 08:08 AM
I would suggest:
Posted 31 January 2013 - 10:26 AM
I would not suggest to learn more than one programming language, well maybe knowing more than one won't hurt but you might find your self knowing more programming languages but not to be very proficient in any of them. Keep in mind game programmer as such makes games work on the core level - he programs what is essentially logic of the game. He does not bother with graphics or sound apis and similar stuff. But since you might want to make entire game your self, you should probably learn one graphics api of your choice (directx or opengl), when you understand everything from above list (or most of it). Make small progress from small game to another small game not necessarily larger in scope, just to learn better game programming. There are examples all over the internet search this forum to find out this question has been asked many many times in past.
Posted 31 January 2013 - 12:05 PM
Now I'm sure people will come back to this saying "Our game uses nothing but C++, but we already have a programmer". 9 times out of 10 these are also the teams that have been working on their game for over a year and if they are lucky all they have to show is thousands of lines of code that power their engine, they won't have anything to show as far as the game goes. So of course you should do some research to find where the demand is, from my experience (been doing this for over 15 years now) it's rarely to never in C++. Simply put the big boys are the only ones that finish games AND need a C++ programmer. The C++ programmer that they need must have been a member of previous game projects before they will even be considered. You will end up behind a seemingly insurmountable brick wall when you stick to just C++ (although you will find yourself working your butt off time and time again for teams to fall apart due to long spans of working for little or no results).
I'm not belittling C++ it is a very powerful cross platform language that is among the highest performance languages in existence. I'm simply trying to point out that it is rarely ever actually used in the game itself. It's used to make the underlying engine systems, and 9 times out of 10 even the big AAA companies don't even use 75% of hardware performance issues. As such most successful indie and small development studios get to where they are by realizing they don't need to build an in house engine, they need to complete their game and the way to do that is speed up hundreds if not thousands of times using technology that has already been made available to you. (Eg get an engine, script in the language it wants and you actually finish your game).
Long story short, yes learn C++ but learn the language and the art of programming don't focus so much on using it to access direct x and open gl yet, just learn to program. Once you learn to program start expanding your knowledge and look in to using engines to make games. If you think the performance is too slow go take a cold shower lol. As rude as it sounds if you need more power than something like Unity or UDK provide you are doing something wrong. Unity is just as powerful (if not more so) than you are likely to write yourself (your haven't been doing it for a dozen or so years like they have. They have both perfected the art way better than you are likely too within the next few years and they focus on bettering their engine so you can make a game). UDK is one of the maybe 2 most powerful engines in the world, if it can't handle what your doing nothing is likely to do it.
Edited by Dan Mayor, 31 January 2013 - 12:11 PM.
Professional Programmer & Hobbyist Game Developer
Posted 31 January 2013 - 07:14 PM
Posted 01 February 2013 - 09:34 AM
- Learn several programming languages, but master one (e.g. C++).
- Understand data structures, algorithm complexity, maths (linear algebra, algebra, calculus), and how they are relevant to game development.
- Make lots of games.
Long view maybe.
Starting out, pick one language and stick with it.
Otherwise read this, it pretty much answers your question in more detail than I can go into here.
Posted 02 February 2013 - 04:42 PM
Just wanted to come back to this topic and I hope I'm not overstepping my boundaries on this one but I have noticed this question arising in quite a few threads and in a few variations. Kind of lead me to going in to one of my journal ramble fests of sorts where I write a huge article explaining things the way I see them. It's something I hope will be helpful and I think might help to address some of what you are asking / having problems with as a potential / beginner level programmer. I call it "The Programming Primer", although much of it may seem like a step backwards for someone who has already started learning a specific language I'd still like to offer it to you and to anyone else who makes their way to this post in search of ideas to "how do I start programming". Reading never hurts and what is in this entry may give you some helpful ideas and incite as to what people are saying to you on this thread about the general concept of programming. Give it a read when you have a chance please and feel free to comment and or contact me with your questions or comments as to the article.
Professional Programmer & Hobbyist Game Developer
Posted 02 February 2013 - 07:00 PM
Newbies reading this with little or no prior experience:
You need to program simple applications, preferably console ones, before ever starting to make a game. It only takes a few, maybe 3 to 5 of them, and then - only then - will you be ready to start in making a game. Make "Hello World", simple data base, letter display application, very simple text editor - that sort of thing. Use only a beginner friendly language such as Python, Lua, C#, and so forth. Stay with only one language until you reach intermediate level of proficiency. Do NOT start with C++! It could be a good second language after you get an auto-memory management language understood in all the fundamentals.
After months or even as long as a year, make 3 to 5 very simple copy-cat games. Here is a list to consider:
... or other simple 2D games... Make each one well and add some of your own features before moving to the next one.
Stay on the proven path thru the jungle of game development until you have the experience to be a trailblazer or I guarantee that the jungle might eat you for breakfast, lunch, and supper! ... stay on course!
You can do this! Most people have the natural ability to make great improvements over the coming years in game development, so likely you can too! Stay at it and have fun!
Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.
by Clinton, 3Ddreamer
Posted 04 February 2013 - 10:24 AM
Have a solid understanding of C++ fundamentals and how these fundamentals can be applied to games. Question everything you learn in C++ like "why is this useful and how can I use it to make my life as a programmer very easy?"
I started off having this mindset ever since I started programming. Sometimes, you won't have an idea of how to implement the feature to your game. But guess what many people before you probably got stuck on the same problem you have. You can READ posts and threads of how other people solve it. Don't look at the code but read the ideas of the approach. And then start to struggle with how to implement the code yourself now having the ideas in your head. This will improve your thinking!
Making a game is mostly problem solving! So read , question and apply at the same time!
Start off small because #1 you can get it done. #2 I guarantee even the small project will test your ability as a programmer and project scope and time constraints. Whatever you learn in C++, START applying all of those concepts in your game. If you do not apply, you will not remember it. It's how the brain works.
Once you learn the procedural programming of C++. I would recommend starting with Java after having the fundamentals of C++ down so you can think in an object-oriented way.
Edited by warnexus, 04 February 2013 - 10:42 AM.