Pixel es un videojuego experimental en donde el único elemento que se utiliza es un pixel. Un pixel para representar al jugador, otro para representar los elementos que “dispara”, y otro para representar los “enemigos”.
Pixel es un recordatorio de lo que significa el pixel y de su potencia.
Las pantallas actuales, al crear densidades cada vez mayores, evitan por completo la visualización del píxel. Este juego experimental, en cambio, le da protagonismo e incluso en displays de altísima densidad y recursos apenas percibidos por el ojo humano se pone en escena al pixel, la mínima representación de cualquier obra digital.
Dado que cada elemento del juego es representado por un pixel, éste es también el elemento más grande de la interfaz; no hay nada más: no hay puntaje visible, no existe tiempo que corra, solo participan píxeles. Puede representar un clásico juego de naves, o también una persona luchando en vano contra el calor del planeta, o lo que cada jugador pueda imaginar. Los pixeles aceptan ser representantes de lo que quieran.
Pixel busca que cuando ustedes jueguen, puedan percibir el poder de lo que están moviendo, de eso que aparenta ser un destello mínimo de luz y al mismo tiempo es la pieza fundamental de todo lo que está representado digitalmente.
Se puede jugar acá: https://pixel.lucasdima.com/
Acerca de Pixel
Pixel es mi segundo proyecto realizado en Pico-8. El primero fue mine2020, el cual desarrollé en 2020 como intento de aprender Pico-8. Lo bueno de eso fue que me permitió desarrollar Pixel relativamente rápido.
Pico-8 es una plataforma extraordinaria con importantes limitaciones que permiten que solo las cosas esenciales estén visibles, y además es super placentero de programar.
Desafíos en la programación
En realidad todo fue bastante simple. El único desafío o complicación fue detectar la colisión entre las balas y los enemigos. Básicamente porque las balas viajan bastante rápido, les puse una velocidad de 5 pixeles por frame. Así que no fue posible detectar una colisión de pixel sobre pixel porque las balas, (o cualquier otro objeto que viaja rápido) puede pasar por encima de un enemigo sin estar en la misma posición. Entonces desarrollé unos chequeos que dependen de la dirección y la velocidad. Chequea si hay enemigos en la línea formada por la posición de la bala y su posición final, luego, si hay algún enemigo allí, entonces cuenta como hit, destruyendo tanto al enemigo como a la bala. De forma que cada bala solo puede matar a un enemigo, lo cual agrega un pequeño desafío al juego.
Sobre el proceso y elementos descartados
Al principio programé dos niveles cortos en onde solo aparecían enemigos cada dos o tres segundos, dándole al jugador la posiblidad de aprender, pero luego descubrí que luego de jugar un rato es molesto repetir estos niveles básicos, así que decidí eliminarlos. Actualmente cuando el jugador comienza hay un enemigo apareciendo cada segundo, y luego de un corto período de tiempo esto se incrementa a 2/3 de segundo y finalmente a 1/3 de segundo, de modo que al final hay tres enemigos por segundo generandose, lo cual es un montón. Y además es divertido y desafiante (al menos para mi!)
Otra característica que le agregué fue que los enemigos no pueden aparecer a menos de 50 pixeles de distancia del jugador, porque de otro modo, los enemigos podrían aparecer muy cerca o incluso en la misma posición, matando e irritando al jugador al mismo tiempo.
Interfaz
Cuando el jugador muere, todos los enemigos que mató se muestran en la parte superior de la pantalla, como pixeles individuales. Pero luego decidí que estaba mejor mostrarlos al momento en que eran ejecutados, dando un efecto de progresión, como si fuera un puntaje, pero solo hecho con pixeles.
Y luego fui un poco más allá y le agregué en la parte inferior de la pantallla todos los enemigos que hay actualmente en la pantalla, y esto da una sensación de peligro, lo cual también me resultó bastante interesante.
Los próximos pasos
Por el momento no estoy muy seguro de esto, pero creo que puede resultar interesante probar de poner Pixel dentro de alguna consola portátil. Tal vez como concepto, o tal vez como una manera de generar una pieza tangible, y tal vez (muchos tal vez!) una cantidad limitada, pero no estoy seguro de esto. Veremos. Este post https://www.lexaloffle.com/bbs/?tid=44065 posee una buena explicación de que consola usar.
Como pieza de arte me gusta la idea de tener una consola la cual solo se puede jugar Pixel. Veremos.
El software ético y el concepto User First Software
Hace un tiempo desarrollé un concepto de software llamado User First Software el cual habla de la ética del desarrollo de software, y es una especie de guía que utilizo para mis propios desarrollos. Básicamente habla de transparencia, que no haga tracking, no publicidad y varias cosas que solo perjudican al usuario.
Pixel cumple con todas las propiedades de este concepto de User First Software y además el código es abierto y se encuentra en este repositorio público de Github: https://github.com/lucdima/pixel