Elevator CEO

A native iOS game written in Objective-C using the open source Cocos2D engine; translated to 8 languages.

12 minute read
GitHub Repository

Introduction

Elevator CEO was an iOS game first published to the App Store on October 1, 2012. The last release of the game was published on January 9, 2015. Although it was downloaded thousands of times, I decided to cancel my App Developer membership, thereby ending its tenure on the App Store on April 28, 2016.

This was the first game I designed and coded. The initial time investment did not pay off. However, the value of the lessons learned in design, development, and getting schooled in app store economics are incalculable. The journey from sketchbook drawings to final release are detailed below.

Game Summary

From the App Store description…

Take your career to the next level with the Elevator CEO. Transfer all the passengers from your blue elevator using the green elevators. You have limited synergy to move up and down. Be careful and choose the right combination of green elevators. The CEO arrives in a red elevator but can only bring one person up to the next level. Your career depends on it so make your move! Look for the treasure chests to get a mystery prize. Sometimes getting to the next level means taking risks.

Think you know everything about the Elevator CEO? Maybe you should try to decode his secret message on the home screen. Good luck!

Home screen and menu
Home screen and menu
Game area for left-handed players
Game area for left-handed players
Top 3 scores
Top 3 scores

Sketches

I started sketching game ideas in May 2010. Several weeks later I had over 60 pages of various drawings, notes, and flow charts. I only used a pen and grid paper. The ideas eventually converged around an elevator-based game.

Earliest sketches of play area
Earliest sketches of play area
Evolution of vertical controls
Evolution of vertical controls

All of the game graphics were created in Illustrator. Most of my inspiration came from Small World graphics by Daniel Cook. Although I never throw out sketches I'm exactly the opposite with Illustrator. I'll clone a layer, refine it, and delete the old layer if its replacement is better.

Evolution of game control graphics
Evolution of game control graphics
This video shows an early version running on the iOS 5 simulator.

A few tips from my experience:

Code

The MacBook Pro I used to develop Elevator CEO was only the second Apple product I had owned, after the iPod Touch. As a longtime Windows user pretty much everything contributed to the learning curve: OS X, Objective-C, Xcode. I had to also learn the gaming engine, Cocos2D for iPhone.

At v2.1 the game reached almost 8000 lines.

Language Files Blank Comment Code
Objective C 44 1754 1209 6908
C/C++ Header 51 622 1656 1081
Sum 95 2376 2865 7989

Icon

An icon doesn't define the app but it does declare it. That first impression matters, so I spent several days working on it. I took one of the game elevators and extruded on the selected axis to create a 3D version. There were no early versions. I just landed on this design and liked it.

The Elevator CEO icon
The Elevator CEO icon

Languages

My wife's native language is Dutch (Flemish) so I thought it would be interesting to translate the game. Eventually, I decided to support all three official languages of Belgium so I added French and German translations. We live in Florida so Spanish seemed like a natural fit.

Elevator CEO v1.0 included five languages: English, German, Spanish, French, and Dutch. I also localized date and numeric displays.

'Play', translated into the first set of languages
"Play" translated into the first set of languages

Elevator CEO v1.3 added language support for Simplified Chinese. Unlike western languages, the character set for Chinese is vast and has thousands of different glyphs. It wasn't until I started to internationalize the game that I began to appreciate the importance of a game's typeface. Extended character sets are critical and League Gothic seemed to excel in that area, though, not specifically for eastern languages.

Game tip displayed in simplified Chinese
Game tip displayed in simplified Chinese

Supporting eight languages became an unwelcome burden when it was time to publish an update. Especially when those updates impacted the graphics. Each country-specific App Store has translations for:

Thus, a single update meant capturing 48 new screen shots. My advice about internationalizing is to wait until the app finds its target audience and then determine if it's worth the effort.

Monetizing v1.0: $0.99

In 2012 consumer willingness to pay upfront for games was still palpable. Elevator CEO's first week sales at the Tier 1 price of $0.99 USD were encouraging! However, that excitement turned to disillusionment within a couple weeks.

The trend of monetizing casual games was towards freemium, play-to-win, and ad-supported. Elevator CEO wasn't designed to extract dollars, nor was its code ready to support ads.

None of the features in the four updates between v1.0 and v2.0 had a noticable effect on game sales. I was hopeful that game translations would have an impact but country-specific sales in those areas hardly changed. I threw some money at Google Ads to see if search traffic would translate into downloads or even conversions. Nothing seemed to move the needle.

Monetizing v2.0: Ads

Version 2.0 was my pivot to an ad-supported revenue at a new price tier (free). Downloads increased but the ad views and clicks weren't enough. The blight of advertising was something I truly wanted to avoid. This attempt to monetize included banner ads, interstitial ads, and an option to remove ads permanently.

Banner ads

Larger displays such as iPhone 5, iPhone 5s and 5th generation iPod touch had the lower area of the screen reserved for banners. If a banner can't be retrieved from iAd then the banner slides out of view. If the customer had an iPhone 4, 4s or 4th generation iPod Touch then they played ad-free.

Ad placement on large displays
Ad placement on large displays

Interstitial ads

Full-screen or interstitial ads were available for iPad running iOS 6, but this feature of iAd was introduced for all devices supporting iOS 7. These ads are only displayed between levels in the game and only at the second level and higher. If the interstitial can't be retrieved from iAd then nothing is displayed and the game continues.

Pay to remove ads

It's possible no one would pay to remove ads but not providing the option seemed cynical. Adding this non-feature meant learning StoreKit. To the user it was two buttons: "Remove Ads" and "Restore Purchase". My assumption was correct about users not spending $0.99 to remove ads, so the effort was only valuable as a learning experience.

Release Summary

The Elevator CEO feature list is modest. The goal wasn't to deliver incrementally with bespoke levels. It was to offer something original and fun that was basically complete. Behind every indie game that balances on the knife edge of revenue and creativity there's something special. I appreciate the effort it takes.

Version 2.1
  • - Added translations for Danish
  • - Added a reminder to review the game
  • - Updates for iOS 8
  • - Fewer interstitial advertisements
  • Version 2.0
  • - Added translations for Italian
  • - Updates and bug fixes for iOS 7
  • - Integrated ads for iPhone 5, none for smaller screens
  • - In-app purchase to remove ads
  • Version 1.4
  • - Added Game Center support
  • - Changed minimum OS to iOS 6
  • Version 1.3
  • - Added translations for Chinese (Simplified)
  • Version 1.2
  • - New startup graphic
  • - Expanded displays for iPhone 5
  • - Improved consistency of typography
  • Version 1.1
  • - Added graphics for iPhone 5
  • Version 1.0
  • - Initial release
  • - Translations for English, Spanish, Dutch, French, and German