What book to start from

Started by
17 comments, last by Chad Smith 7 years, 11 months ago
Hello. While I'm on summer break, I'd like to work on my game development skills. I want to create simple games using C++ language. I read an article on here that someone suggested. In it, the author suggested creating games like pong, snake, space invaders, etc. I'd love me to create these games, and hopefully more, this summer. B ut I don' t know of or have found a text that will guide me to properly do so. I was about to purchase the SDL C++ programming book (I recently learned the language throughout this school year).

So, I'm wondering if this text is the best to begin with; and will it help me create these games and then some? Thank you all for your feedback.
Advertisement
If you're about to start in game development and C++, I would begin with a game engine like Cocos2d-x (better) or UE4 (Unity is far better to begin with, but it doesn't use c++), so you can learn the general basics.

Once you do some simple things, you can get deeper in SDL, or directly OpenGL and create your own Input Manager, or your own Renderer or your own shaders.

I tell you that because, if you're not comfortable with C++, you must get used to it first, and you can do it at the same time you learn what's a sprite, how simple 2D math works, etc. But it will be harder if you're implementing something in such a low level.

There are plenty tutorials, documentation and forums about Cocos2d-x. I would begin with their official Programmer's Guide, and use their official forums too, which have a decently active community. It's also open-source so you could take a look at their code later, I think.

Good luck.

The 'current' problem with C++ is that it is moving so fast, that books cannot keep up. You want at least C++11 (5 years ago), which barely exists in book form. Anything before C++11 is obsolete. C++ itself is however already at C++14, and C++17 is on its way.

This makes buying a book a hazardous venture, as it's old before you have read it, so to say. You may want to rely more on online resources, eg

http://www.cplusplus.com/doc/tutorial/

and the reference site https://en.cppreference.com/w/ instead.

Books about SDL are mostly a waste of money, SDL is a C library, and it's pretty simple. A tutorial like http://lazyfoo.net/tutorials/SDL/index.php will work nicely.

The book you should start with is your netbook. By that, I mean start writing code. It doesn't have to be good code, it doesn't have to work perfectly, but it's gotta be code and you have to write it.

Passive learning from a paper book is not nearly as effective as JFDI and see what happens. Bits are cheap, use as many as you want.

Stephen M. Webb
Professional Free Software Developer

I agree with Bregma.

The internet is an awesome resource for tutorials, but if you're just copying code, you're not necessarily learning; you can, though, learn a lot about the general architecture of a game (gameloops, for example) as those can be a little less intuitive (or maybe I'm just slow).

Further, I'd recommend against using an engine for basic games like those you mentioned, as they can strip away a lot of valuable learning opportunities to a new game-programmer (and nothing you'll be making for a long time will actually need or seriously benefit from an engine like UE4).

Inspiration from my tea:

"Never wish life were easier. Wish that you were better" -Jim Rohn

soundcloud.com/herwrathmustbedragons

The 'current' problem with C++ is that it is moving so fast, that books cannot keep up. You want at least C++11 (5 years ago), which barely exists in book form. Anything before C++11 is obsolete. C++ itself is however already at C++14, and C++17 is on its way.

This makes buying a book a hazardous venture, as it's old before you have read it, so to say. You may want to rely more on online resources, eg
http://www.cplusplus.com/doc/tutorial/
and the reference site https://en.cppreference.com/w/ instead.

Books about SDL are mostly a waste of money, SDL is a C library, and it's pretty simple. A tutorial like http://lazyfoo.net/tutorials/SDL/index.php will work nicely.







Thank you so much for sharing those links. I looked at the totorial site, and needles to say, I got excited. Again, thank you.

The book you should start with is your netbook. By that, I mean start writing code. It doesn't have to be good code, it doesn't have to work perfectly, but it's gotta be code and you have to write it.

Passive learning from a paper book is not nearly as effective as JFDI and see what happens. Bits are cheap, use as many as you want.


My thoughts exactly! Before classes were over, I was looking at some books. And most of them pretty much did that. Just had code for you to copy. Nothing like my textbooks, which forced you to learn the concept and then write your code.

Hello. While I'm on summer break, I'd like to work on my game development skills. I want to create simple games using C++ language. I read an article on here that someone suggested. In it, the author suggested creating games like pong, snake, space invaders, etc. I'd love me to create these games, and hopefully more, this summer. B ut I don' t know of or have found a text that will guide me to properly do so. I was about to purchase the SDL C++ programming book (I recently learned the language throughout this school year).

So, I'm wondering if this text is the best to begin with; and will it help me create these games and then some? Thank you all for your feedback.

From programming perspective,

First step is learning C++ properly, all advanced topics you don't know- Learn. Some of them: OOP, Multithreading, Networking, Graphics,etc..

Knowledge of the language is by far the most important skill- It's not mandatory to learn everything, if you feel you don't need it right now, don't learn it.

Secondly, choose your API/Tool, there are engines and libraries to work above the basic openGL api or directX api. Read about anything you can find and choose your favorite.

Lastely, Learn the API you chose.

From game development perspective,

You also need to learn how to edit sound, find and edit graphic images.

How you learn those is less important, it is your choice. If you feel you learn better using a book, find a book, if you find tutorials easier, take the tutorials.

Some topics I learned from books, some I learned from articles, The net has many sources for everything.

I agree with Bregma.

The internet is an awesome resource for tutorials, but if you're just copying code, you're not necessarily learning; you can, though, learn a lot about the general architecture of a game (gameloops, for example) as those can be a little less intuitive (or maybe I'm just slow).

Further, I'd recommend against using an engine for basic games like those you mentioned, as they can strip away a lot of valuable learning opportunities to a new game-programmer (and nothing you'll be making for a long time will actually need or seriously benefit from an engine like UE4).

So, you are pushing someone who is not even comfortable with C++ and knows nothing about games programming to develop their own rendering system (it doesn't matter how simple it is) or input management? I totally disagree with you in that point.

I think it's far easier to learn very high level stuff first, then go deeper and deeper to the lowest level.

Programming Principles and Practices Using C++ by Bjarne Stroustrup covers C++ 11 and C++ 14. The C++ Programming Language 4th Edition by Bjarne Stroustrup covers C++11 and makes a decent reference book. Beyond those books you could get SDL Game Development and SFML Game Development for learning to make games. Above all else, write code and learn as you go.

This topic is closed to new replies.

Advertisement