Sign in to follow this  
SuperJman

Solid book learning steps

Recommended Posts

Hello again, I had posted earlier on this site stating my ambition to get into 3D programming and I assure you I still have a very strong ambition for it however I have found myself suck in a frustrating spot for months now. How do you exactly get into 2D programming? I seriously need some step by step help here. So if anyone would care to do so, please direct me to the books "step by step" that should make me proficient in 2d programming from knowing nothing (Well I do know PHP, etc) to making a side scrolling game or even a tetris game for heavens sakes! What I need to understand: (1) A VERY GOOD, thorough, book on c++ beginner to master(well... you know). (2) Another VERY GOOD book on whatever should come after this, the concepts of 2d programming, the SDL etc. but it MUST be something easy enough to understand that I can apply my previous c++ skills to it right away. (3) Maybe for this last book a more advanced look at SDL programming a more advanced look at 2d in general or a more advanced look at C++. If more could be fit in thats fine, as long as the books you provide will give me the information I need to program in 2D by reading the books cover to cover, making sure to understand the text and working on practice programs. I really need your guys help for this one I absolutely need to know what books to get, and in addition maybe you could tell me how you started or how I should go about achieving this goal of 2D programming. ,Thanks for everything - SuperJman

Share this post


Link to post
Share on other sites
It might be easier to start with another language, like python or C#, and switch to C++ later. And no, learning another language is not a waste of time, even if your ultimate goal is to learn C++.

But if you're sure you want to learn C++ right now, take a look at C++: A Dialog, a free book available in my sig.

Share this post


Link to post
Share on other sites
Quote:
Original post by Gage64
It might be easier to start with another language, like python or C#, and switch to C++ later. And no, learning another language is not a waste of time, even if your ultimate goal is to learn C++.

But if you're sure you want to learn C++ right now, take a look at C++: A Dialog, a free book available in my sig.

Yeah that's a pretty fun C++ book to learn from and if you can't learn from that book then all hope is lost since the main point of that book is to teach someone to program in C++ via email!!!
1)Anyways, if you are short on time it's a bit wordy for my taste and I recommend the Mike Dawson beginners C++ book instead.
After that you probably want to get the new Stroustroup C++ book that is coming out soon. It should be good(he created the language afterall) and is for beginners unlike his current book which is more like an encyclopedia.
2)Get the Game Programming all in one book which I shouldn't even recommend since the author was supposed to send me a copy of one of his books which he never did! But it's the only decent book on Allegro I know of. The only other choice is the dated Focus on SDL book which isn't really much better than the information you can find online.Also note that the Allegro book makes use of more C than C++ so if you prefer C++ you have to go with SDL unless you want to spend extra time porting the C code to C++ in the first book I mentioned.
Actually the best 2D game programming book I ever read and highly recommend if you don't need to stick to C++ is Game Programming: The L Line, The Express Line to Learning but is uses Python which I doubt you want to learn. A close second to is XNA Game Studio Express: Developing Games for Windows and the Xbox 360
which uses C# and XNA but will show you step by step how to do a tetris game,break out,card games,top down scrollers,etc.

3) More advanced book would be any of the Frank Luna DirectX books but he only has like 1 chapter on 2D stuff.
Once again I would recommend you go through either the XNA or Python book I mentioned above since they will make everything alot clearer before heading out to the 3D world;)

Share this post


Link to post
Share on other sites
Hey thanks for all the suggestions made here, I'll defiantly look into them. I have one question though...

How in-depth should I go into C++ before I can fully understand what is said in the 2D programming books? The transition seems so HARD!

I mean I know c++ is supposed to be really hard, which I just don't get because it seems like any other language to me (if any one could explain why that would be nice). However going from like text programs to 2D kinda blows me out of the water, kind of like conceptualizing the 4th dimension.

Oh ya, and if anyone wants to give more book examples that would be great!

-SuperJman

Share this post


Link to post
Share on other sites
For a beginner book, I thought C++ Primer Plus was good. It explains the reasoning behind many of the features well, although I don't consider it to be helpful once you know C++. I actually see no reason to try to find the one book to end all books, if you really want that buy the C++ Programming Language. It's all there, and makes a great reference, but you'll never be able to pick it up and understand it.

I recommend you get a beginner book which talks to you like an idiot, because they're much better to learn from. Once you've learned the language, I find C++ Primer (no plus, different book than before) to be a good reference. It's more of a quick and dirty look-up of the syntax and the rules of the language.

Once you get comfortable with the language, I'd then start reading Scott Meyer's books, like Effective C++. They cover many of the dos and don'ts of the language, which is even more important if you're self taught.

