¿Cuáles son algunos buenos recursos para aprender a implementar un motor gráfico moderno?

La mayoría de los desarrolladores que desean crear un juego utilizarán un motor de juego existente como Unity o Unreal: fueron diseñados por profesionales con años de experiencia en la fabricación de juegos AAA, y miles de horas de desarrollo se han dedicado a mejorar esos motores. Más importante aún, te permiten concentrarte en crear el juego en lugar de las piezas repetitivas que entran en un motor.

Si desea implementar su propio motor, (1) cree que puede hacerlo mejor y / o (2) quiere aprender los fundamentos usted mismo. Ambos son esfuerzos razonables.

Primero, necesitará desarrollar una buena comprensión de los gráficos por computadora (en general, no solo para los juegos): qué técnicas de gráficos son lo suficientemente rápidas para los juegos y cuáles no. Mi libro favorito sobre gráficos de computadora en general es Computer Graphics: Principles and Practice, 3rd Edition. Está un poco anticuado con respecto a las técnicas modernas, pero es una referencia indispensable.

Para todo lo relacionado con la representación, el mejor libro es el libro PBRT: de la teoría a la implementación. Ninguno de estos algoritmos se usa realmente en los juegos, pero los gráficos de los juegos tratan de fingir estos efectos a bajo precio.

Para gráficos específicos de juegos, gamasutra.com tiene muchos artículos agradables que insinúan la ingeniería de software que entra en un juego: Escribir un motor de juego desde cero – Parte 1: Mensajería

El subreddit gamedev de Reddit también tiene muchos enlaces a excelentes recursos: preguntas frecuentes – gamedev

Algunos buenos sitios web que utilizo son OpenGL – Introducción, OpenGL paso a paso y Lazy Foo ‘Productions. El tercero, notará, no se trata de desarrollar en 3D, sino de usar SDL. SDL será el otro gran levantador de tu motor de juego. También debe pasar un tiempo leyendo Arquitectura del motor del juego, Principios y práctica de gráficos de computadora y Representación en tiempo real.

Desde aquí, puedes ramificarte. Estudia otros motores, tanto como puedas. Lea las revisiones del código fuente de Fabien Sanglard de los motores Doom. Lea también el código fuente de los principales motores. Lumberyard, Unreal Engine, Unity e Idtech han lanzado fuentes. Son un gran recurso, así que utilízalo. También escucharía CppCon 2014: Mike Acton “Diseño orientado a datos y C ++”.

Empieza pequeño. Comience simplemente obteniendo un cubo y un avión, y descubriendo técnicas básicas de iluminación. Lentamente avance hasta materiales y modelos.