
Multi-Threaded Game Engine Design
Jonathan S. Harbour
- Editorial
- Course Technology
- Año
- 2010
- Páginas
- ~592
- Nivel
- Intermedio
De qué trata
Tratado técnico orientado al diseño y construcción desde cero de un motor de videojuegos en C++ concebido específicamente para aprovechar arquitecturas de hardware multinúcleo mediante multiprocesamiento simétrico (SMP). Escrito por Jonathan S. Harbour, está dirigido a programadores intermedios y avanzados de videojuegos con experiencia sólida en C++ y matemáticas 3D que buscan superar las limitaciones de rendimiento impuestas por los bucles de juego tradicionales de un solo hilo.
El libro realiza un análisis comparativo y práctico de las principales tecnologías de concurrencia: hilos nativos de Windows (Win32 threads), POSIX Threads (Pthreads), Boost.Threads y directivas de paralelización con OpenMP. Sobre esa infraestructura, el autor erige los subsistemas de un motor 3D completo empleando DirectX 9 (Direct3D) y shaders en HLSL: matemáticas de vectores y matrices, gestión de cámara y escena, carga de modelos `.X` y texturas, skyboxes, generación procedural de terreno mediante ruido de Perlin, animación de mallas esqueléticas con jerarquías de huesos, manejo de sprites 2D con `ID3DXSprite`, renderizado a textura (RTT), gestión centralizada de entidades con `AutoTimer` y detección de colisiones mediante ray-casting (picking). La obra culmina desacoplando las rutinas de físicas, gravedad y colisiones para ejecutarlas en paralelo.
El aprendizaje se plasma en la implementación completa del motor y en demos técnicas interactivas que evalúan el rendimiento concurrente frente a ejecuciones secuenciales, destacando pruebas masivas de colisión de sprites y cálculos físicos bajo OpenMP. Su valor principal estriba en enseñar a distribuir tareas sin caer en condiciones de carrera ni bloqueos mutuos; sin embargo, al datar de 2010, sus ejemplos dependen de DirectX 9, formatos heredados como `.X` y versiones de Boost anteriores a los estándares contemporáneos de C++, por lo que sus soluciones deben asimilarse como patrones arquitectónicos y no como código listo para producción moderna.
- C++
- Multithreading
- DirectX 9
- Direct3D
- OpenMP
- Boost.Threads
- Win32 Threads
- Pthreads
- HLSL
- Game Engine Architecture
- Collision Detection
¿Cómo enseña?
Con proyectos
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Custom Multi-Threaded 3D Game Engine
Motor de videojuegos 3D construido desde cero en C++ y Direct3D que desacopla la carga de datos, cálculo de físicas, animación esquelética y renderizado en hilos independientes mediante OpenMP, Win32 y Boost.Threads.
Multi-Threaded Sprite & Physics Collision Demo
Demostración técnica interactiva que pone a prueba la arquitectura concurrente del motor mediante simulaciones de gravedad y detección simultánea de colisiones en tiempo real repartidas entre múltiples núcleos de la CPU.