When you want to learn the STL, The C++ Standard Library: A Tutorial and Reference is a great book. Once you're familiar with the STL, I'd once again recommend going to Scott Meyers to read Effective STL.

Or take the advice of everyone here and don't learn C++. Your call. But those are all books I'd recommend.

Share this post


Link to post
Share on other sites
Quote:
Original post by SuperJman
Hey thanks for all the suggestions made here, I'll defiantly look into them. I have one question though...

How in-depth should I go into C++ before I can fully understand what is said in the 2D programming books? The transition seems so HARD!

I mean I know c++ is supposed to be really hard, which I just don't get because it seems like any other language to me (if any one could explain why that would be nice). However going from like text programs to 2D kinda blows me out of the water, kind of like conceptualizing the 4th dimension.

Oh ya, and if anyone wants to give more book examples that would be great!

-SuperJman

Well you should be able to program in C++ good enough so that if someone were to ask you to write a simple text based hangman, tic-tac-toe game or even simon-says like game you would be able to bust it out in no time without getting hung up on the C++ language details.
That's why you are getting blown out of the water!
Unfortunately, like I already said there aren't very many good 2D game programming books to begin with since. It was basically a black art like magic until people like Lamothe were kind enough to even write down all the secrets in a book. Too bad his books are pretty out of date nowadays so they won't be much use other than the main ideas like sprites,render loop,AI,etc like in his "programming in 21 days DOS book". All C++ now focus on 3D mainly if you haven't already noticed. Maybe more 2D game programming books using C++ will come out now that Microsoft has decided to release a new version of directx again?

Direct2D (or D2D) is a native immediate-mode 2D graphics rendering API that is built on top of Direct3D, and offers some compelling performance and visual quality improvements over GDI and GDI+

If you don't want to wait around I suggest you pick up XNA like I said before since there seems to be more than one decent XNA book to choose from these days.


Share this post


Link to post
Share on other sites
Quote:
Original post by SuperJman
(1) A VERY GOOD, thorough, book on c++ beginner to master(well... you know).
(3) Maybe for this last book [...] a more advanced look at C++.

You can't expect to learn C++ completely from two books. I have five C++ books on my bookshelf, and there are still many dark corners I don't have a clue about.

Anyway, "Accelerated C++" and "C++ Primer" get recommended a lot, plus Bjarne is working on a new book for beginners called "Programming: Principles And Practice Using C++" that is being released in two weeks.

For a more advanced book, I recommend "Effective C++" by Scott Meyers, but don't read that until you have a strong grasp on the language. If you are really hardcore, I recommend "Exceptional C++" by Herb Sutter. Don't read that if you haven't heard about RAII and exception safety. To a beginner or even intermediate programmer, the contents will seem like strange gibberish.

Share this post


Link to post
Share on other sites
From my experience, "C++ Primer" will be one of the most thorough books you can find (short of Stroustop's). The one problem with it though is that it can be a little hard to get into coming from 0 prior experience. If you read it from cover to cover though, you'll be more than prepared to take on some 2D programming.

"Focus on SDL" is a good logical next step, but it is slightly dated and there are a ton of great SDL tutorials online now:

http://cone3d.gamedev.net/cgi-bin/index.pl?page=tutorials/gfxsdl/index
http://www.sdltutorials.com/
http://gpwiki.org/index.php/C:SDL_tutorials

to name a few. SDL leaves you to do a lot of the more complicated stuff on your own, which is a great way to learn.

For a more advanced look at C++, "Effective C++" is really great. 2 other things that I would recommend are "Code Complete", to learn how to write code that is efficient and readable and "C++ For Game Programmers".

Share this post


Link to post
Share on other sites
Hey again,
Wow thanks everyone for the HUGE supply of great books now just as long as these can help me out I'll be happy.

Quote:
From my experience, "C++ Primer" will be one of the most thorough books you can find (short of Stroustop's). The one problem with it though is that it can be a little hard to get into coming from 0 prior experience. If you read it from cover to cover though, you'll be more than prepared to take on some 2D programming.


I am going to pick up this book very soon actually and study my but off. It has been recommend so much here I might as well. Also, I am glad to see this may be a book that will prepare me for 2d programming and if it does not I will come back here with fiery rage!

Anyways, Thanks again I'll get started up. I think everyone just about answered all my questions, however, more books never hurt anyone so keep on recommending if you like. I love to EVERYONE'S opinion on starter books, I'll probably make this into a list to give to future newcomers.

-SuperJman

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this