Hi, I’m Cleverson, from Brazil. I’m a software developer and I have been making games as a hobby for over 10 years. I have a day job that pay the bills and I love making games in my spare time. I would like to tell you about my experience and what I’ve learned in my journey into making a game.
My first experience with games, besides university projects, was back in good old times when mobile phones were not smart yet and still had black and white displays. I ported some mobile games in 2004 for Sony Ericsson phones. J2ME was still alive at that time and although the games were very simple, it was a great experience to work in the ports. Fast forwarding to 2012, I was still on mobile, but now working as an Android dev and had the opportunity to be part of a team that developed a full game from scratch. The game was Toad Escape and it was published both in the App Store and Google Play. It took 6 months to be developed and it was not what I can call a commercial success. Nevertheless, I had so much fun and learned a lot in the process that I decided I would go solo and work on my own title in my spare time. This was the beginning of Tower Crush.
I had some ideas that could somehow be combined and end up with something nice. I was playing Tiny Tower and I really liked the game mechanics. Building something and evolving. At the same time I was also playing Kingdom Rush (the flash version) when it was not yet a huge hit in the mobile space. I thought I could mix both games and have some kind of tower built by the player and equipped with weapons. The mechanics should be really simple and easy to grasp. A player building and controlling just one tower and equipping each floor with a weapon. I started prototyping to test if I could do something fun out of this mix. Below you can see how the idea evolved. And just to make it clear, the leftmost image is the one I drew :)
After some initial experimentation I was sold to the idea. I would take it seriously and invest my time and money. It was time to make a plan.
From the beginning I knew I was partially up to the task, at least programming-wise. But what else would be needed? A lot, a lot. The more I thought about it, the more I knew I would need help. As I was really meaning to make the game, I started to look for people who could do what I couldn’t. Art, music, sound effects, voiceover, trailer and the list goes on. I made a lot of search on sites like freelancer and elance, asked for references, looked at portfolios and started to assemble my team. It took some time to find the right people and I was really fortunate in my choices. The team had people from all around the world. Game designer from Ukraine, music from Argentina, voiceover from England, sound effects and trailer from Uruguay and myself programming and managing everything from Brazil. In the upcoming months the game was slowly taking shape. From initial email descriptions and sketches to beautiful images, sounds and, ultimately, feelings. It’s awesome to witness the process.
How much time would it take to develop the game? That’s an easy one. After years working in the software industry and making (wrong) estimations, I thought 6 or 7 months would be enough to complete the game, working part time. Trying to be conservative, I added 50% more to this estimation and concluded 9 months would suffice (it’s a baby!). Well, you know how this indie thing works. Goals are made to be (un)reached. The reality. Adding to my initial estimation: unforeseen circumstances, some cool stuff that we NEED to have in the game, never-ending procrastination, getting a life, burnout, a wife and a daughter and 2.5 years later the game is finally and proudly finished.
How to make money out this without ruining the game? Obviously I want to make money so that I can turn this expensive hobby into something sustainable. At the same time I didn’t want to clutter the experience or be perceived as a money grabber. After considering all my options (paid, banners, interstitials, video and IAP) and reading a lot about this I decided not to put all my eggs in one basket. I needed to combine more than one revenue stream. Upfront payments were quickly discarded. When it comes to mobile games, putting a price tag in your game moves players away. If you don’t have a solid brand behind you, that’s not viable. Then, it needed to be free. Ads are annoying and can easily turn the game experience into something bad. I discarded banners as I really hate them as a player. They take a lot of valuable screen space, distract the player and clutter the game design. Banners were out. Interstitials were my next option. My first feeling is that full screen ads are invasive. You move the player from something he is (hopefully) enjoying to something ugly. But that’s what TV is all about. The advantage is that interstitials are self contained in their own ugly context. I wouldn’t need to design my game to make room for them. If properly placed, in some natural game pauses, they could be an acceptable option. Interstitials were in. The next option was video ads. Also annoying (all ads are). On the one hand I hate games that make me watch videos. But, on the other hand, I think it’s perfectly fine to watch them when I get something in return. Sometimes I found myself eager to watch video ads just for the reward. So, I thought I could use the same strategy here. I wouldn’t throw a video in the player’s face. I would offer him the chance to get virtual coins in exchange. Video ads in. The last monetization option was In App Purchases. The game was designed with a virtual coins system in mind. The player gets coins along the way in the battles. Coins are used to upgrade the player’s tower and buy stronger weapons. Pretty standard. Some players are eager to evolve quickly and are willing to spend money on that. It’s a trade, they trade time for money and this is perfectly acceptable. With that in mind, I implemented a store where the player can buy virtual coins.
The conclusion is as follows. I know the vast majority of the players will not spend money in the game, but some will. I need to monetize both free and paid players. Free players will see interstitial ads during natural game pauses. Paid players will be spared from interstitials. And both will have the chance to see video ads only if they want. Let’s see how this will work out.
It took 2 and a half years from inception to publishing. But progress has not followed a straight ascending line. There were months that I barelly touch the project. Actually there was a whole year that I didn't make any progress at all. There is no a good explanation for this. Sometimes my day job was draining my brain, sometimes it was just pure procrastination and laziness. It's hard to fight against Netflix and Youtube. But, in the end, I hit that Publish button! And 3 times! Triple launch on Google Play, App Store and Amazon App Store.
Some Tech Stuff
* Made with the Corona SDK
* 56 modules (lua files)
* 20080 lines of code
* 224 png files (many of them are actually Sprites, so there are more than 750 images in the project)
* More than 90% of the source code is really cross-platform. The other 10% are for handling things like In App Purchase, Game Center, Google Play Game Services, Game Circle and so on.
* Sublime as code editor
* Android Studio as debugger (mainly to check logs)
* TexturePacker to assemble sprites
* PhysicsEditor as, well, physics editor
As I told, I was very fortunate to have such great people working with me. They are in the game credits and I took the freedom to list them here.
* Game Artist: Dima from Ukraine (web4myself.com)
* Soundtrack: José Antonini from Argentina (www.taking-off.com.ar/en)
* SFX: Bruno Boselli from Urugay (www.brunoboselli.com)
* Game Trailer: Alejandro Val from Uruguay
* Voice Over: Forte Sounds from England
What if it fails? Well, you know the cycle. Denial, anger, depression, bargaining and, finally, acceptance. After that, a new game to think about and repeat the cycle. My (next)* game will certainly be a hit!
Special thanks to my wife who has always been very supportive (and also did my share of the dishes). My 5 years old daughter who was always prompt to test the game. The first layer of quality assurance was to survive to her multiple interactions. And also to the awesome people who made this game look and sound beautiful. Ready to restart the cycle...