Following I share with you our design and development process for "Where's my Chicken?". At the time of writing, it has been a month since launch. We have over 50,000 downloads with 70% of them being Active Installs. We are ranked 7th on Casual game installs and 70th for all games in Malaysia. We did not spend any money for marketing and the first day of launch begun with 3 installs (me, my brother & my wife).
Here we discuss the 5 steps we applied in our game development as well as until you publish and market it to the public.
I just hope some of you find this interesting, and a few others will find this motivating enough to venture forth and make games!
1. Graphic / Design
I am a design person. That's the basic truth. Its easy for me to sit down and just produce design after design. Coding was fun, I learned it and used it for some projects. But design has always been closer to me. So now I take care of game design, while my brother takes care of ALL the coding. Yes, he is the real brains behind all of our games. Just don't tell him that :)
For "Where's my Chicken?" after our brainstorming session, we fleshed out the basic premise and idea of the game. I set to work on the first unit you will use. I did not do the game ui, icon, or anything else. The first thing I did was this:
Behold! The Chicken!
The design of the Chicken was a real challenge. It is obvious that I was inspired by Angry Birds, but we still wanted the unit to look distinctly ours. That is why in the final version, we removed the tail you see above. My brother's comment was that tail is Angry Bird style. So yes, you are enjoying our games with tailless chickens!
This first design set the stage and theme for the rest of the game. We wanted the words "Round & Juicy" conveyed in our design. Another thing we did was to randomize the chicken position by flipping the images. This brought variation in visual design and the chickens didn't just look like mechanical clones of each other.
The game UI was designed to be simple, because we knew later levels
will have a lot of action on screen.
We maintained a variation of 3 shades on each layer. Meaning an original color, a highlight and another darker shade to indicate shadows. We did not do any texture or gradients. It is my opinion that designers overuse gradients when a little bit more work in positioning the shadows and highlights will make the design far more original.
Only after doing the second unit, which is the Rooster; did we design the game screen. We included the ability to scroll when we realized the problem of scaling the number of chickens horizontally. We had to add an increase in game challenge through the larger number of units on screen. So due to a technical difficulty, scrolling down and finding chickens to collect eggs became a game play element which we didn't start out with.
This is one thing we should remember when we design games. We shouldn't be so set in stone based on our initial idea. The idea should be like water, easy to change and adapts to the challenges the design and development team faces. Sacrifices have to be made and decisions have to be done fast. We do not have the luxury of arguing a single point for days when we could have used that same time getting more downloads!
So remember, for design always follow a theme. It would help if everyone in the team are aware of the design ideas. It helps them to focus on the game elements and atmosphere. This is why we have big game studios doing all those detailed 2d art which they never use in game. It is to help their team conceptualize the final product and to be always be within the scope of the game.
By putting coding as second, I am not in any way saying it is second to design. But the bulk of it actually seemed to get done after having the basic design down. Of course, developing the basic principles and game mechanics early on helps immensely in reaching the project dateline.
Another point to understand is this, design and coding goes hand in hand. One cannot be finished ahead of another. So both parts will continue to develop and evolve right until the end of the development cycle. You need to have some programming background using Object Oriented programming languages. Even better, if you had learned Java and are familiar with it, you can get started developing Android games quickly.
We used only the stock Android SDK and didn't use any paid game engine or sound engine. Everything was built from the ground up, this is why "Where's my Chicken?" was built to support multicore processors early on.
When developing for an open system like Android, compatibility has to always be number one. Sure, you can limit which devices can download your game but why would you reduce your income potential? Usually, the compatibility issues can be worked out with some additional work.
Why oh why did you pull down my ratings?
For example, we had a tough time with "Where's my Chicken?" when we started to receive dozens of Force Close and Freeze comments from Samsung Galaxy S2 users. We didn't have a Samsung Galaxy S2 in hand to test and reproduce the error. We did over 4 updates each a day apart before we stopped receiving negative comments from Galaxy S2 users. What was even more mind boggling was that over 20% of our active users were Samsung Galaxy S2 users. So the error was only evident in a small number of devices. But unfortunately this pushed our game from a 4.7 star game, down to 4.1 stars.
Understand that developing the code for a game is not a one time deal. It is a continuous development process where you need to adapt to your user comments and needs. It was never a choice for us to ignore players who were having problem with our App, we wanted to build trust with our users and the only way you can do that is by caring and responding to them. They trusted you by downloading your Game and even commenting on it, show respect to their feedback.
My oh my, have you ever wondered how important is sound design in a game? Let me tell you this, sound design is like the third pillar that supports the whole game experience.
But integrating sound into your game basically breaths new life into your game. The right sound sets the stage and atmosphere for your game. Even the element of fun is transferred to the player through music alone. A lively and cute music 4 seconds long is more then enough to make your players receptive to your game play.
To really understand how beautiful the right sound can make your game, watch the following.
The Sounds of Dead Space
I never played Dead Space, its an excellent game mind you. But I really, really, really don't like horror games. Attribute it to my overactive imagination, but my brother did and I watched him play. The sound in the game was amazing! Of course its scary and horrifying, but the sound was so good. Just listen to it and I bet you will understand what I mean.
Journey on PS3, perfect sound
See the sounds from the game Journey which is available on PS3. The sounds are so mystifying and evocative. The best match for such an abstract game.
Although we may wish to get such beautiful sound for our game, budget constraints and the lack of proper equipment to record good sound will hamper your efforts. The best way an indie developer working on a shoe string budget can obtain good sounds is to sift through the thousands of free sounds available online and find a good enough match. Just hope that you will be luck enough to find something that fits your game theme.
Never skip on sound design, every extra sound you find could mean the difference between excellent and mediocre. Sound design can also be used to convey feedback, and error messages to the user without opting to text & visual cues. Sometimes it is actually easier to just add a error sound rather then spend time adding an error message!
4. Gameplay Design
To be realistic, Gamepay design is actually a full article in itself. But I will highlight the top concepts that you should be aware in designing how your game will play out.
The first concept we do in designing games is discuss about layers. For example, the concept for "Where's my Chicken?" came from this!
I was just fascinated with all the blinking lights and chasing to click them. So the idea formed that the basic interaction of the user was to quickly find something and click on it. We did an initial concept where it was just colored dots and you clicked on them when they lit up.
But my brother insisted on having more character to the game. Something not abstract, something that users can easily relate to. It was my wife who said why not change the colored bulbs into eggs, and boom! The whole concept for "Where's my Chicken?" was designed in the next 10 minutes. We added the the Fox as the antagonist, thought of the other units, and created the theme of the game.
Ogres are like onions! So is gameplay design!
This is what we call layers. When you have a basic game interaction, you will need to add layers on top of the basic gameplay to keep your players interested. The more layers you put, the longer you game session is, the more complicated your game will be, and the harder it will be for some players to understand it.
Being number 4 in the list, you may wonder how can we have thought of the game play first before even designing the game? Well game play design is unique in that you have to have the basic down before you start. But the full game play and tweaking is only done after you have completed most of the game.
Here is a short list of points which you should be aware of during design:
- Mechanics : How does the user interact with the game world? What can he touch? Manipulate? What are the limits of his actions and the effects? All of these has to be known prior to a full game design.
- Duration : How long does it take for the user to pass a level? Being mobile games, we should look at game sessions from as short as 30 seconds to as long as 30 minutes. How long do you want a user to spend in a level? Expecting 10 minutes of focus from a user is not feasible for mobile games. If you design it as a 30 second game, then you cannot put much complexity in it.
- Rewards : You have to give rewards to your players. Without rewards, why would your players be interested in playing your game? Think of rewards like positive reinforcement for your players. When they do something that you want them to do, reward them. Rewards could be your game currency, new levels, new designs, new skins, etc. Be creative!
- Difficulty : Level difficulty is one of the hardest issue you will face. Each and every one of your player will have a different opinion of your level difficulty. It cannot be too hard that it borders impossible, and it cannot be too easy that it borders on boredom.
- Experience : Write down what is the experience that you want your player to feel. How would you translate this into game play elements. For example if you wrote down Action as an experience, what event in your game can convey this feeling to your player?
5. Marketing & Sustainability
Many first time developers live in this mythical world where they believe that the moment they launch their app, they will get 100,000 downloads in the first day. They might even aim for 1 million downloads in the first month .
I'm sorry to burst your bubble, but the best you can hope to get in the first day of download is a couple of hundred. Maybe a thousand, if your game is really good and you have already integrated social media sharing.
But a typical game will need to gain traction, meaning being reviewed by websites and blogs, being posted on player's Facebook page, being shared on Twitter messages, etc. What do you need to do? You have to keep on trying to get bloggers to review your app. Write a personal email to each friend, and ask them to "like" on Facebook. Write to all the thousands of helpful bloggers out there who would like to do a free review of your app. At the same time, keep on updating your app and listen to their comments and improve.
But most importantly remember this, you get better at something that you do again and again. The more games you release, the better you become at it. The more people you interact with as a game developer, the more opportunities that you will come across!