I decided to create this post to talk about my 30-day challenge to figure out how to make a mobile game and release it on the iPhone. A few weeks ago, I found the project file for this game and having a look inside the project made me wince as it was so so so bad. I am also going from memory here about what happened during the 4 weeks, so I hope my memory is still in reasonable shape in my old age. The finished game is by no means good but as you will see, I managed to complete the 30-day challenge.
So like I just said, In late November 2009 I set myself a challenge to find if it was possible to make a mobile game and release it on the apple game store in 30 days. I have broken down the tasks by week. I remember working 12-16 hour days to get his done and I am sure, if I had known the chosen game engine would have made a far better job in less than 2 weeks.
Week 1: Search for a game engine.
The first week I spent trying different game engines and looking at example projects.
I would ask myself (1) Can I pick this up quickly? (2) Are there any GUI tools to help build levels (3) How much to license use of the engine?
I looked at Object-C using Xcode, Unity, Corona SDK and GameSalad. One of the guys I worked with had been working of an audio fx app in Object-C and he found it a struggle.
Object-C looked like a difficult learning curve, Unity from memory had an option to code in Java which is a language I know, Corona used LUA which is like Java but the engine had no GUI level designer. GameSalad looked simple with an easy drag and drop interface and each actor (object) placed in a scene could have rules within the actor to define its movement, collision etc. From reading up, I discovered it also used LUA under the covers but seemed it was used in an interpreted way like basic and the game does not compile to a native binary. These types of games can suffer performance issues and in a future game, would come back to bite me very hard.
At the end of week 1, I had chosen GameSalad. It also had a simple example game I could extend to make my own game. You shoot a ball from a cannon and knock down blocks.
Week 2: Progressing the game
Now I had something that could be extended quickly, I spent a couple of days playing around with the sample project and trying to figure out how it all worked. For me, learning anything new overwhelms and takes a little time for things to sink in.
Sprites in GameSalad are called actors and their collision shape can be rectangle or round. There was no option for custom collision shapes. Each level is called a scene and variables are known as attributes. Attributes could be set at game (global), scene or actor level.
So as a rule, an actor in the scene could access its own and global attributes but they could not access any attributes within the scene or other actors in the scene unless the actor in the scene becomes unlocked. When an actor in the scene becomes unlocked, GameSalad makes a copy of the true actor and allows you to extend this new copy with its own properties and have unique values. This actors’ information is stored in the scene configuration and if you delete the unlocked actor from the scene, all of its changes are lost. There are other foibles I will skip discussing at this point as at the time. It was a bit confusing to use but I had a goal and had to get going. I also remember experiencing some instability with the engine crashing and I was not sure it was caused by me or software bugs.
I built out a basic level and worked on how to make the camera, at the start of the level move from right to the far left. This would show the player the scale of the level.
The game idea?
When I was a child, one of the games we used to play was called Plastic Soldiers or Army Men. The idea is to knock down the enemy soldiers which have been hidden amongst toy buildings and vegetation. Each person would place their army in a line with a meter or more between you and a friend’s line. Each person would pick a side and a coin would be tossed to decide who throws the first marble or stone at the enemy line. The first person to have all their soldiers knocked over would be the loser.
So, the game “Plastic Soldiers” was based on this childhood game but instead of throwing stones or marbles, you are given a tank which can fire powerful explosive shells.Features:
- Shoot ball at solder characters like the plastic soldiers you can buy at a local toy shop.
- Have blocks in the level and other objects which can be hit by the ball.
- When the ball explodes, any soldiers nearby get killed by the blast.
- Each level should have a different theme if possible like summer, winter and maybe a beach scene.
- Add things that can be shot down like planes and maybe something crazy like a farting flying penguin.
- Have a timer so the player has to get a number of targets before the time runs out.
Week 3: Making the game
At the end of week 2 and all of week 3, I spent the first half of the day getting graphics for one or more levels. As I am no artist, I used Google images to find artwork and Microsoft Paint to modify where needed.
Each afternoon, I would create one or more levels and test. I ended up creating a total of 8 levels and hooked them up to simple title, retry and game over screens.
Week 4: Publishing
At the start of week 4, I had to figure out how to use the Apple APP store. With all the global and local certificates and other bits needed to configure a game, it was a bit of a mental mind melt. I had to get the game submitted for review and in the store by the end of the year. Apple reviewers also have a break during Christmas and no games are reviewed. Pressure was really on now. Just before the break, I had the game submitted and before the end of the month, it was there, listed on the app store!
I met up with old collage friends for dinner and proudly showed them my game. One of them asked if I copied Angry Birds? I was like, what’s Angry Birds? When I got home, I downloaded Angry Birds to see what the fuss was about. It’s a great game and I later discovered the Angry Birds idea came from a game called Crush the Castle. I then thought, here come the clones.
I like both games and play the mobile version of Crush the castle today. Angry Birds went a bit wild with it’s franchise and I was unable to find the original on the app store in 2021.
Any takeaway from this exercise?
I would say making a game can be as hard or easy as you make it. It boils down to finding the right tools for the job. Even though Plastic Soldiers is not good, I was more than happy to have completed my goal. The guy I worked with who created the sound fx app, gave up and it never made it to the app store. When he saw my game, he was blown away and assumed I had made it in Object-C with XCode and thought I was a genius. I never had the heart to tell him, it was done in GameSalad and to this day he thinks I am this amazing game developer lol.