Ive chosen to use C++ because of its popularity, but i am new and i want to create a game but i have no idea where to start, and suggestions?
where to start
Senior Staff - Reputation: 24384
Posted 25 January 2013 - 06:04 AM
First, you'll need to learn C++. I normally recommend the fifth edition of C++ Primer, but any book you're comfortable with should be fine. Alternatively, if you're looking for an online resource you might try LearnCpp.com.
Along with whatever learning material you choose to use, you'll need to get yourself a development environment so you can practice what you're learning -- you have to actually write code to learn properly, just reading about it won't do the trick. I normally recommend Microsoft's Visual Studio Express (you would want the "Windows Desktop" version), which is very capable and probably the most popular option, but popular alternatives include Qt Creator and Code::Blocks.
You'll need to spend some time learning and practising the basics of the C++ language until you're comfortable to move on. At that point you can choose a graphics API (such as SFML or SDL) and learn to write programs with animated graphics -- but that's something you can research further once you better understand the basics of programming.
Note that although C++ is popular and very capable, it can be difficult and involves quite a steep learning curve before you'll be able to make games. For this reason many people choose to use a more approachable programming language (such as Lua, Python or C#), or use an "authorware" package that involves minimal or no code-writing (such as Construct 2 or Game Maker). I won't tell you not to use C++ -- and it's definitely a capable language that many people successfully create games with -- but there are alternatives that are perfectly capable of producing quality games but which may be easier to learn or work with; you don't have to do it the hard way.
You might also read this article written by one of our community members for another answer to your question: "I want to be a game developer... now what?"
Hope that helps!
- Jason Astle-Adams.
Members - Reputation: 456
Posted 25 January 2013 - 09:13 AM
I have to agree with jbadams on all points.
It can not be stated enough, that to really learn and grow at programming, you MUST program. So many people I see 'want' to program, and they have 'read' so many books (which is good), but they never actually get started in actual 'coding'. So even if its for 30 min a day, just sit down and play with the language.
This leads to my next point, overwhelm yourself. Dont try to make the next big MMO, FPS, or whatever... just start out making games with what you have learned.
If all you know how to do is print text out to the console, and take in input, make a little number guessing game. Once you get to functions, and arrays, with some file IO, make a little text adventure, with limited commands.
That being said... as jbadams pointed out, C++ is probably not the best place to just jump in and start making games. I started out in C++ in 1992, and only a few years ago picked up C#, and only this year Java. That has given me the perspective, that just for making casual games, or testing out a new idea, it is so much easier to get something up and running in C# with XNA, or in Java.
I feel that each language is like a tool, so to be competent at your craft (programming) you will need all the different tools, so you will eventualy need to learn multiple programming and scripting langues, but just for getting down the 'flow' of making a game, you might want to look at something a bit more 'forgiving' like a managed language.
Good luck, and remember, just CODE.
Crossbones+ - Reputation: 1719
Posted 25 January 2013 - 09:35 AM
I don't have much to add but must agree jbadams and SelethD very good points on both. I'm another of those 15+ year coders and the best I can say is that you should expect at least a few years worth of learning (and practicing). Coding is not easy no matter how much the book's tell you it is. The theory behind it is but programming is more problem solving than it is typing. Knowing the language is one thing, understanding it is another and applying it is yet another. The book only teaches you to know the language, you learn to understand it through using it and hopefully after a LOT of experience and practice with the language you can learn to apply it.
Professional Programmer & Hobbyist Game Developer
Members - Reputation: 857
Posted 25 January 2013 - 06:22 PM
Another good way to learn programming is to not only teach yourself from books, but to also enrol in a programming course as a boost. Formal education(of any level) can help to ensure you know the basics of your language, or to even improve in areas you are weak in. Its not so much the qualification but the skills handed down to you by your teacher.
Crikey, I remember doing an evening class in C++ many moons ago. I didn't come away with much more C++ knowledge than when I started(I was self-taught at the time), but the experience gave me more confidence with programming.
Prime Members - Reputation: 1535
Posted 26 January 2013 - 11:53 AM
In terms of making a video game (knowing how to add graphical stuff bells and whistles) you need to first learn and understand the fundamentals first. I cannot stress this enough! It will make your programming journey less rocky! Pick programming books that are well-written! People above already listed those sources.
More importantly, never give up and program a little bit everyday. You will face challenges and many bugs along the way. But once you fix the bug, it's going to be the most fun you will ever have sitting in front of a computer. Question yourself why you are faced with this problem and ask on forums for insight. Of course, you will need to solve the problem yourself
Make simple games that involves no graphical features first. This is far more important because game are built off of logic.
Personally, I don't think I would have understood C++ until I was competent with Visual Basic and later on Java before C++.
Edited by warnexus, 26 January 2013 - 12:03 PM.
Members - Reputation: 857
Posted 26 January 2013 - 06:41 PM
Warnexus speaks wisely on challenges and bugs. Your first instinct will be to throw your hands up in the air and give up, but a true programmer will investigate the nature of the bug and at least try to understand it. Even when all is lost, one can always ask for guidance.
Whilst some programmers are very gifted and rarely require help, remember that you are part of a large community that is kind and keen to point you in the right direction.
Members - Reputation: 671
Posted 26 January 2013 - 09:11 PM
Game programming can take years to learn, and is especially difficult if you're not at a game college where you can learn everything you'll ever need. Just a heads up, learn how to program in c++ first, then move on to using different API's like Win32 or SDL, Then, if you think your up for it, try to tackle the beast: Directx11.