Circled

Sinópsis

Un per­son­aje flotan­do en el cos­mos suje­to a un corazón y que está atra­pa­do en un bucle infini­to de anil­los que se cier­ran sobre él.

Cómo jugar

Muévete hacien­do clicks en pan­talla para evadir los anil­los tan­to como puedas. La mecáni­ca click and drag (clic y arras­trar) no está implementada.

Desarrollado para la Game Jam Ludum Dare 47 con el tema "Stuck in a Loop" por:

ÁLVARO

PIXEL ART

GAMEDEVTRAUM

UNITY DEVELOPER

CHEMA

GAME DESIGN

Sobre el desarrollo de este juego

El 2 de Octubre del 2020 se cele­bró la game jam Ludum Dare 47, un even­to en el que hay que hac­er un juego en 72 horas basa­do en una temáti­ca elegi­da por sor­teo. El tema de la jam fue "Stuck in a loop" que sig­nifi­ca atra­pa­do en un bucle. Par­tic­i­pamos en un equipo de tres personas.

La may­or parte del even­to estuve trans­mi­tien­do en vivo lo que iba hacien­do en mi orde­nador y tam­bién las con­ver­sa­ciones que fuimos tenien­do para pon­er­nos de acuer­do. Trans­mití un total aprox­i­ma­do de 32 horas y en el sigu­iente vídeo puedes ver todas esas horas de tra­ba­jo resum­i­das en 5 minutos.

40 horas de trans­misión en direc­to resum­i­das en minutos

Brainstorming previo

Unos días antes de que empiece la jam nos reuni­mos a pro­pon­er ideas en base a las temáti­cas can­di­datas, eran tres ron­das de votación con 16 temáti­cas cada una, tomamos la primera ron­da y elegi­mos 4 temas al azar. Luego cada uno se tomó 5 min­u­tos para pen­sar una idea con una mecáni­ca sim­ple. Casual­mente el tema "Stuck in a loop" esta­ba entre nue­stros elegi­dos así que para la jam ya teníamos una idea previa.

Arte

La estéti­ca gen­er­al del juego está basa­da en el esti­lo Syn­th­wave, con col­ores sat­u­ra­dos y fuentes acordes a ese estilo.

Los sprites están hechos en esti­lo Pix­el Art usan­do el soft­ware Aseprite.

Detalles técnicos

Este juego es un proyec­to 2D desar­rol­la­do con el motor Unity.

Estructura de escenas

Este juego está mon­ta­do en dos esce­nas, la primera esce­na es la del menú prin­ci­pal que cuen­ta con algunos botones, uno para empezar el juego, otro para la ven­tana de crédi­tos en la que se ve infor­ma­ción de los desar­rol­ladores, ten­emos otro botón para cer­rar el juego y un botón para ini­ciar la partida.

Mecánicas

El per­son­aje se con­tro­la pul­san­do en el lugar de la pan­talla a donde se quiere mover el jugador. El per­son­aje comien­za a acel­er­ar en esa direc­ción has­ta lle­gar a una veloci­dad máx­i­ma y luego comien­za a deten­erse, esto hace que por cada pul­so el per­son­aje se mue­va una dis­tan­cia predecible.

Durante todo el juego se gen­er­an anil­los con­cén­tri­cos cada uno con el doble de escala que el ante­ri­or, hay dis­tin­tos tipos de anil­los que tienen una o más aber­turas de sal­i­das. Mien­tras el anil­lo está acti­vo irá reducien­do su tamaño has­ta hac­erse minús­cu­lo. El per­son­aje debe desplazarse para poder escapar por las aber­turas ya que, si es toca­do por un anil­lo, el per­son­aje muere.

Este es el primer juego al que le imple­men­té un sis­tema de tra­duc­ción el cual tiene un reg­istro de cada tex­to que aparece en pan­talla y arrays que con­tienen las tra­duc­ciones para cada una, al pul­sar el botón de cam­bio de idioma pasamos al sigu­iente idioma del sis­tema y este se encar­ga de actu­alizar cada uno de los tex­tos en pantalla.

El juego está mon­tan­do en dos esce­nas, la primer esce­na es la esce­na ini­cial del menú prin­ci­pal en la que tam­bién se puede ver la pan­talla de crédi­tos. Al pul­sar el botón "Play" cam­bi­amos a la esce­na del juego. Ya que en la esce­na del juego ten­emos tex­tos en pan­talla, fue nece­sario pen­sar en un sis­tema para trans­ferir datos entre esce­nas y así poder asig­nar el tex­to en el idioma apropiado.

En las ver­siones de Android y Win­dows el sprite del sol que aparece al fon­do en la esce­na del juego cam­bia de tamaño depen­di­en­do de la ampli­tud de la músi­ca, esto se hace leyen­do un tro­zo de los bytes del clip de audio y promedián­do­los para sacar un val­or que luego se rela­cionará a la escala del sprite. No es posi­ble hac­er esto en WebGL debido a que una de las fun­ciones que nos per­mite analizar el clip de audio no se puede usar en WebGL. Una alter­na­ti­va podría ser pre­cal­cu­lar estos val­ores para cada can­ción y ten­er­los orga­ni­za­dos estos datos en lis­tas para ir aplicán­dose­los a la escala del sprite.

En este juego se hace un guarda­do de datos usan­do Play­er­Prefs para recor­dar cuál fue la pun­tuación máx­i­ma y actu­alizarla en caso de superarla.

Scroll al inicio
Secured By miniOrange