El color de los videojuegos

En este proyecto he analizado la evolución de color en los videojuegos. He ido descargando longplays —vídeos de alguien pasándose un juego entero— y convirtiendo el color predominante de cada fotograma en una línea vertical, creando una línea de tiempo.

Al analizar los videojuegos desde este punto de vista he encontrado muchos patrones que se repiten. Aquí hablo de los que me han parecido más curiosos pero podéis verlos todos en el link al proyecto:

Game Colors

Algunos juegos usan el espectro para dar sensación de progreso al jugador. En Journey empezamos en un desierto y conforme resolvemos ciertos puzzles vamos descubriendo otras partes del mundo y el color va cambiando.

Otros juegos también usan el color para dar sensación de progreso, aunque de forma más directa: dividen el juego en mundos y cada uno de ellos tiene una paleta distinta. En algunos juegos con dinámicas poco cambiantes como Bit Trip Runner este recurso da más sensación de variedad. Es curioso cómo suelen empezar con tonos verdes y luminosos y van cambiando hacia tonos rojos y oscuros.

También hay juegos que no limitan la evolución del color al propio juego, sino que va cambiando a lo largo de una saga completa. Es el caso de Diablo, Elder Scrolls o BioShock. En todos ellos el color se va volviendo más vivo de un juego al siguiente. El caso de Diablo III fue bastante sonado y todo el mundo se quejaba de lo colorido que era.

La mayoría de juegos también usan el color para dar identidad al juego y muchos se pueden identificar fácilmente con solo ver la paleta de color. Algunos juegos como GRIS y Celeste no hacen honor a sus nombres, pero tienen una paleta que cualquiera que haya jugado podrá identificar.

Además de los juegos de este post he subido otros bastante curiosos, como la saga completa de Zelda, GTA o Final Fantasy. Pero no quería dejar de poner aquí otros juegos cuya paleta es simplemente espectacular y no se me ocurría ninguna otra excusa.

Empecé este post como una continuación del que escribí sobre el nombre de los colores, e inicialmente sólo pretendía sacar una paleta de color, no una línea temporal. Pero cuando vi lo que hizo el artista Dillon Baker con películas pensé que sería más interesante emularlo con videojuegos.

Para obtener los longplays, he usado la librería de descarga de vídeos online youtube-dl que hace poco retiró Github tras una denuncia de la SGAE estadounidense. La denuncia ha catapultado la popularidad de esta librería produciendo un efecto Streisand en toda regla y ya ha sido restaurada.

Lo más complicado tal vez ha sido identificar el color predominante de cada fotograma, que sigue siendo un campo de investigación activo. Probé a usar la media de todos los colores en pantalla, pero pasaba lo mismo que al mezclar todas las plastilinas y sale una masa de color gris y marrón. Así que terminé haciendo un clustering de los colores de la imagen y quedándome con el color que representa el cluster más grande.

Espectro de Papers, Please

El Papers, Please es gris de todas formas.

He pensado en subir a RedBubble versiones en alta resolución de estas líneas temporales en forma de cuadros, pero crear un producto por cada juego es un trabajo de chinos, así que si estáis interesados en alguno en particular podéis dejar un comentario y lo subiré de forma individual.

5 comentarios

Generación procedural: perlin noise

La generación procedural es un concepto muy habitual en los videojuegos que consiste en generar escenarios u otros recursos de forma aleatoria pero consistente. He estado diseñando un pequeño generador de mundos con esta técnica.

World generator

Algunos juegos como Minecraft usan esta técnica para generar sus mundos infinitos, así que voy a ahondar un poco en cómo funcionan estas técnicas y por qué el ruido tipo perlin es esencial para esta tarea.

Captura de Minecraft

Lo primero que necesitamos para generar proceduralmente es una función de ruido que nos permita generar valores aleatorios. Pero no todo el ruido es igual, es importante que este ruido parezca natural. En la siguiente imagen puedes ver ruido completamente aleatorio a la izquierda y un ruido tipo Perlin a la derecha.

Comparación de ruido aleatorio (izquierda) y ruido Perlin (derecha).

Aunque el ruido aleatorio tiene muchos usos, es demasiado rugoso como para parecer natural. Al observar la naturaleza, es fácil darse cuenta de que muchas cosas tienen un aspecto fractal. El ejemplo más común es la altura de las montañas. Estas tienen grandes variaciones en altura (las montañas), variaciones medianas (colinas), variaciones pequeñas (rocas), variaciones minúsculas (piedras)… y podríamos seguir. Este mismo fenómeno ocurre en muchos otros casos: las olas en el mar, las ramas de los árboles, los movimientos de las hormigas, los patrones del mármol…

Siempre se observa el mismo patrón de grandes y pequeñas variaciones. Ken Perlin se dió cuenta de este fenómeno y decidió crear una función de ruido que lo recreara. El ruido Perlin consiste en sumar una gran cantidad de funciones de ruido de diferentes escalas.

Octavas Perlin

Una función de ruido aleatorio no es más que una función que devuelve números aleatorios, que después son interpolados para hacer una función continua.

Interpolación de ruido

Ahora, al tomar varias de estas funciones, con varias frecuencias y amplitudes, y sumarlas, se obtiene ruido Perlin.

También se puede hacer lo mismo en 2 dimensiones, interpolando una función de ruido 2D. Así, se genera un mapa de alturas. En la imagen de abajo se muestra un mismo mapa coloreado de 4 formas distintas.

Ejemplo de coloreado de Perlin 2D (small)

Este mapa tiene muchas aplicaciones, como generar terrenos, mapas de calor, nubes o imágenes psicodélicas. Puedes saber más sobre perlin noise en la página de Hugo Elías, de donde he sacado un par de figuras. Y si te ha gustado, ¡ya puedes trastear!

1 comentario

🍪 ¿Cookies?

Esta web usa cookies para identificar qué contenido es interesante y mejorar su calidad. Más información aquí.

4d8cd43bbbfbbd2b7aed08d9a2b0ef251cebfd3e2603b74b710a2d38b7f8ec39