Bienvenido a Duke Nukem 3D Like Engine Tutorial. Este proyecto apunta a desarrollar un Game Engine sencillo con el fin de explorar la forma más simplificada de desarrollar los componentes que conforman un motor comercial clásico manteniendo un buen nivel de calidad. En líneas generales nos enfocaremos en las tecnologías, los algoritmos y las estructuras de datos que conforman cada uno de los subsistemas y cómo estos interactúan entre sí.
La implementación del código va a ser sobre JavaScript plano, sin ninguna librería extra. El estilo de programación puede resultar un tanto particular, basándose principalmente en el paradigma Imperativo (muy al estilo C) sin profundizar sobre Orientación a Objetos.
La arquitectura del motor se compone principalmente del Rendering Engine, el Physics Engine y la capa de Gameplay. Esta última, contiene el modelo de los objetos del juego, el editor del mapa, el sistema de evento y el sistema de scripting.
En la sección Graphics Engine se exploran los fundamentos teóricos de diversas técnicas de Renderización por Software para lograr un motor gráfico que simule gráficos 3D como los encontrados en el juego Duke Nukem 3D. En general, el tutorial trata de acercar al lector los conceptos matemáticos y su implementación sencilla en JavaScript.
En la sección Physics Engine se exploran los sistemas de detección de colisiones y la simulación de físicas.
En la sección Gameplay se exploran conceptos relacionados con las mecánicas del juego, las mecánicas del jugador, IA, World Editor, cámaras y la arquitectura guiada por eventos.
Capítulo 1. Introducción
Capítulo 2. Proyección de Paredes
Capítulo 3. Texturas. Archivos de diseño
Capítulo 4. Texturas en paredes
Capítulo 5. Texturas en suelo y techo. Parallax
Capítulo 6. Movimiento en Z. Movimiento vertical de cámara
Capítulo 7. Portals. Viewport Occlusion Buffers. Cross Portal detection
Capítulo 8. Sector over Sector. Stack Wall. Flat Portal
Capítulo 9. Slopes
Capítulo 10. Thing. Wall Sprite Wall y Face Sprite
Capítulo 11. Flat Sprite
Capítulo 12. Voxel
Capítulo 13. Animation System
Capítulo 14. Particle System
Capítulo 15. Light Maps
Capítulo 16. Model
Capítulo 17. Collision Detection
Capítulo 18. World Editor
Capítulo 19. Event Driven Architecture
Capítulo 20. Artificial Intelligence
Capítulo 21. Arquitectura Cliente Servidor