Project thumbnail

Disco Ant

23 December 2018
A rhythm-based game built from scratch in two weeks – now downloaded more than 50,000 times

In July 2018, I attended a Talent Camp organised by Ekipa 2 d.o.o. (subsidiary of Outfit7) which was held in Ljubljana. The aim of this talent camp was to design and build a game from scratch in merely two weeks.

16 participants were split into two teams and each team had one game designer, three artists, and four developers. Naturally, I was one of the developers. We received a lot of support from out mentors that also showed us many tricks they use in their every day development of games for Outfit7.

Group photo – first day
A photo with all the participants and mentors on the first day. Source.

The only instructions we received the first day, were to implement a simple mechanics from one of 5 games available and create a game in two weeks. We chose a game which used 3 buttons to control the character. After some thinking our plan was to create a game which only used 2 buttons, involved ants, and was rhythm based.

Testing sample games
The first part of the camp was a brainstorming session to come up with the game idea. We got to play and test 5 games to see examples of simple mechanics we were told to implement. Source.

After two weeks, Disco Ant was a playable game with two levels of difficulty, a tutorial, highscores, and even calibration for high-latency devices.

How it works

The goal of the main character, the Disco Ant, is to hit or kick spiders and birds while it is dancing down the street. To defeat the birds the player must tap the orange button as precisely to the beat as possible. For spiders, they need to tap the blue button. You can see more details about the characters on one of our artist's portfolio on ArtStation.

Enemies come in waves and are spaced one beat apart, but sometimes an enemy glows and the player needs to tap on the beat and the half-beat to defeat them. The player must tap the correct button as closely to the beat as possible to obtain more points. If the player clears out the whole wave, a funkier music starts playing and they get greeted with either Sweet, Totally, Groovy or Perfect sign which corresponds to our disco theme.

Spider enemy
Blue spiders are defeated by tapping the blue button on the beat. A glowing spider requires two taps.

My part

We were all helping each other and worked on different parts of the game throughout the camp to speed up the process, but there are some parts mainly designed by me. I created a beat indicator that is showing on top of the screen which served as a guide as to when the player is expected to tap one of the buttons.

Bird enemy
Orange birds are defeated by tapping the orange button on the beat. A glowing bird requires two taps.

Another thing, I designed was a level configuration system with which our game designer could very easily tweak the levels without changing the code. For each of the waves of enemies, he only had to specify on which beat the wave starts and what types of enemies occur in that wave. I then created a script which parsed this information and used it to correctly positioned the enemies and configure the beat indicator.

Clearing a wave
After clearing a wave of enemies, the player is greeted with a funky exclamation which also reflects how accurate to the beat they were.

Needless to say that synchronising all movement on the screen to the music was not an easy work and we hit quite a lot of bumps on our way. On top of that, the team was a bit rash at the beginning and, since I was new in Unity development, I could not yet argue why some of their design decisions might have been poor. All this resulted into a huge bump about 7 days into our development and all work stopped for a whole day while two people were trying to solve a complex bug in their part of the system. By that time, I got comfortable enough with Unity to realise some of the poor design patterns in our core of the game.

Hence, while they were debugging and pretty much all work was at halt, I decided to redesign and refactor the core of the game to increase readability and ease further development. Another reason for this decision, was also that we would have at least something to work on in case the bug was not resolved.

The redesign was very successful – within less than a day the game was at the same level as the bugged version but without the bug and with a more readable and easier-to-fix code. Unfortunately, right about when I finished, they also managed to find a workaround for the bug and decided to stick with that version of code "because everyone was already familiar with it".

Nevertheless, my work did not go to waste. I learned a lot about Unity and the importance of refactoring and thinking twice about the design before implementing it – even if the deadline is short.

Game presentations
Our team (3 missing on the photo) presenting our game to about 300 employees and organisers. Source.

After the camp, I also completed most of the polishing work, I designed a game tutorial which was compulsory for a published game, and I also performed a lot of functionality testing and screen resolution tests to ensure the game would look good on any device.

Publishing the game

On the last day, we presented the game to the organisers and about 300 other employees of Ekipa 2 d.o.o.. They liked what we made so much that they offered to publish the game on Google Play store if we spend some more time after the Talent Camp to bring it to the publishing standard.

After party
Outfit7 Talent Camp 2018 – the after party. Source.

I loved the idea so much, I immediately started working on it and met with our game designer a few times to decide on some tweaks. I went on to test the game on all aspect ratios, for Android phones and iPhones, to ensure the game would work and look good on all the phones. After two months of work, the game was ready and we handed it over to the team at Ekipa 2 d.o.o..

The game was finally released on Google Play store in December 2018 and is available here:

Google Play logo

Below you can see a third-party demo of the game: