¿Cómo puedo lograr un aspecto de "gráficos de 8 bits"?

10

Tengo una sólida experiencia en programación, pero no del desarrollo de juegos. Solo hice algo de pong y serpiente en la escuela secundaria e hice algo de OpenGL en la universidad.

Quiero hacer mi propio motor de juego. Nada especial, solo un simple motor de juego en 2D. Pero porque soy un poco de la vieja escuela y me siento retro. Quiero que los gráficos se vean como viejos juegos de 8 bits (megaman, contra, super mario, ...).

Entonces, ¿cómo se hicieron los viejos juegos en aquel entonces? Quiero el enfoque más simple. ¿También estaban utilizando activos (imágenes) como lo hacen ahora los motores más nuevos? ¿Cómo se logra este tipo de renderizado con OpenGL?

Tenga en cuenta. La solución más simple. Quiero saber cómo se hizo en ese momento y cómo puedo replicar eso. Ni siquiera tiene que ser OpenGL. Puedo dibujar en el lienzo de la ventana. Básicamente, quiero hacerlo desde cero.

Matjaz Muhic
fuente
66
Los gráficos de 8 bits son una cuestión de activos y no de programación, supongo que podría limitar su paleta de colores en el código, pero eso suena demasiado para la sensación de la vieja escuela.
Luke B.
Si desea gráficos similares a 8 bits, limite la paleta de colores cuando cree sus elementos de arte y use siempre el filtrado del vecino más cercano en las texturas.
Robert Rouhani
3
Las preguntas sobre dónde comenzar y qué tecnología usar están fuera del tema del sitio. Consulte las preguntas frecuentes para saber qué tipos de preguntas hacer aquí. Puede intentar volver a redactar su pregunta para preguntar cómo renderizar gráficos de 8 bits y eliminar todo lo relacionado con la creación de un motor de juego.
MichaelHouse
1
Lo que dijo Byte56: esta podría ser una gran y útil pregunta si la modificaras para que fuera más específica a un tema preciso.
Maximus Minimus
Cambiado. Espero que sea mejor ahora.
Matjaz Muhic

Respuestas:

7

Entonces, ¿cómo se hicieron los viejos juegos en aquel entonces?

Completamente diferente, más parecido a lo que ahora llamaríamos "programación de sistemas integrados". Los gráficos basados ​​en modos de las consolas de 8 bits y las cajas de juegos electrónicos fueron controlados por el hardware, no por el software. El código del juego (generalmente ensamblado) introdujo memoria especializada en un programa de instrucciones (por ejemplo, X instrucciones por línea de exploración).

¿Cómo se logra este tipo de renderizado con OpenGL?

Mapa de textura de un quad con el filtro desactivado. Mejor aún, agrupe varios quads y atlas los activos para un mejor rendimiento.

Max
fuente
"atlas" los activos? Qué significa eso?
Matjaz Muhic
Pegar varias imágenes en una imagen de textura y "elegir" qué mostrar usando los rayos UV del quad. Entonces, por ejemplo, todos los mosaicos de fondo podrían cuadricularse en una hoja de textura, y luego solo necesita unir una textura antes de representar las capas de fondo.
Max
Oh. Algo como los sprites?
Matjaz Muhic
@Matjaz: Muy parecido a los sprites. Esa palabra significaba algo diferente mucho antes de que aparecieran los aceleradores de gráficos 3D.
Ilmari Karonen