- Game Engine Architecture
- The Art of Game Design
- Designing Virtual Worlds
- A Theory of Fun for Game Design
- David Perry on Game Design: A Brainstorming ToolBox
- 3D Game Engine Design
- Challenges for Games Designers: Non-Digital Exercises for Video Game Designers
- Essential Mathematics for Games and Interactive Applications
- OpenGL Programming Guide: The Official Guide to Learning OpenGL
- Real-time Rendering
- Software Engineering for Game Developers
- Game Programming Patterns
- Design Patterns. Elements of Reusable Object-oriented Software
- Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
- The Pragmatic Programmer: From Journeyman to Master
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs
- Programming Game AI by Example
- Introduction to 3D Game Programming with DirectX 12
- Programming a Multiplayer FPS in Direct X
- HTML5 Canvas Cookbook
- Pro HTML5 Games
- Agile Game Development with Scrum
- The Software Project Survival Guide
- The Illusion of Life: Disney Animation Hardcover
- The Animator's Survival Kit
- The Art of Failure: An Essay on the Pain of Playing Video Games
- Game Feel: A Game Designer's Guide to Virtual Sensation
- Design of Everyday Things
- Character Animation With Direct3D
- Production Pipeline Fundamentals for Film and Games
- How to Write Science Fiction and Fantasy
Yes, game development is a science, and an art.. and man, it's a lot of hard work! Even successful professionals in this field won't refrain from saying they're still trying to figure out what they're doing when they're making a game. When it comes to designing games, there are so many different platforms, genres, styles, programming languages and tech trends going on that you can't blame yourself if you start thinking that what you know now might be old tomorrow. However, if there's a tiny bit of solid knowledge somewhere, something you can hold on to that will provide some safety for better decision making in this hard craft of game development, you should go for it.
That's what I kept thinking when I was working on this list. After talking to many developers to find out what they've read, I came up with a list of 31 books that are often referenced and recommended by seasoned professional game developers. You'll find recommendations for learning programming, animation, team management, storytelling and a lot more.
1) Game Engine Architecture by Jason Gregory (Naughty Dogs Lead Programmer)
Considered one of the best textbooks for learning game engine architecture, this is an up-to-date source of information for how the typical commercial engines are built. It's a comprehensive practice-oriented and theoretical material for developers who wish to learn in depth the programming aspects of game development.
2) The Art of Game Design by Jesse Schell
A very popular book that focuses on game development from a varied set of lenses. It will guide through the process of learning about game design by asking 100+ sets of questions, each one intended to help you look at games in a particular and insightful way. That's a must-have, like a bible that sets the fundamental principles of game design.
3) Designing Virtual Worlds by Richard Bartle
This book is very good at showing how sociology, technology, ethics, psychology come together when it comes to lay out the principles of virtual worlds design. It will provide you with a substantial understanding of the design principles for the creation of virtual worlds, from the earliest MUDs to the present-day MMORPG games. It is hailed as a unique book on the topic of online games and virtual worlds design with an impressive amount of details.
4) A Theory of Fun for Game Design by Raph Koster
Raph Koster did a really serious, good work at explaining fun in this book. As a veteran game designer, Koster approaches the topic in a very fun way, with many illustrations to both entertain and conceptualize the principles that make any game fun to play. This is an important book in the game industry. You'll often see it cited in academic research into video games, especially in publications focused on game-based learning, since it provides a plethora of interesting insights about gameplay engagement.
5) David Perry on Game Design: A Brainstorming ToolBox by David Perry and Rusel DeMaria
This book is aimed at providing you with ready-to-use ideas for designing better games. It is about developing your creativity, first and foremost, and finding innovative solutions in game design along the way. You'll learn about character development, storyline, weapons, game worlds, rewards and goals, and much more. The best part is that it is not software specific and it works more like a reference guide, so you can pick a topic from the first or the last part of the book and have fun learning what you need at a given moment.
6) 3D Game Engine Design by David Eberly
Once this book hit the market, it became an international bestseller, selling 17,000+ copies around the world and leaving its mark in the game industry as a must-have source of good quality information. It will guide through the fun and endless possibilities of shader programming for games.
7) Challenges for Games Designers: Non-Digital Exercises for Video Game Designers by Ms Brenda L Brathwaite, and Ian Schreiber
This book will provide you with a set of insightful practical exercises to improve your brainstorming abilities so you can come up with cool and innovative games. It doesn't matter if you are a professional or an aspiring game designer, it is challenging and interesting for all levels. All of its chapters will cover important topics for the game industry and you don't need any programming knowledge to enjoy and learn from them.
Are you a fan of math and would like to know how to use it to create animations, simulations, and scene rendering for games? So this book is for you. It also brings up shader graphics, following its popularity in game development these days.
9) OpenGL Programming Guide: The Official Guide to Learning OpenGL by John Kessenich, Graham Sellers, and Dave Shreiner
This book is a great reference manual if you want to keep on improving your skill set for working with the Open Graphics Library API. It might be more helpful if you already have some basic experience with it. It is still an amazing source of knowledge for seasoned professionals.
10) Real-time Rendering by Tomas Akenine-Moller (Author), Eric Haines, and Naty Hoffman
Here's another book for you who want to keep on learning how to use shaders. Of course, there's much more than that. This book will cover a varied set of methods used in games and other applications. All of that with a solid theoretical framework for the field of interactive computer graphics.
11) Software Engineering for Game Developers by John P Flynt, Omar Salem
Written in a quite approachable style, this book will help you bring discipline to your work. It is full of exercises intended to show you how you can benefit from software engineering practices while creating your game. One of the best things about this book is that it covers function, object-oriented, and patterned frameworks in detailed design documents.
12) Game Programming Patterns by Robert Nystrom
Here's another book that tackles the difficult task of completing a game. Focused on programming patterns - as the title itself says -, this book presents many patterns proven to be effective so you can grab what's best for you and start optimizing your project. Among other things, you'll learn how to organize your entities by using components, achieve a better performance with the CPU, and write more robust game loops.
This book has a systematic and step-by-step approach to design patterns. It starts by describing what they are and it will teach you how to fit them into the software the development process. It is mainly concerned with solving problems efficiently by analyzing commonly occurring design problems. Each pattern includes code for demonstrating how to use them in object-oriented programming languages.
This book is aimed at teaching you how to effectively write software using C++11 and C++14. You're most likely to benefit from it if you're an intermediate or an expert C++ programmer. However, its code samples are extremely easy to understand and implement. Learn more about it on this great review by Petr Zemek.
15) The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, and David Thomas
Some will say that when software engineers have to name the books they wish the had read earlier in their careers, The Pragmatic Programmer often comes at the top of the list. It is not just about the technicalities of what you do as a programmer, but how you do it and how your behavior plays an important role in that. It is filled with good advice, enough to keep the attention of newbies and seasoned professionals. Although it is often regarded as a self-help book for programmers, many will step up and say it is a mind opener, a constant source of fresh ideas for when you get stuck and don't know what to do.
Scott Meyer's books have a very good reputation, and the trend continues with this one. The best reviewers will say that it is as good as having an experienced C++ programmer by your side guiding you while you read it and complete its exercises. It will point out the common pitfalls to avoid and teach you effective ways to design a better code.
17) Programming Game AI by Example by Mat Buckland
Regarded as an introduction to the "bread and butter" of AI techniques in the game industry, this book will go straight to the point and teach you real-life applications for games such as team AI, path planning, triggers, goal evaluation, individual and group steering behaviors, and much more.
18) Introduction to 3D Game Programming with DirectX 12 by Frank Luna
With an emphasis on DirectX 12, this book will show you how to use mathematical tools, fundamental tasks in Direct3D, and special effects as it gives you a great introduction to interactive computer graphics for game development. You will learn how to use Direct3D 12 features for reducing CPU overhead and take advantage of multiple CPU cores; popular real-time game effects; advanced rendering techniques such as real-time reflections, shadow rendering, ambient occlusion, etc.
19) Programming a Multiplayer FPS in Direct X by Vaughan Young
This is a book that will delight beginning C++ programmers. It will teach you how to make a First Person Shooter game from scratch. Bit by bit, each chapter will give a step towards completing your game. It's like a full tutorial that will teach a lot of important techniques for game development in general. All the source code, assets, and tools are included to make things easy and more fun for you.
20) HTML5 Canvas Cookbook by Eric Rowell
Game development with HTML5 is here to stay and this book will give a nice introduction to what this language is all about, as well provide excellent techniques to expert programmers. Its author is also the chief editor for html5canvastutorials.com, where you'll also find an amazing source of tutorials.
21) Pro HTML5 Games by Aditya Ravi Shankar
This book will guide you through the process of creating two full-fledged games in HTML5: a strategy puzzle game and a real-time strategy (RTS) game. If like me, you also prefer learning by example, this book will definitely be very satisfying as it will explain everything to you step-by-step. There's a lot of good stuff in it, such as how to create realistic physics, designing large worlds with many characters, sprite sheets, parallax scrolling and a lot more. Check it out.
22) Agile Game Development with Scrum by Clinton Keith
Surviving the sometimes chaotic wave you find yourself and your team in while developing a game might require master ninja techniques. For facing challenges like that, Scrum and Agile built a solid reputation outside of the game industry when it comes to applying methods for a disciplined software development. This book brings these methods to the specific needs of game development. You might wanna take a look at what this book has to offer if you believe your team could use some help at keeping things flowing smoothly as you complete your game.
23) The Software Project Survival Guide by Steve McConnell
If you haven't received any formal training in software project management, this book could help you fill that knowledge gap. You'll learn about planning, design, management, quality assurance, testing, and archiving. It's a great addition to your set of books on good practices in software development.
24) The Illusion of Life: Disney Animation Hardcover by Ollie Johnston and Frank Thomas
If you're an artist or an aspiring game artist, this is a must-have. This book will give you an amazing account o the development of Disney animations' unique style. It comes with original sketches and drawings detailing the magic behind the creation of Disney's most iconic characters. It is not a tutorial book, but it is widely recognized in the field as an essential resource for learning what Disney animators coined in terms of camera techniques, background painting styles, effects, colors and lot more for creating animation.
25) The Animator's Survival Kit: A Manual of Methods, Principles and Formulas for Classical, Computer, Games, Stop Motion and Internet Animators by Richard Williams
This is another must-read for those who want to really learn how to create animations. It has lots of illustrations detailing every step of the way to mastering the magic of the great animators. Some go as far as to say this is the definitive animation manual. You should definitely check it out.
Jesper Juul's books are about teasing you philosophical side to make you think out of the box when it comes to thinking what games are, why we play them and what they can do. In The Art of Failure, Juul lays out a set of interesting insights into the general concept of fun in video games. While common sense will claim that's what we seek when we play a game, this book will state that's a mistaken assumption since game players are mostly looking for a kind of experience in which incompetence, frustration, and failure are actually essential. In a sense, this is a good contrast to Koster's A Theory of Fun. By examining the reason why we keep playing video games, Juul brings up a number of interesting ideas you might wanna take a look at if you want to have a good perspective on what it takes to make a really engaging and good quality video game.
27) Game Feel: A Game Designer's Guide to Virtual Sensation by Steve Swink
As the scientific literature in embodied learning keeps growing in the areas of education and cognitive sciences, this book does a really good job in bringing this still difficult discussion to video games. One of its main assumptions is that player's connection with a game is central to a game's success and it should be taken into account in game design. It dives deep into the player's psychology and brings up topics such as the importance of metaphor, perception, sound, etc. This is a good read if you care about the kind of sensation/feeling you would like to evoke while crafting your game.
28) Design of Everyday Things by Donald Norman
This book should be read by anyone who deals with the creation of things to be used by humans. This is a good followup to Game Feel, once it sheds more light on how human interacts with objects. It will open your eyes to the difference between good and bad design and discuss the importance of making thing visible, how to exploit natural relationships that couple function and control, and how to make a smart use of constraints.
29) Character Animation With Direct3D by Carl Granberg
This book is for those who want to make realistically looking game characters. It will teach you important fundaments to character animation and cover topics such as skeletal animation, morphing, inverse kinematics, ragdoll animation, etc. At the end of the book, you'll have a character that is able to walk, talk, collide with objects, and more.
30) Production Pipeline Fundamentals for Film and Games by Renee Dunlop
The game production literature is often overlooked by game developers who also happen to be the head of their development team. Not following a proper production pipeline can sometimes result in bad decisions and bad habits. This book will go over the common aspects of production to be taken into account while working on a creative product like games and films. It serves as a perfect guide to managing resources for a successful final product.
31) How to Write Science Fiction and Fantasy by Orson Scott Card
Although this book wasn't written with game developers in mind, it is another must-read for the sake of good quality game design. The notion that games are also another form of storytelling is well established and the ability to write good stories is a valuable skill set in the game industry. Orson Scott Card will teach you how to utilize story elements for the creation of engaging and interesting storylines for your game.
Would you recommend other books that didn't appear in this list? The comment section is open for contributions or more ideas. Let's make this list better!