How I built my first Android Game and realized creativity is all about iterations

Game Development

Last week, on 27th February 2015, I released my first android game Rocket Romeo. As I started to spread the message to my friends, the game built traction. The graphics, mechanics and experience of the game has been greatly appreciated so far. In the midst of appreciation, I found that most of the people recognized my attempt to be creative. I have been wondering what creativity really is because for the past 45 days all I have done is tried to build a game which is loved by masses. The process was full of experimentation and iterations.

To elucidate my iteration cycle, I am sharing the story of building Rocket Romeo.

Here’s how the game now looks.

Like I have said, I have been appreciated to be really creative while building this game. But on the other hand in my opinion — I was not creative, but iterative.

Why I started building an Android game is not the matter of discussion here. So, I will start the story from the point when I felt determined to develop a gaming app. The ideation phase started around 12 Janurary ‘15.

The first Idea

‘Cursed Bee’. The concept went like this:

“A Bee has been cursed and can fly clockwise in dark and anticlockwise in light. The game will have hurdles which the Bee has to dodge. The player will TAP to switch between light/dark mode and adjust the flight of bee. ”

Once the basic mechanics was formulated, I focused on graphics building. So I started preparing the Main Screen of the game.

You can see a bee that traces the dotted path and the honey sticks were the hurdles that it had to dodge.

After 3–4 hours of working with graphics, I felt frustrated with the outcome. It seemed repulsive to me.

I decided to scrape the whole work and start afresh.

But before starting again, I thought why not build a small MVP that would help me in understanding the essence of the game.

So instead of working on the illustration, I jumped on to Android studio and built a quick prototype which looked like this:

The small square served as a Bee and the red hurdles served as the sticks.

I played the MVP for about 1 hr and realized that the mechanics of the game was bad. Not at all interesting and challenging.

I dropped the idea and decided to move to some other idea.

Moving to the next idea

I really liked the game play of Road Fighter and thought why not build a Multi-player version of the game in which races will be organised at regular interval of time. Players around the global will compete. The race will last for 2 min and the player who travels farther will win. Looked interesting and challenging from development perspective as well.

This time MVP was not important because all I wanted was the exact experience of playing Road Fighter. Seemingly, I started to design the graphics.

The above image shows various iterations of the look ‘n’ feel of the game. After working on this concept for 2 days, I realized that the game would not provide a unique experience. Moreover, there are thousands of better racing games available on Play Store. Another idea dropped.

Next Iteration

Now I was out of ideas. I thought about puzzle games, light saber based games, number-summing games and various other forms. But none seemed worth working on.

I have been a fan of Ketchapp’s games. All of them are simple, innovative and fun to play. I wanted to create something simple & addictive which could be built easily by an Indie Developer like me.

Things were not falling in place. All ideas seemed complicated and brazen. But just when I was hopeless, my mind came up with a new idea.

The idea was simple. A falling object with some mechanics that can cause propulsion of the object and slow down its speed. The falling object will cross rectangular openings and points will be awarded for the same.

In no time I was sitting on my laptop with Android Studio and started building a quick MVP. Everything build with rectangular rendering.

Just to get an understanding of how the game’s experience would be, I built this prototype. The square served as the character that was falling & rectangular blocks were hurdles that were supposed to be crossed.

Like the previous MVPs, I played this one for more than an hour and it seemed really interesting with time.

Once a game developer is ready with the core mechanics, the next job is to put layers of illusion. I needed a story that could cover the reason why the character was falling.

Now, somebody was falling and the tap was resulting in propulsion of the falling person: The story should give the player an impression that the character was on a mission.

It took me around 4–5 hours to write a small story which fit the concept. After multiple iterations, I finalized the following version:

Help Romeo of the Chicken-land to rescue the love of his life, Juliet, from the holds of the Dark Dragon. The Dark Dragon has held Juliet captive inside a volcano. Romeo has got a rocket at his back which will help him descend into the volcano, pass through the various mazes and get to Juliet. Be a superhero and help Romeo find Juliet !

Bingo !

So the background was supposed to be a volcano and the character should have a rocket on his back. The path should have some bridges/hurdles/guards.

I was on a roll at that time. Everything was clear then, all I had to do was build a beautiful Main scene of the game.

After working with Adobe Illustrator for 2–3 days I constructed a few scenes. Following shows the stages of the background & character construction in order of iterations:

Initial Versions of Romeo and Scene Background.

Above designs gave me hope and I thought I coulddo better. I started browsing Dribbble for more inspirations. For the next 1–2 days I was browsing Behance and Dribbble, trying to figure the ideal design that can create an amazing gaming experience.

I finally started to feel better with my design and ended up with these textures for the game. Looked really clean.

