Circled – An Android game made in Unity in 72 hours

Circled is a mini-game made in Unity that consists of a character floating in the cosmos holding on to a heart and being trapped in an infinite loop of rings that close on him. The rings have one or two exit ends and the player has to click on the screen to make the character escape.

Game objective

Avoid as many rings as possible to obtain the maximum score.


Circled for ANDROID




About the development of this game

On October 2, 2020 the Ludum Dare 47 game jam was held, an event where you have to make a game in 72 hours based on a theme chosen by the community. The theme of the jam was “Stuck in a loop“. We participated in a team of three.

Most of the event I was live streaming what I was doing on my computer and also the discussions we were having to reach an agreement. I transmitted a total of approximately 32 hours and in the following video you can see all those hours of work summarized in 5 minutes.

40 hours of live streaming summed up in minutes


Previous Brainstorming

A few days before the jam starts we met to propose ideas based on the candidate themes, there were three rounds of voting with 16 themes each, we took the first round and chose 4 themes at random. Then everyone took 5 minutes to think of an idea with a simple mechanic. Coincidentally the theme “Stuck in a loop” was among our chosen ones so for the jam we already had a previous idea.


The general aesthetics of the game is based on the Synthwave style, with saturated colors and fonts according to that style.

The sprites are made in Pixel Art style using Aseprite software.

Technical Details

Este juego es un proyecto 2D desarrollado con el motor Unity.

Game mechanics

The character is controlled by clicking on the place on the screen where the player wants to move. The character starts to accelerate in that direction until it reaches a maximum speed and then starts to stop, this makes that for each pulse the character moves a predictable distance.

During the game there are concentric rings that are generated, each one with twice the scale of the previous one, there are different types of rings that have one or more outputs. While a ring is active it will shrink in size until it becomes tiny. The character must move to escape through the openings because, if touched by a ring, the character dies.

This is the first game to which I implemented a translation system which has a record of each text that appears on the screen and arrays containing the translations for each one, by pressing the language change button we go to the next language of the system and the system is responsible for updating each of the texts on the screen.

The game is set up in two scenes, the first scene is the initial scene of the main menu in which you can also see the credits screen. By pressing the “Play” button we switch to the game scene. Since in the game scene we have on-screen texts, it was necessary to think of a system to transfer data between scenes in order to assign the text in the appropriate language.

In the Android and Windows versions the sun sprite that appears in the background of the game scene changes size depending on the amplitude of the music, this is done by reading a chunk of the bytes from the audio clip and averaging them to get a value that will then be related to the scale of the sprite. It is not possible to do this in WebGL because one of the functions that allows us to analyze the audio clip cannot be used in WebGL. An alternative could be to pre-calculate these values for each song and to have these data organized in lists to be applied to the sprite scale.

In this game, data is saved using PlayerPrefs to remember what the maximum score was and update it if it is exceeded.

Secured By miniOrange