El chat y los en vivo estan que arden con la clásica pregunta «Iki, y cuando es la proxima Jam?»… y aquí estamos, para arrancar el año con todo, con lo prometido, la nueva Jam. Unansé a través de éste link:

https://itch.io/jam/escuela-de-juegos-jam-1-2021

Ya hemos visto lo contundente de las anteriores Jams, pero por si no te enteraste, acá te dejamos el link de la última:

https://itch.io/jam/escuela-de-juegos-jam-4-2020

Ésta es la primer Jam del año, el momento ideal para demostrar que va a ser un buen 2021, tumbando las sillas de los jueces y de otros participantes… ¿estás listo para mostrar tu poderío?

 

Como podrás ver, si visitas el link te vas a encontrar con la Jam y su temática (que explicare aqui mas abajo tambien). Tenemos muchas formas de interpretar ésto, sin embargo en éste caso seré breve, y tiene muchísimas posibilidades.

La temática seleccioanda para éste evento es reciclaje y/o pooling (en videojuegos).

 

Cuando hablamos de reciclaje, es inevitable pensar en medioambiente. Pero en videojuegos no necesaramiente tiene que estar relacionado a lo mismo.

Para entender primero la base de lo que es reciclaje, tenemos que entender que a partir de «desechos» o de un producto que deseamos descartar, podemos obtener otro.

Sería una suerte de «transformación», en la que por ejemplo, una botella pasa a reciclarse y obtenemos el material, que puede ser vidrio, o en otros casos reciclando objetos de plástico, se crean juguetes para niños.

 

En Videojuegos, el concepto de reciclaje o pooling, cobra sentido haciendo alguna referencia a algunos conceptos fundamentales de ésta terminología.

El principio de pooling en videojuegos, refiere a que vamos a «reutilizar» de alguna forma los objetos del juego, y se usa principalmente desde el lado programativo para ahorrar recursos y mejorar el rendimiento.

Cuando hablamos de reutilizar, lo que se hace principalmente es tener en una escena ya determinada una cantidad de elementos máximos que vamos a utilizar. Esa cantidad de elementos es la que va a aparecer y reaparecer en pantalla, sin ser eliminados, sino reciclados para volver a aparecer.

Y ¿por qué hago ésto?… de ésta forma estamos evitando instanciar una y otra vez los objetos, teniendo que llamar a pesados procesos de carga. En éstos casos, estaríamos reutilizando algo que ya asignamos y cargamos a la memoria.

Hay muchos casos en los que es útil, por ejemplo, monedas en un juego (aparecen decenas de veces), o proyectiles de disparo. Si tu arma dispara 1 munición cada 10 segundos, podrías entonces en lugar de eliminar ese proyectil, guardarlo y volverlo a llamar en el siguiente disparo.

Entonces, vamos a tener en claro un par de determinaciones finales.

¿Qué es lo usual para un object pooling?… bueno, primero tener reservada una cantidad o lista máxima de determinados objetos estáticos.

En segundo lugar vamos a necesitar «inactivarlos» o pasarlos a una instancia «queue» en la que no van a estar siendo procesados cuando los «quitemos» momentaneamente de pantalla.

Por último, necesitamos una función para volverlos a la vida, reactivandolos y otorgandoles las propiedades que correspondan (en la mayoría de casos solo la posición sería la propiedad a modificar).

El mejor ejemplo del mundo en el object pooling, podría ser el Battle City. Observa que siempre hay una misma cantidad de enemigos en pantalla, sin embargo a la derecha me está avisando que hay más. Por lo tanto cuando matamos a uno, reaparece otro (en realidad el mismo). Ésto no solo está hecho por cuestiones de jugabilidad (tener la pantalla llena de enemigos lo haría complicado), sino que además en la época, tenían que aprovechar el rendimiento y los recursos hasta el último byte.

En definitiva y habiendo visto los conceptos, ustedes pueden aplicar de cuantas formas quieran el reciclaje. Ayer me preguntaban «iki, ¿eso no es algo programativo? ¿como lo vas a ver?»… observen el último ejemplo de juego que expuse, como se puede visualizar. Es el deber de ustedes intentar ingeniarse para hacer un buen uso del pooling, y hasta quizás crear algo nunca antes visto, una mecánica nueva, o simplemente aprender.

Eso es todo… si quieren saber más sobre la Jam en si, visiten el link de la misma para anotarse y ver las reglas. Les deseo toda la suerte del mundo, y muchas gracias por formar parte de ésta incréible aventura con nosotros!