Я бы рекомендовал сначала создать хотя бы небольшую игру с использованием существующего движка, чтобы вы понимали, что такое движок с этой точки зрения.Лично я бы порекомендовал Unity, NeoAxis или UDK.
Затем сконцентрируйтесь на создании игры без такого движка (как рекомендовали другие).Возможно, вы захотите начать с использования некоторых существующих подсистем, таких как Ogre3D, и медленно заменить их своими.
Тогда вы сможете начать думать о том, как создать движок, подходящий для других игр.
Прямой переход к созданию даже простого двигателя - это все равно, что пытаться написать роман, даже не прочитав его.(И на самом деле, романы довольно просты по сравнению с игровыми движками.)
Из этих книг я бы выбрал Game Engine Architecture и пошел бы по ней, а не пролистывал разные книги.Используйте другие только для дополнительных точек зрения, по крайней мере, сейчас.