With which book should I start?

Started by
8 comments, last by Serapth 8 years, 4 months ago

Hello,

I want to get into game development and I decided that I want to make

a 3D game engine in Directx (mostly as a learning experience).

I have the following books in my possesion:

-Game Engine Archtitecture, 2nd edition, http://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=sr_1_1?s=books&ie=UTF8&qid=1448809889&sr=1-1&keywords=game+engine+architecture

-3D Math Primer for Graphics and Game Development, 2nd edition, http://www.amazon.com/Math-Primer-Graphics-Development-Edition/dp/1568817231 (as my math background isn't the best)

-Game Programming Patterns, http://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906

-Introduction to 3D Game Programming with Directx 11, http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228/ref=sr_1_2?s=books&ie=UTF8&qid=1448809920&sr=1-2&keywords=directx

In which order should I read them in order to get the best out of them and understand them. (To be clear, I have programming experience in C++)

Thanks

Advertisement
I can't advise on any of these three books, but I can advise to avoid buying books on the subject of game development when you're starting out.

The material in the books becomes invalid very quickly and you find yourself in possession of a chunk of useless paper.

Out of the ones you list, game programming patterns is more generic and less likely to be invalidated in the short term so probably the better investment.

For example in the past 13 years, the c++ standard has changed about four times, several directx and opengl versions have come and gone and entire game engines have risen and faded into obscurity.

You need to keep informed of developments and to do this you really need to be keeping your eye on Google, and sites such as this and gamasutra for industry news.

Books have their place but be aware of their limited shelf life, and be prepared to keep buying new ones if you really want hard copies and you want them to remain relevant in years to come!
I deeply disagree. All of the books listed have aged well.

The closest one to "out of date" is the DX11 one, and even that is going to continue to be relevant and useful for a few years to come, at least. The first edition of the Game Engine Architecture book is still an exceedingly good introductory text to new game developers, and the second edition is of course even better.

I would recommend starting with Jason Gregory's book. Following that, the Frank Luna book - start working through its examples. The 3D Math Primer book is a good reference and learning material to refer to while working through Luna's. Save the Patterns book for last, as most of it isn't going to make a whole ton of sense until at least after Gregory's book.

Sean Middleditch – Game Systems Engineer – Join my team!

@Sean, I can see we definitely have different opinions on this.

Perhaps I should be more clear and to advise staying away from any book with a version number in its title.

I can speak from personal experience and a very full bookshelf with books on that aren't relevant any more. They all have version numbering in the title. E.g. A book on xna 3.0, a book on Linux 2.4, and a book ok programming with visual studio 6...


None of the books mentioned are related to specific versions of software so seans advice applies much more than my own.

Brain, I think you stepped on a minor sacred cow here. I rarely refer to any of my books these days, but the initial read-through can be helpful if the book is good. YMMV

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

Consider adding:

- Game Coding Complete, Fourth Edition, http://www.amazon.com/gp/offer-listing/1133776574/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1133776574&linkCode=am2&tag=gamecodecompl-20&linkId=YTOZOL6OXF45PZSQ

The book walks you through creating a 3D game engine in DirectX, and a complete game.

The book was published in 2012, and the code was written for VS2010 (I got it to work in VS2013 and VS2015, too). I have yet to finish it, but so far I like it.


I have the following books in my possesion ... In which order should I read them in order to get the best out of them and understand them.

Trying to stick to the question that was asked...

I'd say it depends on how rapidly you intend to read them and how comfortable you are switching between subjects.

The math primer will probably help you with the D3D11 book. If you are looking for something quick, I'd skim through the math book to see what you need to learn and what topics it covers, then go back and forth concurrently with the two. It is easier to learn math if you have actual applications for it, and is easier to learn to manipulate 3D worlds if you know the math. They complement each other. Apply what you learn from one in the other, then go back and review what you learned when reading in the first. It may be helpful to remember the math book has made functions generic. In math books you typically see compressed generic notation like f(M, k), in the programming book you might get Point& ComputeSplineLocation( const Point& v0, const Point& v1, const Point& v2, const Point& v3, float knotPosition); Realizing the math book is trying to teach you the same thing the code describes sometimes takes some mental effort.

I'd read the patterns book before the architecture book, since the architecture book will probably mention the patterns. These two also work well together because architecture relies on patterns to describe the behavior. Patterns are just names for solutions people use frequently. The architecture book describes examples where people used those patterns. Unlike the first pair, I would NOT read these concurrently. I'd read all the pattern book first, study the patterns, and learn their names. Then I would refer back to it as needed when reading the architecture book afterward.

Finally, I like to have multiple books going at the same time, usually 2-3. I'd read the first pair back and forth as though they were a single subject, and when I didn't feel like reading them I'd work through whichever one of the second pair I was studying. Looks like about 3000 pages total? If I were reading them lightly and quickly scanning it shouldn't take more than two weeks. If I were studying deeply and trying to apply the knowledge as you gain it, exercising it in the brain, probably a month or two depending on whatever else was going on at the time. I don't know your schedule or reading speed so it may be faster or slower for you.

The D3D11 book is probably the most time sensitive, so I'd read that first and recognize the most important thing is the general theory, not the specific verbs and nouns for the API. Every new API will have different words for theory, but the math and theory behind it will remain the same. The others could remain on your bookshelf for five years and still be mostly useful.

Consider adding:
- Game Coding Complete, Fourth Edition, http://www.amazon.com/gp/offer-listing/1133776574/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1133776574&linkCode=am2&tag=gamecodecompl-20&linkId=YTOZOL6OXF45PZSQ

The book walks you through creating a 3D game engine in DirectX, and a complete game.


This book I do own a copy of and although it's content is gold and the concepts relevant, it's source code has aged and some things it mentions show its age, it's source uses directx 9, and it refers to the "upcoming release of the xbox 2" (actually the 360) while comparing specifications of the gamecube, original xbox and ps2 when discussing memory budgets.

This is kind of an example of the kind of material I was getting at, but still worth a read.

I would buy an electronic copy as an ebook or borrow it from a library...


I would buy an electronic copy as an ebook or borrow it from a library...

I agree. It has gotten to the point that I get all books in ebook form so I can read and code by switching back and forth when meddling with a project idea.


I would buy an electronic copy as an ebook or borrow it from a library...

I agree. It has gotten to the point that I get all books in ebook form so I can read and code by switching back and forth when meddling with a project idea.

I've also found that owning a tablet makes ebooks feel much more bookish. I never much liked reading from a monitor, but I dont find that with a tablet, especially with a high DPI screen.

Now I do love being able to copy/paste though. I think it's fairly safe to say paper books are dead to me at this point, which is kinda sad.

This topic is closed to new replies.

Advertisement