Books

Started by
6 comments, last by nilkn 15 years, 4 months ago
Hi i am very new to programming in general. But i want to learn how to design and create games i was wondering if these are good books to get started in programming/game design. C++ Primer Plus http://search.barnesandnoble.com/C-Primer-Plus/Stephen-Prata/e/9780672326974/?itm=3 AI Game Engine Programming http://search.barnesandnoble.com/Ai-Game-Engine-Programming/Brian-Schwab/e/9781584505723/?itm=9 OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1 http://search.barnesandnoble.com/OpenGL-Programming-Guide/Dave-Shreiner/e/9780321481009/?itm=2 Learning Autodesk Maya 2008: Foundation http://search.barnesandnoble.com/Learning-Autodesk-Maya-2008/Autodesk-Maya-Press/e/9781897177426/?itm=2 Would this be a good book selection to learn programming and game design. Am i missing any subjects? Thanks for any help.
Advertisement
There are two points of view one can take here:

1) You should learn programming first as an intellectual activity in and of itself and then you should learn game programming as a special case of software development.

2) You should write incrementally more complex and elaborate games as you learn to program, each new game reflecting your progress.

I tend to be unsure of the second path because it's easy to gloss over the importance of good programming style in order to focus on games. But I certainly understand its appeal, and that's the approach your post indicates you probably would like most.

Regardless, I'll give you my recommendations for both paths.

1) If you want to start with programming itself first and not intermingle it with game development, you might as well learn programming seriously and in-depth. As such, I have a few recommendations.

The book I view as being the best introduction to computer science and thinking in the strange way that is necessary for successful programming is Structure and Interpretation of Computer Programs (SICP). It's a famous textbook on computer science and is available online for free--in its entirety--at that link.

However, SICP has a few shortcomings. First, it assumes a bit of an extensive mathematics background. If you haven't taken calculus, some of the examples will probably not be useful to you. Second, it's a fairly serious book on computer science and has a high difficulty level.

An alternative to SICP which takes the same approach but aims to provide more universally accessible examples and a more down-to-earth difficulty is How to Design Programs (HtDP). HtDP is designed to be used in conjunction with the very friendly Dr. Scheme environment. Many of the examples are graphical in nature, so that could provide a smooth transition into game development when you finish the book.

I recommend these books because they emphasize universal concepts of computer science and good software design. They use a language called Scheme. I won't lie; Scheme is generally not used for game development. But if you take path 1, the principles you learn from these books will be so powerful that upon reading one of them you would be readily able to pick up a new language and dive into game programming.

Another option that you may like (especially if you don't want to go with Scheme) is How to Think Like a Computer Scientist. This book is less rigorous than the previous two, but it's still a solid introduction to programming, and it uses the conceptually clear and straightforward language Python.

2) Unfortunately, it's hard to find a good book that follows this path. One option is Ron Penton's Beginning C# Game Development (written by our own Mithrandir here at the forums).

Another option is a sort of "do it yourself" scheme. You could read How to Think Like a Computer Scientist (linked to above) and use it in conjunction with PyGame.

Ultimately, the key to success is your own determination and perseverance. Programming is an intellectual activity. It's challenging and demanding. It's something to be proud of. No matter what you start with, you are the primary determining factor of whether you come out a programmer or not.

Good luck. [smile]
I got C++ Primer Plus a few years ago, and I thought it was great. It is kind of long, but full of information. It gave a good introduction to the language. It starts off simple, but eventually moves on to more advanced topics like polymorphism and inheiritance and OOP.

I would definitely recommend it.
"All you have to decide is what to do with the time that is given to you." - Gandalf
Quote:Original post by nilkn
There are two points of view one can take here:

1) You should learn programming first as an intellectual activity in and of itself and then you should learn game programming as a special case of software development.

2) You should write incrementally more complex and elaborate games as you learn to program, each new game reflecting your progress.

I tend to be unsure of the second path because it's easy to gloss over the importance of good programming style in order to focus on games. But I certainly understand its appeal, and that's the approach your post indicates you probably would like most.

Regardless, I'll give you my recommendations for both paths.

1) If you want to start with programming itself first and not intermingle it with game development, you might as well learn programming seriously and in-depth. As such, I have a few recommendations.

The book I view as being the best introduction to computer science and thinking in the strange way that is necessary for successful programming is Structure and Interpretation of Computer Programs (SICP). It's a famous textbook on computer science and is available online for free--in its entirety--at that link.

However, SICP has a few shortcomings. First, it assumes a bit of an extensive mathematics background. If you haven't taken calculus, some of the examples will probably not be useful to you. Second, it's a fairly serious book on computer science and has a high difficulty level.

An alternative to SICP which takes the same approach but aims to provide more universally accessible examples and a more down-to-earth difficulty is How to Design Programs (HtDP). HtDP is designed to be used in conjunction with the very friendly Dr. Scheme environment. Many of the examples are graphical in nature, so that could provide a smooth transition into game development when you finish the book.

I recommend these books because they emphasize universal concepts of computer science and good software design. They use a language called Scheme. I won't lie; Scheme is generally not used for game development. But if you take path 1, the principles you learn from these books will be so powerful that upon reading one of them you would be readily able to pick up a new language and dive into game programming.

