Alright, hi everyone, this is my first post in this forums, so I'll introduce myself: My name is Salvador, I'm from Argentina and I'm studying Information Systems Eng., they teach us only Java but I'm learning C++ on my own. I want to work as a games developer, i like designing ad programming games, but I need some help to get started.
First of all, I downloaded Microsoft Visual Studio Express 2012, is it a good IDE to work with? Does it use a good compiler or should I have some precautions when programming?
Secondly, Can you please recommend me some good C++ books? I have basic knowledge in C, and Java.
Third, what tools should I use to develop a simple game? How do I show graphics on screen, and how do I implement sounds?
Any piece of information will be really useful, thank you very much for your help, while I wait for some answers I'll research the forums deeper, I'm sure I'll find lots of useful stuff here!
Thank you very much!
Basic questions to get started on games development.
First of all, I downloaded Microsoft Visual Studio Express 2012, is it a good IDE to work with? Does it use a good compiler or should I have some precautions when programming?
Visual Studio is an excellent platform to work with. I would highly recommend using it as a learning tool, it has a nice environment and if you ever get a job programming they are probably going to use VS.
Secondly, Can you please recommend me some good C++ books? I have basic knowledge in C, and Java.
I haven't done much C++ reading, but I learned quite a bit from: Object Oriented Programming in C++, by Robert Lafore.
I read the old second edition, which was all about programming for DOS, but I still find it relevant today. He is now on the fourth edition, which I'm sure is much more relevant for modern systems and a better guide over all.
Also pick up a copy of Code Complete by Steve McConnell. It has general information that can be applied to pretty much any language and focuses on good structure which is important in large projects like games.
Thanks for your answer!
I've found this site which has a nice tutorial, but I'm getting really frustrated with the docens of missing dll files, and so many other problems that I can't even begin to understand. (http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition.aspx , I hope I can post this link gere, otherwise I'll remove it).
you can not legally sell anything you create with it unless you purchase the very expense professional version. I would highly recommend using it as a learning tool, it has a nice environment and if you ever get a job programming they are probably going to use VS.
I don't see this anywhere in the VS 2012 EULA. Most restrictive thing I see on there is that you can only distribute programs for use windows, but since it won't compile anything for another operating system that seems a tad moot.
The license is available in the "licenses" folder in the main install directory.
Also, for games on windows right now I'd recommend directx for basically everything, since that's the only thing that is clearly going to be around for a while at this point. As for books, you might want to get one that covers C++11, since that adds a ton of new features, but I don't have any recomendations for that since all my books are old. Microsoft's compiler is dragging its feet a little bit on some of the c++11 stuff, but other than that it should be fine.
Both http://www.cplusplus.com/ and http://www.learncpp.com/ are great websites for learning C++.
As for what tools you'll need for game development - an API is needed for displaying graphics, handling user input, and sound output. A recommended API is SDL, and there are a bunch of tutorials at http://www.sdltutorials.com/ that will take you through concepts such as the game loop and graphics rendering before going into more complex game creation.
You might want to give my Python video tutorial series a try: I basically livecode an entire game from scratch, and you can follow that step by step.
Make sure to get a really good book:
http://isocpp.org/get-started
http://www.parashift.com/c++-faq-lite/buy-several-books.html
http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
I'd personally recommend "C++ Primer, 5th Edition" by Stanley B. Lippman, Josée LaJoie, Barbara E. Moo:
http://www.informit.com/store/c-plus-plus-primer-9780321714114
It's one of the very few books available right now that cover C++11.
Feel free to completely ignore 99.9% of on-line tutorials -- most of them are outdated and use poor (and obsolete) coding techniques -- I'd stay clear of these.
Third, what tools should I use to develop a simple game? How do I show graphics on screen, and how do I implement sounds?
SDL ^.^
covers windowing, sounds, images, input handling etc.
for drawing graphics OpenGL or Direct3D
Thanks for your answer!
I've found this site which has a nice tutorial, but I'm getting really frustrated with the docens of missing dll files, and so many other problems that I can't even begin to understand. (http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition.aspx , I hope I can post this link gere, otherwise I'll remove it).
... that there is an excellent tutorial...
The catch is, it's written for VS 2010, and I do not believe SFML ships with 2012 binaries (or even 2010!) so that adds a gigantic barrier of entry for new developers. I am fairly certain 2012 and 2010 are not binary compatible, meaning you need to rebuild the C++ libraries ( like SFML for example ) for each different version.
Maybe one of these days I will download and install 2012 and make a compatible project available for the tutorials. If you search on the site, there is a post about building SFML, but at this stage it might be a bit beyond what you want to do.
Visual C++ Express is a good choice. A large user base so help is at hand and is certainly good enough for a learner.
I personally recommend, if you are already familiar with C, getting a book such as SAMs "Teach yourself C++", then spend some time writing a text-based game and then move on to a more indepth book such as Herbert Schildt's C++ Complete Reference. Then consider perhaps Windows API & GDI or even DirectX for graphics.
APIs will come and go, whereas languages tend to stick around for a lot longer, so keep sharp your knowledge of C++ more than anything else.