The background was fancy with the exact feel of being inside a cave, transitioning into the end of volcano. Looked amazing to me, so I decided to go ahead.

Next 10 days, I was working on the code, changing atlas to suit the needs of various scene and reading Mario Zechner’s book ‘Android Game Development’. The books is simpley fantabulous. I have used the framework mentioned in it. I wasn’t much aware about gaming engines like Unity3D, AndEngine, Libgdx back then.

In 10 days I had a working copy of the game on my Gingerbread 2.3.2 However, the game was not that interesting as the propulsion was very artificial and the experience was not charming. At this point of time the logic of propulsion was straight forward with normal rocket propulsion theory. The real world effect with rocket was not working here, so I molded the logic and used propulsion theory only for a certain range of velocity. This resulted in a logic which was slightly away from the real life physics, but it created a good experience. [No further iterations were done on the movement of character after this.]

The basic game play was now ready, and the game was in a stage where I could hand it to my friend for feedback. Majority of them liked it but they said that the background was interfering a lot with the game play, which was absolutely true. I never realized that the background was so dominating.

So, I was back on square 1, starting again, designing the background. Re-designing the background meant a redesign of characters & blocks as well.(By this time, I felt that the green Romeo looked ugly and artificial too)

I started experiment with the background again. These are some of the iterations that I tried, but all in vain. All this time I was trying to stick to the story of Romeo falling inside the cave.

I was not willing to give away the story, it seemed so convincing. But lately I gave up the thought and decided to go for a sky background — simpler and flat.

The story was put on hold. I had no clue why he was falling down, but I took a leap of faith that I will figure out what he was doing in the story.

Final iterations on background & characters with sky background.

The blue sky seemed clean and promising. So, I decided to go with it. The game was now back on track. I build the main scene, included the Blue guards in it. Added dragons to increase the difficulty as you descend down. To make life easier for player, introduced the concept of collecting eggs. When the player collects 50 eggs, an extra life is awarded.

Apart from the iterations on the Illustration front, I ran a lot of experimentation with character and effects in the game. The game was planned to have teleporting pipes which had random behavior of taking you either forward/backward in the game. The recharge fuels were initially designed in a different way.

The players were supposed to land on blocks that will contain rocket fuel. However, I dropped it because the experience was not pleasing.

By the end of the whole development process, I began to think that the game had something missing for people to engage. For simple games like these the most important factor question at the end is ‘How much have other people scored’. Hence, the in-app leader board was constructed. It gives your global rank and tell you where you stand. It drives you to play again and beat others out there.

It took me around 45 days to release the app after bug fixes, testing and all the Hit-n-trials. All these days I was experimenting, testing and iterating. I formed theories, started working with assumptions and tried to put things in place.

The result of all the sleepless is the final Rocket Romeo, which is gaining traction at heavy pace. You can find the Application on Play store here.

The whole crux of the story and process taught me a simple lesson that Creativity is all about trying things out and if it doesn’t work try something else. Try to solve problems in different ways.

If you have reached so far, I am grateful to you. I hope my small story will inspire you to work hard and iterate.

If you like this article, please recommend it for the community. If you loved this story, you will love Rocket Romeo too. Download the app from Play Store and don’t forget to Rate & Review it. Here is the link.

Comments

  1. Great post! Awesome first game… looking forward to more!
  2. Amazing article! Congrats! Great designs, btw. Has anyone helped you with the app?
  3. Thank you. No, I have done the design myself :)
  4. I never thought that building simple yet catchy game needs this much effort… Favorited for future reference :) Btw any link for specific tutorial that you have followed?
  5. Mario Zechner’s book is the best place for android development.
  6. Really cool! Thank you for writing this article. It inspires!
  7. the post actually made me want to play the game — one that I woulnd’t if just saw in the store. Great article!
  8. well done. keep coding and developing. what is the isbn of the book?
  9. I’m looking for a engineer to built something for me… I need someone right now million dollar offer.
  10. Hey Afsar! Very nice article and rocket romio is awesome. I’m myself interested in game development but leaving a 9 — 5 high paying job and jumping into this bandwagon seems scary. Can you give me an idea regarding the conversions (in terms of %) from such game and whether i can build a profitable business in the long term? I have done android development for clients in the past but never released my own app in the store. Thanks.
  11. clash of clans cheat codes clash of clanes tips and tricks

    know the tips and tricks of clash of clans game

3,751

Ropes — Fast Strings

Most of us work with strings one way or another. There’s no way to avoid them — when writing code, you’re doomed to concatinate strings every day, split them into parts and access certain characters by index. We are used to the fact that strings are fixed-length arrays of characters, which leads to certain limitations when working with them. For instance, we cannot quickly concatenate two strings. To do this, we will at first need to allocate the required amount of memory, and then copy there the data from the concatenated strings.