Another option that you may like (especially if you don't want to go with Scheme) is How to Think Like a Computer Scientist. This book is less rigorous than the previous two, but it's still a solid introduction to programming, and it uses the conceptually clear and straightforward language Python.

2) Unfortunately, it's hard to find a good book that follows this path. One option is Ron Penton's Beginning C# Game Development (written by our own Mithrandir here at the forums).

Another option is a sort of "do it yourself" scheme. You could read How to Think Like a Computer Scientist (linked to above) and use it in conjunction with PyGame.

Ultimately, the key to success is your own determination and perseverance. Programming is an intellectual activity. It's challenging and demanding. It's something to be proud of. No matter what you start with, you are the primary determining factor of whether you come out a programmer or not.

Good luck. [smile]

I pretty much agree with #1 but not #2.
That book is terrible not to mention it uses an old version of MDX which way out of date!
If the author gave up on his own book you know it's bad.Oh well one out of three isn't bad. Anyways, all the rest of his books are great especially the data structures one!
I recommend a pygame book or even Flash instead or go with what most of the new programmers are using these days:
XNA Game Studio Express: Developing Games for Windows and the Xbox 360

[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
i know the prospect of making games is really exciting, but to be honest, your book list is the equivilent of planning your first marathon while you're still using a walker. Game programming is horribly complex, fun as hell, but complex.

your first step, LEARN A LANGUAGE, C#, C++, python, java, those are really the 4 main ones, it really doesn't matter which one you pick, so "eeny meeny miny moe" , or read the forums for opinions on them. I started with c+, but i'll list some pros and cons

Java:
Pros - usually considered one of the easiest to learn, well structured
cons - not used in "professional gme programming"

C#:
pros - again easy to learn, has a very good graphics library/game development platform called XNA
Cons - not used for professional game programming, but commonly used to build tools used to make the games, like level editors, etc...

C++:
pros - it is pretty much the only language used in professional game programming.
Cons:can be difficult to learn


Python:
pros - said to be the easiest to learn, used in some games, but in a different way
cons - not really used as much as the others




once you pick a language, the people here will point you in a good direction. you just start programming boring console stuff for at least a few months to get comfortable, then you start working with graphics, then you're on your way
--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
Well for my first programming language i want to learn c++ considering that c++ is used more then other programming languages in game programming. I looked over cplusplus.com and i was wondering if thier were any great books for learning c++. I think C++ Primer Plus is a good choice but is thier any more realy good c++ programming books?
Quote:Original post by nilkn
There are two points of view one can take here:

1) You should learn programming first as an intellectual activity in and of itself and then you should learn game programming as a special case of software development.

2) You should write incrementally more complex and elaborate games as you learn to program, each new game reflecting your progress.

I tend to be unsure of the second path because it's easy to gloss over the importance of good programming style in order to focus on games. But I certainly understand its appeal, and that's the approach your post indicates you probably would like most.

Regardless, I'll give you my recommendations for both paths.

1) If you want to start with programming itself first and not intermingle it with game development, you might as well learn programming seriously and in-depth. As such, I have a few recommendations.

The book I view as being the best introduction to computer science and thinking in the strange way that is necessary for successful programming is Structure and Interpretation of Computer Programs (SICP). It's a famous textbook on computer science and is available online for free--in its entirety--at that link.

However, SICP has a few shortcomings. First, it assumes a bit of an extensive mathematics background. If you haven't taken calculus, some of the examples will probably not be useful to you. Second, it's a fairly serious book on computer science and has a high difficulty level.

An alternative to SICP which takes the same approach but aims to provide more universally accessible examples and a more down-to-earth difficulty is How to Design Programs (HtDP). HtDP is designed to be used in conjunction with the very friendly Dr. Scheme environment. Many of the examples are graphical in nature, so that could provide a smooth transition into game development when you finish the book.

I recommend these books because they emphasize universal concepts of computer science and good software design. They use a language called Scheme. I won't lie; Scheme is generally not used for game development. But if you take path 1, the principles you learn from these books will be so powerful that upon reading one of them you would be readily able to pick up a new language and dive into game programming.

Another option that you may like (especially if you don't want to go with Scheme) is How to Think Like a Computer Scientist. This book is less rigorous than the previous two, but it's still a solid introduction to programming, and it uses the conceptually clear and straightforward language Python.

2) Unfortunately, it's hard to find a good book that follows this path. One option is Ron Penton's Beginning C# Game Development (written by our own Mithrandir here at the forums).

Another option is a sort of "do it yourself" scheme. You could read How to Think Like a Computer Scientist (linked to above) and use it in conjunction with PyGame.

Ultimately, the key to success is your own determination and perseverance. Programming is an intellectual activity. It's challenging and demanding. It's something to be proud of. No matter what you start with, you are the primary determining factor of whether you come out a programmer or not.

Good luck. [smile]


Kudos to you sir, for providing the best damn newbie introduction to programming I've seen to date ;)
Really, great suggestions. The book you mention in #2 is a poor choice indeed, but I still think your way of thinking is sound and well laid out - and, as you said yourself, it's hard to find a book that follows path #2 well.
~ Darky Mikado
I've read all the books I recommended except Beginning C# Game Development. I really thought I'd seen it get good recommendations on here before, but maybe I confused it with something else. [smile]

I really couldn't think of any other book that would fit path 2.

This topic is closed to new replies.

Advertisement