If you have decided to develop your game engine, you may be wondering where to start, what books to start reading, etc. If you are in this situation, I recommend getting a copy of the following books found here. Out of all the books I've read, they are the best of the best, so I strongly recommend them.

Now, if you want a comprehensive list, the list below should help you.

### Books to develop the Math Engine

- Mathematics for 3D Game Programming and Computer Graphics
- Quaternions and Rotation Sequences: A Primer with Applications to Orbits, Aerospace and Virtual Reality
- Quaternions for Computer Graphics
- 3D Math Primer For Graphics and Game Development
- Practical Linear Algebra: A Geometry Toolbox
- Visualizing Quaternions
- Curves and Surfaces for Computer Graphics
- Essential Mathematics for Games and Interactive Applications: A Programmer's Guide

### Books to develop the Rendering Engine

- OpenGL 4.0 Shading Language Cookbook
- OpenGL Insights
- Real-Time Rendering, Third Edition
- OpenGL Shading Language
- Foundations of 3D Computer Graphics
- Texturing and Modeling, Second Edition: A Procedural Approach
- OpenGL Superbible: Comprehensive Tutorial and Reference
- Graphics Shaders: Theory and Practice, Second Edition
- Graphics Programming Methods
- Real-Time Shadows

### Books to develop the Physics Engine

- Physics for Game Developers: Science, math, and code for realistic effects
- Numerical Methods for Scientists and Engineers
- A Student's Guide to Vectors and Tensors
- Real-Time Collision Detection
- Game Physics Engine Development: How to Build a Robust Commercial-Grade Physics Engine for your Game
- Computational Geometry: Algorithms and Applications
- Game Physics Pearls
- Geometry for Computer Graphics: Formulae, Examples and Proofs
- Geometric Tools for Computer Graphics
- Computational Geometry in C
- Collision Detection in Interactive 3D Environments
- Game Physics

### Learning 3D Modeling tools (Blender)

If you are wondering why you need to learn Blender, read the following article.

- Blender Master Class: A Hands-On Guide to Modeling, Sculpting, Materials, and Rendering
- Blender Foundations: The Essential Guide to Learning Blender 2.6
- Learning Blender: A Hands-On Guide to Creating 3D Animated Characters
- Python 3 Object Oriented Programming- Blender provides an API which allows you to extract 3D modeling information. To use the API, you need to know a bit of Python.
- Digital Modeling

### Game Engine Architecture

- Head First Object-Oriented Analysis and Design
- Game Programming Gems
- Best of Game Programming Gems
- 3D Game Engine Architecture
- 3D Game Engine Design: A Practical Approach
- C++ Common Knowledge: Essential Intermediate Programming
- C++ Pointers and Dynamic Memory Management
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs
- C++ Templates: The Complete Guide
- Design Patterns: Elements of Reusable Object-Oriented Software
- The C++ Standard Library: A Tutorial and Reference
- Thinking in C++, Vol. 1: Introduction to Standard C++, 2nd Edition
- Thinking in C++, Volume 2: Practical Programming
- Game Programming Algorithms and Techniques
- API Design for C++
- Game Programming Patterns

Hope it helps.