I thought this may be a a good topic to bring up and find out what books the programmers keep around and what they think of the books.
I have found some very good and bad books out there. Some (like Prima Press) tend to prey on people who are just starting out with little idea by using "games programming" as a catch phrase.
My bookshelf includes:
(Language Specific)
Teach Yourself C++
Practical C++ Programming
Effective C++
Effective STL
(General DX Programming Stuff)
Game Programming All In One
Strategy Game Programming with DirectX 9.0
Programming Role-playing Games with DirectX
Mulitplayer Games Programming
Real-Time 3D Terrain Engines using C++ and DirectX 9
(Maths)
Algebra and Trigometry
3D Maths Primer for Graphics and Game Development - This is a great book :) I have spent just a little time going through it but I have found it well laid out, lots of illustrations to demonstrate, and covers how to code thing. The nice part is that it covers the theory first then shows at the end how to code it. It is written very well and tries to keep the terminology down. Where possible they do explain in plain and concise terms what things are. This is a great book for anyone who needs to brush up on the 3D maths.
(Various Topic Books)
Game Programming Gems One
Game Coding Complete
(Engineering Books)
Code Complete
Software Engineering and Computer Games
Game Architecture and Design
- I'll sit down and write a bit about each book when I get some time.
*thanks to late christmas $$ from the US I got a few more books*
I've been programming for a longish time, but most of what I have read has been on the Internet, so I have a rather small book collection, currently consisting of half University books and half Game Programming Books.
Computer Networking: A top down approach featuring the Internet (1st Ed)
Game Architecture and Design
Game programming Gems 3
Compilers: Principles Techniques and Tools
Operating Systems Concepts
Advanced Engineering Mathematics
Yeah i've been programming for quite a while, and been at uni quite a while so have collected quite a few books on the way, both for uni and out of interest. I was flicking through Game Architecture and Design at a bookstore the other trying to decide whether or not I should get it. What do you think of it Daemin/Jacana?
Language Specific:
Haskell: The Craft of Functional Programming - Not a bad book about Haskell, I haven't looked at it since I had to do Haskell in 1st year uni, but I remember it wasnt't too bad.
The Java Programming Language - This is the book written by Sun, It was helpful for getting started with Java, but afterwards I found the reference at the sun website took over my looking at this book
Java Swing - This book sucks, I had to use swing for a big software eng project and thought this book would be helpful, but nope, used it for 5 minutes before going to the sun website.
C: How to Program
The C Programming Language
- These two books are excellent, they are all folded up and crinkled
and stuff cause I use them a lot.
Algorithms in C - Excellent for learning about Data Structures and Algorithms. I have a feeling nearly every single computer science/ software eng student in the world has this book.
The Complete Reference: C++ 4th edition - Good book for getting into C++ when you've been programming in C for ages, a straight forward reference without any nonsense
Software Engineering:
Software Engineering Principals and Practice - Average book, good for learning about software architectures and process models etc.
Classical and Object Oriented Software Engineering - Basically an intro to OO design, cohesion/coupling etc.
Software Project Management in Practice - Its basically a case study about an Indian software engineering company called Infosys (one of the few companies to reach CMM level 5). It was a textbook for a software eng management subject. It suxorz, due to the fact it had nothing to do with the actual subject + it doesn't give enough general information
Graphics Programming:
Computer Graphics with Java - Computer graphics with java?? pfft! I did a subject at uni which used Java3d and this book was recommended. Its not a bad book, just that the technology sux.
Advanced 3D Programming using DirectX - Okay... though the author really doesn't cover anything too advanced
OpenGL Programing Guide (the red book) - Its the red book, probably every openGL programmer has this. good book.
The Cg Tutorial - Good guide to shader programming, it says "Cg" but is helpful in general.
Focus on 3D Terrain Programming - A very short book thats very easy to read (Read it cover to cover like a story book). Gives a good foundation for terrain programming
Graphics Programming Methods - Made by the Games Programming Gems guys, a collection of articles featuring the latest graphics programming things. Good book
Real Time Rendering - This is an excellent book about the theory behind real time rendering. Its nice because it focuses on concepts rather than implementation.
Maths and Physics:
Calculus: Concepts and Contexts
Elementary Linear Algebra
Advanced Engineering Mathematics
Fundamentals of Physics
- These were just a bunch of textbooks i used in the first 2 years of uni when i had to trudge through all that boring stuff.
Other stuff:
Artificial Intelligence A Modern Approach - This is bascially the default AI book for uni students (much like the algorithms in C book). Covers most topics in AI.
Operating Systems - Written by Tanenbaum (who made the minix operating system). This dude is an excellent writer therefore this book is good.
Computer Networks - Written by the same dude that write Operating Systems, good book.
I would say get it (Game Architecture and Design) if you can. Currently the one you're probably looking at is the Second Edition, but we probably have the first. I say it's well worth it, even if you're not directly involved with the design or management of a game.
The first edition would be getting quite rare now, since the company who published it went out of business, although there is a new second edition that has come out. From what I have read about it, it appears to be very much the same as the first edition, with a few changes and some new additions.
I had an interesting discussion with Burga a bit back about books vs internet tutorials.
I know a lot of programmers who have small book collections because most of what they need they can find on the net. I find that for my learning style books are a bit more useful then the tutorials.
For one I think its a basic thing of wanting to remove myself from the computer to read. I really dislike trying to read/learn while sitting at the computer.
Second, books provide a physical tangible thing. I can hold it, turn the pages, etc. I think this kinda flows over from Sheri's talk at AGDC about learning styles between men and women. Women seem to want to know what it is before they do it where as men will jump in and learn as they go.
Third, I find most books take time to break things down and explain how the different aspects of things work where as tutorials give you the whole thing. I like to examin each bit and try to understand how it works before I go on to the next bit. Explanations of how each bit works helps me to understand, too.
I am really bad for wanting to know how everything works. Not just from a practical side but also theory side. I am sure it slows my work down but at least it can't be said that I do no want to learn :)
I agree pretty much completely.
Internet tutorials are only really good for beginner / very specific things, if you want to learn something advanced or sort of out of the way (like DOS coding etc) you'll have a *very* hard time finding it on the net now. Books are good because people who write them usually include a lot of details about the background and implementation of different topics.
Well my bookshelf (Although i suck badly at programming, except Visual Basic 6) just includes C++ for Dummies with a snapped CD at the back (It just broke cause of the weight of the book).
Plus my other books:
PHP for the world wide web - Great PHP book for newbies
PHP Pocket reference - Just handy for those little PHP bits
3ds Max 4 - Great book for anything 3ds max 4 related
3ds Max 3 Fundamentals - Great book for anything 3ds max 3 related
The last two books (the 3ds max ones) are my newest editions, gladly welcomed [:)] thanks to my favouritest (Is that a word) forum member, i wont forget you and the books you gave too me fellow Sumea member [:p]. Now that i have my PHP books out i wanna read them too [:P].
Hi, haven't many books (2) as I have only been programming seriously for about a year I find most info I need comes from the internet. Although I am finding that I will be needing to purchase some math stuff soon, so this thread helped me out, thanks Jacana!
So my collection is :-
C:How to program, awesome book, I take it and read it everywhere, even my dog likes it (it is a little chewed)
Linux Game programming from prima press, like mentioned before it is written in a pretty straight forward sort of way and I went through it quickly, but it had many mistakes in the code examples which is frustrating (but gladly the internet helped out again)
see ya!
As an AI programmer, I have AI Game Development by Alex Champandard from New Riders which is a great book since it covers all the main areas of AI. Also the AI Wisdom books are good but are written more like research papers but are great at giving you ideas of your own. Also recently bought 'Physics for Game Developers' from O'Reilly (its got a cat chasing a mouse on the cover) which is a good primer for physics engine stuff and 'The Cg Tutorial'. I also still got my 1st year text 'C++: How to program' by Deitel&Deitel
-Vinh
Hey Guys,
Just wanted to share with you what I've scene in the industry. Hands down, the best books to read/what most games are based off of is the information in the Game Programming Gems series. Everything from AI to Filesystems is covered and it's been my experience that the algorithms in there are the basis for almost all of the systems that are used.
Hope it helps.
Not specifically game related, these, but IMO are must-reads for intermediate to advanced C++ programmers.
"The C++ Programming Language" 3rd edition by Stroustrup (very good reference book)
"The Annotated C++ Reference Manual" 2nd edition by Stroustrup and Ellis (slightly old, but excellent all the same)
"Design Patterns" by Gamma, Helm, Johnson & Vlissides
"Large scale C++ software design" by Lakos
Cheers,
Mark
I thought I may as well mention the textbook the University of Tasmania is using for their first programming unit:
Java Software Solutions - bought it because I thought I had to, but was just a waste of money because I have Java programming books already...but a great reference, not good enough to learn from relly though unless you are being taught at the same time...
anybody know of a good C++ WIN32 programming book? i really want to learn how to program WIN32 stuff, at least so I know just how to get a Window on the screen...
Before buying any book that is a reference or textbook for a Uni course is to ask myself will I ever need to use its contents as a reference in the future, if not then I will not get it as it wouldn't really be a good purchase, otherwise I buy it, with all the ownership that it entails!
Right now I'm looking for a good reference data structures and algorithms book, if not that then I'm thinking of writing my own reference type book "Dom's big book of Data Strucutres and Algorithms".
Data Structures for Games Programming is a very good book - mind you they don't get into a lot of the more advance stuff :) Really its a good beginner to intermediate book in terms of that.
I agree on algo books tho. I really would like to find a good one. I'd love to see the guys who did the 3D Maths Primer do an algo book in the same format as the 3D one.
Thought I might as well ask here just in case anyone knows, but does anyone know any good books on differential equations? Mainly things like systems of non-linear differential equations, phase plane analysis and more 'third year uni' style DEs? Before anyone says Mathematics for Engineers... by E Kreyszig, I already have that and it doesn't go far enough into the rabbit-hole.
@Kane: Charles Petzold is the authority for Win32 programming. I forget the name of his book, but its in its 5th edition last time I checked.
ORTHODOX
- Game Programming Gems 1
- AI Programming Wisdom
- Practical C++ Programming
- Expert Programming in C
UNORTHODOX
- Maths 1, Maths 2, Physics Essentials (remember those old 'Essentials' books for studying Year 12 subjects? I still have them :))
- LOTS and LOTS of printed tutorials and stuff photocopied out of various books I couldn't afford to buy (like other Game Programming Gems books). I have mountains of papers.
If anyone wants a fairly straightforward introduction to numerical methods and the like then "Numerical Mathematics and Computing" (5th Ed.) by Ward Cheney and David Kincaid got a bit of a workout when I got started. Very simple book, probably doesn't go far enough into things though, but that's life I s'pose.
I have far too many books (and my wife regularly reminds me) but here are what I think are a few of the most important ones to me.
Game Programming Gems series (1, 2, 3 and 4)
- If you are into games at all these are brilliant.
Computer Graphics - Foley, van Dam, Fiener and Hughes
- This book is the CG bible - is the most thorough CG book I have read. Forget it if you want code samples - all algo.
C++ Programming Lang - Stroustrup 3rd ed.
- Great language reference.
Also, I read a great number of papers at IEEE. I find most of the finest works there. I recommend anyone who needs to understand a topic for implementation on a computer to check there first - brilliant resource.
And another resource ideal for game developers is gamasutra (www.gamasutra.com) - the articles they provide are of excellent quality and are a great pool of information written by the best in the business.
There are a few classic Motorola 68000 series asm books that I dearly love too.. but hardly of much use these days.. ahh.. the Amiga. :-)
You can actually download .pdf instruction set specs and architecture plans for intel processors from their website. A good thing I keep handy in a seperate folder on my desktop.
As sources of information I'd say the best thing is to subscribe to every online programming resource centre you can find. These include 'Flipcode','Gamasutra' and 'Codeguru'. Also 'Citeseer' is really good for downloading papers free of charge. (You can also try ACM but they require subscription). The information there is often more recent than that found in 'tips n' tricks' books you can buy.
As for books, things that I turn to regularly are:
Charles Petzold's Windows Programming book (most recent version)
-extra thick tome on all aspects of windows programming.
Stroustrup (mentioned in previous posts)
-everything you needed to know about C++, and everything that you didn't.
Graphics Gems series/Games Gems/GPU gems
-Contain stuff you won't find on the messageboards.
A single book with a title including the words '3D, DirectX,
Source Code Included'. Check out what's covered in the book, and that it's not written in MFC wrappers. I reckon you only need one.
Never buy any book with the words 'Unleashed!!, In 28 days!!!' in the
title. Just a gut decision ;)
Much useful information can be found in docs. For graphics I found Foley&Van Damme's Computer Graphics a good resource- It's getting
a bit outdated nowadays though.
I've heard Visualisation of Natural Phenomena is quite good. Can't remember details.
quote:Originally posted by Daemin
For the assembly language I would suggest getting the "Art of Assembly Language Programming" it's available for free (well download costs) on the Internet.
I read it a while ago and it's been a good reference.
The following books I have found very very nice to read to improve C++ skills and coding practices.
- Effective C++
- More Effective C++
- Effective STL (A must read if you use STL! (And you should be!))
A nice set of books from Scott Meyers, points out lots
of things you should be thinking of when coding. :)
- Exception C++
- More Exceptional C++
These two are from Herb Sutter, and go into alot of
detail from small code examples. Very nice.
It makes you alot more aware of things when coding.
- C++ Templates - The Complete Guide.
A nice template book from David Vandevoorde, and Nicolai Josuttis.
A bit heavy, but definitely good to read to get started with
heavy template programming.
- Modern C++ Design
This is by Alexei Alexandrescu. Very very nice book.
Shows lots of design patterns implemented with new-style
techniques, lots of template code. A bit advanced, but definitely
worth a read. (Implements design patterns from the Gang of Four
Design Patterns book)
I haven't actually read many Game-Programming books. I find just the
net and lots of practice suffices for that.
Other than those books, looking at documentation for things like
Boost libraries (http://www.boost.org) and seeing code there is
good to learn from.
kalin.
hi...well ive only been programming for a year, and I am still learning even the basics of DirectX, but I have the following books in my collection...
Language Specific
Schaum's Easy Outlines Programming with C++ - A good reference, but no good to learn from.
Visual Basic 6 for Dummies - This was one of the first programming books I bought, I never use it anymore. Good if you want to learn VB.
The Complete Idiot's Guide to Java 2 - Good reference and great to learn Java from.
1001 Microsoft Visual C++ Programming Tips - I got this book because it was on special for $20 at my newsagency! It is possibly the biggest book on Earth...great VC++ reference.
Jumping Javascript - Havent really used this at all, just bought it because it was $15 and about programming!
Game Specific
Game Development and Production - Excellent book on the process of creating a game. Covers all aspects of the game development process down to the finest detail.
Game Coding Complete - Most of the code was way over my head, but I know I have enough programming knowledge to at least basically understand what is going on. Has lots of useful code for game projects, and great advice on all aspects of game development.
Windows Game Programming for Dummies 2nd Edition - Great book to learn DirectX basics from, although LaMothe often doesnt explain the mechanics behind some of his code.
C++ windows programming books are next on my list...