About The Game
"Causality - Classic Puzzle Game Reimagined" is a modern remake of the classic puzzle game, "Lights Out". For the uninformed, in the original game, given a board, usually a 5x5 grid, some grids are lighted up while others are unlit. Pressing a grid would toggle its light state on or off and at the same time toggle the adjacent grids' light state. The objective is to toggle all the grids into the "unlit" state. In Causality, the base gameplay of toggling "grids" (or "tiles" in Causality) is the same, while the objective has changed to "toggle all the tiles into the same color". The following states what differs Causality from Lights Out
About Unexpect3rd Developments
"Unexpect3rd" is a moniker that I, Edmund Ching goes by when identifying myself with the games I make. By "games I make", I do mean games that were designed and developed solely by me. Why I would highlight this is because I do have a day-job as a game developer for a game studio. I am most fortunate to have bosses who understand my circumstances and allowed me to work on and release my own games (outside of working hours, of course). As such I would also take care not to have any of my own games overlap or conflict against the games that are produce by my employing company. I have worked on multiple mobile titles for 3 different start up game studios in Singapore over the past 4 years. Each of these studios has at least one hit game on either the App Store or Facebook. As for my own games, I have previously released two other games onto the Apple App Store, Causality is the third game released to the public.
What Went Right
Aside from other attributes and variables, the most visible attribute that would define the difficulty of a stage in Causality is the "Minimal Required Move". Players are not forced to meet the minimum move in order to clear a stage, stages can be cleared as long as all the tiles can be toggled into the same color. Each chapter would always start off with a few stages of "Min. Move 1" to allow the players to get the hang of anything new being introduce in that chapter, before stages progress to require increasing number of moves as the minimal move count.
During alpha, I had 3 chapters (base mechanic plus 2 introduced mechanics) worth of stages designed before I showed it to people around me for play testing. At that point the highest difficulty each chapter would have would run up to "Min. Move 8". At this level of difficulty, even those with minimum move 6 or 7, playtesters found the game to have reached "frustrating hard". On the design side, these levels also posed problems as I had trouble trouble testing for alternative solutions that actually uses lesser than the intended minimal moves, due to the increased complexity of those stages.
I redesigned those 90 stages and decided to stick to a chapter's highest difficulty at "Min. Move 6". Even amongst the 30 stages of a chapter, only the last 2 stages are of "Min. Move 6". This freed up more slots for me to have stages of lower difficulty which consequently added a greater amount of positive experience for the players. Players have more stages at the beginning of each chapter to understand the new mechanics, and many would experience the "joy" of breezing through a good number of stages before encountering something relatively more challenging in the second half of the chapter. Around minimal moves of 4-5, the stages have been feedback as challenging rather than frustrating, thus somewhat proving the experience turned from negative to positve.
Visual Style Iteration
My disclaimer here is that I have no background nor training in graphics design. Designing the visuals for any of my games had always been a long and tedious challenge, many times more so than actually coding the game. My initial look-and-feel for Causality was based off saturated contrasting colors as you can see from the following image (which was my very first mock up for Causality) and video.
If anything, from the video you can tell I really needed a lesson on color theory. I also went through many iterations on the tile designs.
Without much design experience, my alternative source of idea will be referencing other games. I began downloading and referencing games that uses such styles.
Taking cue from the referenced games, wanting to be minimalistic, I cleaned out as many components from my in game screen as possible, cut out texts and went for the "flat" look with the tiles. Overall I achieved a rather flat and clean look which resounded positively from most players (or at least all of those who provided me with feedback either through the forums, social media or store reviews).
Personally, I have the urge to further tweak the visuals to make it look slightly more polished, because it feels like the "clean flat" look I got is treading very close to "lazy amatuer programmer art", which in a way, is still true.
This was as hard as I had imagined. I had always wanted this game to be played relaxingly. There was no countdown timers, no combo meters whatsoever, I wanted the players to enjoy the game at their own pace. To compliment that "feel" and to stay true to being "minimalistic", I decided to not have a looping background music and instead let the sound effects of a tapped tile reverberate into ambience. To my ears, acoustics sounded the least aggressive or peircing and weirdly therapatic when reverberating. The way I designed the sound was more of "What I like" than what it should be, but surprisingly (or not), I was not the only one who appreciates that and the sounds was well received most of the players.
What Went Wrong
Editor Not Fully Functioning
It is almost common sense that when developing a stage based puzzle game, one should always have a level editor. With hundreds of levels, an editor would greatly speed up the churning out of stages. Unfortunately, the stage editor I had was missing crucial functions that was supposed to speed things up. My stage editor allowed me to design stages as per expectation: placing tiles, setting colors, setting special tiles, playtesting, etc. It was however missing a data output function. Having designed the data I/O in the game without thoughts of a editor first landed me with much technical difficulty when implementing the editor. Then, rather than overcoming this difficulty, I chose to jump straight into designing stages with what I had. This shortsightedness resulted in the following work flow:
Without the data output function of the editor, steps 3 and 5 resulted in plenty of human errors in addition to a much slower overall design speed. It was a very painful procedure, and i deserved the pain for my laziness.
Naming Without Researching
If you had watched the video above, you would notice the game was originally titled "Singularity". That title was loosely based on the effect that the objective of each stage was to turn all tiles into the same color, a single color. At the eleventh hour, I decided to change the title to "Causality - Classic Puzzle Game Reimagined" instead. Firstly, I thought "Causality" fits the theme better, as each cause (tapping a tile) would result in an effect that would affect others. Cause and effects! Secondly, I thought having a few more generic descriptive gaming terms in the title would help with SEO. Oh boy how wrong I was. I did no research beyond my understanding of the word and submitted the game with it's current title.
Only when the game was officially available on the Apple App Store, I realized searching for the one word "Causality" returned me a different game, with my game buried below. Even searching for "Causality iOS" on google returned a giant list of the other game. And that thing about including more words in the title? I had to search exactly for "Causality - Classic Puzzle Game Reimagined" in order for my game to show up, I am pretty sure that is not good SEO at all. I believe the other "Causality" was a one word title and was much more popular and that was why my "Causality" got buried.
Failing to research and ended up getting buried, cause and effect!
For one of my previous released game, Rotapix, a photo-rotation puzzle game, I localized it into Chinese and made it a seperate game from the English version. It received pretty good download counts from the Chinese speaking countries particularly China, even much of the "tail" before the game flatlined came from China. Even much of the Ad revenue earned via Admob came from China.
With that precursor, I told myself I would always try to localize my games, at least into the Chinese language. Causality was designed with minimal texts, the only text you would see are: the title, the chapter names, the "next stage" label and the most texts being in the "Extra" section where the IAPs are. This set up was almost heaven-made (actually I made it) for localization, especially when I could perform the Chinese translation without cost, but my eagerness to release the game drove me to push the game out without any other languages included.
This resulted in missed opportunity in earning more downloads. As of today, Causality received the most downloads from two countries that does not have English as their main language: Germany and China. And the spike in download counts came after the following articles and videos was published and got circulated:
Marketing, Marketing, Marketing
Marketing has always been a nightmare for indies, especially when the indie is still a nobody and extra especially so for solo developers with practically zero fame and budget, and that, is who I am. For Rotapix, the only form of "marketing", if you can even call that, was sending out game review requests to a little above a dozen websites that covers mobile/iOS games. Even with that little effort, I managed to catch eyes at one website, which helped boost download for a brief moment. Compared to that previous attempt, this time I would consider myself having gone in with gun blazing.
I was inspired by a local fellow indie developer, WhiteSponge. When he released his first game, he took many marketing actions which I never had before (obviously, all I did was sending review requests). I took the time to research how to write up a passable press release and who and where to send it out to. I prepared my website with Causality related contents and for the first time, I dabbled a video editor to create a video trailer for Causality.
Numbers and Charts
This is the part where I bare all the numbers which perhaps some of you read a postmortem for. These are not numbers that I should be proud of, but I am not showing off here, I just want to let those who are interested to know more. Note that my native country is Singapore.
The above shows the total downloads to date and the top ten countries with the most downloads. Note the two spikes are results of the earlier mentioned articles and videos being circulated.
The above here shows the total revenue made from IAP. I provided two IAPs, one for hint packs (99 cents) and another instant unlock of the later chapters + ad removal ($1.99). According to AppAnnie, 95% of these purchases came from the level unlocks+ ad removal. I had also provided alternative means of getting free hints (at a smaller amount) as well as unlocking small chunks of the later chapters' stages by watching advertisement videos, but these alternative options seem surprisingly unpopular. From Adcolony, to date I have earned $1.00, and from Chartboost, there was this one weird day that brought in $11, otherwise it's median would have been $0. And from Admob's ad banners:
Roll or Fold
Now that the numbers has been revealed. These are the report cards of my 6 months of work. It is with such outcome that I border on whether to carry on refreshing and pushing this game or to call it quits with Causality and move onto a new project.
Some may think 6 months is not a lot of time, or that 6 months is too long for such a game, but do understand that I am working 9 to 5, and was clocking an extra 4-6 hours daily just to work on this, forgoing pretty much everything else in life. I was not expecting a jackpot runaway hit game, but I had definitely expected better results than this.
I can make this better, or I can learn from this and make my next one better. Either way I am far from giving up on making games.
Developer: Unexpect3rd Developments
Released Date: 17 June 2014
Length of Development: 6 Months (4-6 hours daily off office hours)
Platform: iOS (Universal)
Engine Used: Cocos2d-x 2.1.4
If there is anything in the article that I should censor do contact me, edmund.ching ( at ) unexpect3rd ( dot ) com