Hola. Con haber leído todos los tutoriales en español no es suficiente. Leer está muy bien, pero si no pones en práctica la teoría, de poco sirve. A caminar se aprende caminando.
Así que lo primero es tener una buena base, una buena metodología de programación (que no tiene nada que ver con saber C++, c#, java, etc). Y lo mejor para eso está claro que no es empezando a desarrollar un motor 3d. Lo mejor es empezar con programas simples que resuelvan problemas simples y poco a poco ir complicando los problemas.
Si resulta que ya tienes soltura con todo eso y con el propio lenguaje (manejo de memoria, punteros, etc), entonces puede que estés preparado para comenzar el desarrollo de un motor 3d.
Antes de nada. Piensa cual es el objetivo que buscas. Si es la de aprender sobre programación gráfica, adelante, programa tu motor 3d. Pero si el objetivo final es el desarrollo de un juego, tal vez tu mejor opción es utilizar un motor 3d que ya está consolidado.
Imaginemos que es lo primero, quieres aprender los secretos de la programación gráfica 3d.
Supongamos que ya eres la leche programando. Para ser un buen programador de motores 3d es necesario tener un cierto nivel de matemáticas. El álgebra y la trigonometría son imprescindibles. Vectores, matrices y todas las operación que se puedan realizar con ellos (producto escalar, vectorial, calcular la inversa de una matriz, etc) es lo más básico. Te diría que lo mínimo para poder empezar en esto de la programación 3d es el temario que se daba en c. O. U. (desconozco en el plan actual de estudios a que curso equivale).
Un nivel decente de física también es deseable. Una vez más el nivel de 3º de b. U. P, o c. O. U, es lo básico. Conocimientos de cinemática, dinámica, dinámica del sólido rígido, dinámica de los sistemas de partículas, electromagnetismo, etc. Evidentemente esto no es del todo necesario si no vas a crear un sistema de física, aunque sí, por ejemplo, quieres desarrollar un módulo de sistemas de partículas es imprescindible.
Luego también está el tema del Api gráfica a utilizar. ¿OpenGl o Direct3D? Si quieres que tus aplicaciones sean multiplataforma, no hay elección, OpenGL. De lo contrario, si te vas a limitar a plataformas de Microsoft, OpenGL o Direct3D, la que más te guste.
Por supuesto necesitarás un compilador/entorno de programación. Yo te recomendaría el visual C++ (tienes la versión express gratuita), pero tienes otras opciones gratuitas.
Otra cosa que debes plantearte es si utilizar la fixed pipeline de OpenGL/Direct3D o utilizar vertex & píxel Shaders. La cosa creo que está clara a estas alturas. La elección debería ser hacer un uso exclusivo de Shaders, pero es tu elección. Si te decides por los Shaders, tendrás otro dilema. ¿Qué versión de Shaders utilizar? Una vez más, en mi opinión, la elección deberían ser Shaders 2.0 como mínimo, pero ya sabes que estas tirando para fuera a gente que no tenga una Ati Radeon 9500 o superior o una Nvidia GeForce FX 5200 o superior.
Y por último, y esto es imprescindible si quieres llegar a alguna parte, le. Le todo lo que pilles. Eso sí, lo mejor está en inglés, así que, prepárate a aprender.
En cuanto a sitios donde encontrar artículos tienes la que has mencionado,
Gamasutra,
gamedev,
flipcode (su amplia sección de artículos sigue en pie),
devmaster y otras muchas más que ahora no recuerdo. Por supuesto,
google, imprescindible. También, visita los foros de las webs que he mencionado. Los de gamedev y devmaster suelen tener bastante nivel y en muchas ocasiones se tratan temas muy interesantes. Si tienes dudas, no dudes en preguntar ahí mismo (otra razón para aprender inglés). Si quieres un lugar en castellano donde preguntar dudas concretas de programación, te recomiendo que te pases por
stratos.
Eso es todo lo que se me ocurre ahora mismo.
Ale, suerte y happy coding.