Author: Matt

  • Open Sourcing old Projects

    While trying to clean up my computer a little I noticed that I have a lot of old projects that are really doing nobody any good by just sitting on my computer.  So in an attempt to both back them up and share them with the world I’m going to be reviewing some of these old projects and sharing them on GitHub.

    The first project I’m open-sourcing today is an old simple web app I did way back in 2007 called TwitSig.us.  It’s a PHP application that retrieves your most recent tweet and renders it into an image.  It was designed to be used as an email signature that would continue to be up to date.

    You can now find the code for this project on the github repository.

  • Creating More Apps

    One of the goals of Halotis is to create and launch a number of robust webservices for Mobile Apps.  However, before we are ready to launch those to the public for use we want to make sure they work at scale and prove that the ideas are useful.

    To that end we have set an ambitious goal of launching a large number of apps and games over the next few months in order to gain the scale we need to dog food our own services.

    A game we have been working on which will be coming out soon is a match-3 type game called Invader Crush:

     

    Another game which will be released shortly is our hilarious take on the Flappy Bird phenomenon.

     

    With the help of tools like SpriteBuilder we are producing a stream of new games as quickly as possible all of which will be used as a test platform for refining our backend services before they’re ready for public use.

  • Launching Stuff

    A friend an I are on an ambitious schedule to release a lot of new games into the App Store this year.

    Last night I submitted my first game of the year for review to Apple.  It’s the first game I’ve released under the Halotis brand in 7 months.  Invader Crush should be on the App Store in a week or two

    IMG_0548

    The strategy is to follow this launch up quickly with a few more simple games.  The next game is going to be a classic Flappy Bird game with doodle style graphics.  I’m hoping to have it finished and submitted this weekend.

    IMG_0547

     

     

  • Yeoman for Modern Web Design

    While I’ve been delving into Django and Ruby on Rails for the last few years the world of Node.js has been maturing.

    The set of command line tools that have developed around the Node.js platform has evolved tremendously.  They have escaped beyond the confines of Node.js Apps.

    Yeoman brings together an app starting templating engine (yo), Grunt – a framework for command line tools, and Bower for dependancy management.

    The biggest thing I have gotten from working with Yeoman is the exposure to new tools and new ways of thinking about web development.  SASS + Compass, with HTML processing.  you can tie together Jekyll for static page templating, and use bower to pull down javascript libraries without having to scour the internet for the latest versions.

    Yeoman brings together all the nice things we are used to in the python and ruby world.  It’s kind of interesting to work with management dependancy for javascript libraries.

  • Lessons From Flappy Bird’s Success

    Much has been said in recent weeks about the conundrum that is Flappy Bird and how it could have possibly become the #1 Free app on the App Store.

    First off I think it’s great to see a small independent developer is still able to have some success on the App Store.  It has become increasingly difficult to compete with the big game companies that are pumping a lot of money and development time into creating games.  For a while it seemed to be unlikely that independent game designers had a chance to be found at all; that the top charts were being gamed or bought.

    One interesting comparison I haven’t seen any one talk about yet is the difference between a poorly monetized #1 Free App (Flappy bird) and a Top Grossing app. Flappy Bird was reportedly earning $50,000/day in advertising revenue.  Clash of Clans is reportedly generating $5,000,000/day. Interesting that even with the massive surprise success of Flappy Bird it’s still generating merely 1% of the revenue of Clash of Clans. What insight could be gleaned from that? possibly the poor performance of banner ads vs. IAPs, the value of engagement, or importance of session length?

    To me, the reason for Flappy Birds success hinges on two factors:

    1. Comically entertaining and difficult – In my first attempt I was dead in literally 0.1 seconds.  I believe the initial response to this for most people is “WTF!? I have to show my friends this so we can laugh at it”. It’s the same urge people have to share funny things they find.. how could you NOT post this to Facebook if you found it at Walmart:
    2. Rating and Reviews – The game has very few things you can do. Play, share and rate are the only buttons you can press.  I believe that once the word of mouth virility spread (due to point #1) the game’s design lead to unusually high number of similar WTF app reviews.  Due to Apple’s weighing of reviews and ratings into the search, Flappy Bird started to snowball up the charts. Eventually part of the game was to write a funnier review and for a while it was seeing 100’s of reviews posted per hour.

    If there are lessons to learn from Flappy Bird they would be the importance of having something worthy of sharing, and a call to action asking for users to rate your app. Flappy Bird proves that with a bit of luck, these two factors can create a tipping point which is enough to reach #1 in the App Store.

  • Game Designing

    My current side project is a match 3 game like Candy Crush Saga.  They are super addictive games that work great on mobile because they are so nice and casual to play.

    Problem is the competition on these types of games is stiff. Differentiating my game from the crowd is difficult. Originality adds a level of risk, but a complete clone needs to be more refined, and better advertised to stand up against the competition.

    When you start creating games you think about them differently. Originally my game was supposed to be endless – you could match 3 until you ran out of moves to make. What I found was that it dragged the game on and got boring. If you ended your game and had to start over it felt like you didn’t accomplish anything.

    So at the moment I’m working on adding components to the game that up the fun factor. Things that make the game more sessionable with a shorter game loop and better progression feedback.  There are so many psychological triggers in creating a good game.  I think that’s what is the most enjoyable part to work on.

  • Meditation

    Many years ago when I was younger I had a clarity of thought and an ability to focus for a very long time without distraction.  These days it is very difficult to avoid getting distracted. The ability to focus on a singular thing for long enough to really dig into it is a real skill of the mind that I’d like to work on getting back.

    Meditation is the practice that enables you to train your mind. For the past couple of weeks I have been finding time in the day to do some meditation.  Generally I work myself through a self-hypnosis routine of focusing on relaxing every muscle in the body individually. Everyone’s experience with this is probably very different but the interesting thing for me is just how difficult it is to focus for even 1 minute without my mind going off on a tangent thought.

    With practice it is possible to maintain focus for an hour or more.

    One of the interesting things discussed by productivity analysis of software developers is just how disruptive a momentary interruption can be. Stopping coding to check email for 10 seconds will cause 15 minutes of lost time in the day. When you lose the ability to concentrate it is your mind that is interrupting itself.  It becomes extremely difficult to be productive.

     

  • Meditation For Programmers

    Programmers have one of the most intensive intellectual jobs.  It requires great focus and concentration to write software productively.

    If you measure the productivity of a programmer you might be surprised at the range. At the bottom there are software developers that actually create negative productivity; every line of code they write is one that someone else will have to re-write. At the top end is the so called ’10x’ programmers who can single handedly churn out multiple hundreds of lines of code per day.

    Average programmers experience ’10x’ performance occasionally as being in ‘the zone’.  When in the zone, time zips by, you find yourself knowing all the code you need to write and are limited only by your typing speed.

    Getting to this 10x level of performance consistently requires a lot of prerequisites to be met. You need to be proficient with your programming language syntax, you need to know the libraries you’re using and you need a base of understanding of computers and your problem set so as to avoid the need to refer to Google to answer “how to” questions.

    If you find yourself asking things like “How do I write a foreach loop in this language?”  or “What’s the API for doing an HTTP request?” or “How do I add authentication to this?” then you need to step back and do some more learning.

    Getting past this first bar to productivity is pretty clear: buy a book, read it.

    There is a second bar to productivity that is not so obvious how to improve on. Truly difficult problems require intense focus for long periods. External distractions can be mitigated with ease. Turn off your email client, silence your phone, put on headphones.

    Internal distraction something that I haven’t heard many discuss. Mental focus is a skill of the mind.  Meditation is a practice for training the mind. By practicing meditation you can  extend your ability to focus without interruption and gain a deeper perspective on the problems at hand.

    When you are able to think about  a problem for only 5 minutes at a time before your mind wanders or you get distracted then you can only gain a shallow understanding of the problem. With an hour of single minded focus you can get very deep into the rabbit hole.

    Training your mind for this level of focus can take a long time.

    Start your meditation by eliminating external distractions. Find at least 15 minutes in the day to focus inward. Start by thinking about your toes individually making sure each of them is completely relaxed before focusing on the arch of your foot, then the ankle and so on until you get to thinking about all the muscles in your face and head. Do not move during this exercise – even to scratch an itch.

    By giving yourself a routine like this to practice it’s easier to identify when and how often your mind wanders to other thoughts. When you do find yourself de-railed just bring your self back and continue relaxing where you left off.

    When you can maintain 100% focus on relaxing yourself through toes to head then you are ready to start pondering the problems at hand.

    Over time work yourself up to an hour of focused thought.

    Not only is the time you spend in deep thought productive at forming ideas and solving difficult problems, but you’ll find that your ability to focus when working  also greatly improves as well. You’ll find yourself in “the zone” more often and for longer.

    To those who have never tried to meditate I challenge you to try this relaxation thought exercise just to see how difficult it is to keep your mind from wandering or finding yourself focused on an itch you can’t scratch.  It’s not easy.

  • Candy Crush Game Analysis

    Candy Crush Saga from King has been dominating the top grossing charts for a very long time now.  The game mechanic itself is not new or particularly innovative and is of similar type as Bejewelled that was originally released in 2001 – long before the iPhone was invented.  What is it that differentiates CCS from the pack and keeps it at the top of the charts?

    CCS was originally released as a Facebook game, and was later re-written for mobile.  Much of the virility aspects is a result of this heritage.  It is and was a key aspect of the games distribution and marketing.  I’ll come back to the social integration later in this post.

    Art and Design

    The first thing you might notice is that the game has a very unique and recognizable art style. This branding helps it stand out in the clutter of a Facebook news feed.  The game’s UI is consistent, with smooth simple animations.  The theme of the game is attractive to a wide audience of casual players.

    The UX for the menus and dialogs are designed to reduce confusion. In most cases there are very few decisions to be made.  For instance the start view contains 2 obvious buttons: “Play”, and “Connect with Facebook”.  Settings and extras are hidden to reduce clutter and focus the player on the actions King would most like you to take. (The Facebook button disappears once signed in)

    The design of the levels map clearly shows progress in a way that is more difficult to visualize in a flattened list of levels. The integration of Facebook friends into the map is particularly interesting (I’ll discuss this more later).

    For the match 3 game itself there are no obvious issues.  One thing I might change is to encourage the use of power-ups to help players learn to use them.  The colors provide good contrast needed for this type of visual search game. The various goals, power-ups, special blocks, and levels keep the game challenging, and interesting through the 400+ levels.

     

    One nice touch is the consistent use of a squeeze animation on all buttons. This helps keep the UI feeling alive and helps indicate things you can touch. It’s simple, consistent and goes a long way to improve the look and usability of the game.

    Gameplay

    The game has fairly short segmented levels.  Players can play for 5 minutes at a time conveniently.  However, a level on it’s own is not the core game loop…

    The core of the game is based around hearts.  You lose a heart when you fail to pass a level, once you run out of hearts you are presented with with options to get more.  This is one of the places where King has pay walled the game.  You have the choice of waiting for free hearts, collaborating with friends for hearts, or purchasing some.

    I’m sure there are some key metrics that King is collecting to help optimize the levels. For each level they have a couple of levers to pull that can change the difficulty.  After a level has been designed it can get a number of moves and thresholds for points needed to get the stars.  On the backend these numbers can be tweaked to meet certain goals. The vast majority of levels would be tuned to say an average number of attempts before winning. Some levels on the other hand could be tuned to higher difficulty in order to encourage IAPs or to drive online discussions about tips and techniques to win. Still other levels may be artificially easy, for some positive feedback.

    Being able to tune the difficulty easily gives King a way to provide just the right amount of challenge to players, which in turn keeps the game enjoyable.

    With 400+ levels CCS needs a lot of variety to keep players interested. With most game updates they’ve managed to include some new pieces, power-ups, behaviours and goals to keep you learning and challenge you to think of new techniques to deal with the new levels.  Constant investment in the game has helped extend it’s life and keep it popular.

    Monetization

    You don’t get to the top of the top grossing list without nailing the monetization.  One of the things you might have noticed is lack of an in game currency.  Unlike what is popular in many other games on the App Store right now. CCS does not have IAPs for currency with large price points.  Instead they present many opportunities in the game to make smaller $0.99 impulse purchases. This integration is rather ingenious in that there is no “store” in the game you have to go to to make a purchase.  The IAPs are seamlessly integrated into the flow of the game and priced where they can be quick impulse purchases.  On the other hand having a store and currency would add friction to the buying process – go to the store, decide on an amount of currency to buy, then find the place to buy hearts and make another purchase there.

    CCS used to have ads in the game for additional revenue but removed them. This move places more focus on staying in the game (and running out of hearts) rather than getting distracted to go download something else.

    There was also a small “Yeti Store” in the game for a while that sold some high priced non-consumable power-ups.  This seems to have been removed.  It’s likely that these permanent power-ups either made the game too easy or the revenue from these paying players would be higher with just the consumable power-ups being the only option.

    There are many opportunities to buy things in the game. Before starting a level you get a chance to purchase power-ups, if you fail the level you get a chance to buy a few more turns to keep going, if you run out of hearts you get a chance to buy more hearts. When you finish a block of levels there is a paywall to wait or pay to unlock the next block of levels.  All of these purchases are inexpensive impulse buys.  This model of integrating the IAPs at the point where they are needed in the game, and otherwise hiding them is obviously working very well.

    As you can tell King is not afraid of making significant changes to the monetization as they measure and experiment.

    Social Integration

    Being initially a game on the Facebook platform pushed King to deeply integrate the social aspects of the game. They have managed to execute well on both cooperative and competitive levels, as well as providing deep social proof and tools for virility.

    The game changes dramatically once you connect your Facebook account. Suddenly all the friends in your social graph appear on the level map. At a glance you can see how many of your friends have played the game, and how far into the game they’ve gotten. It’s some powerful social proof of just how many other people you know play the game, and implies some competition for you to catch up to your friends.

    For competitive incentive the top scores amongst your friends are presented before playing every level.  The implied competition hopefully gets you play longer to beat their scores (and loose some hearts in the effort). Seeing photos of your friends baked into the game is kind a cool way to personalize the experience.

    They have a system for gifting and requesting hearts. This appeals to the players looking for a more casual, cooperative approach.  It’s also ties into their somewhat subversive way of blasting facebook with messages.  Each message that goes out is yet another opportunity to get players back into the game.

    Marketing

    Most games at the top of the top grossing list have taken to a strategy of fortifying their position through massive and aggressive advertising. With a massively profitable game like Candy Crush they have a huge budget to purchase traffic on ad networks. Persistent ads attract new players and remind existing players that the game is still installed. By spending a significant portion of game revenue on advertising they continue to buy their position at the top of the charts.

    Refinement

    Keeping a game at the top requires constant attention. King has been consistently adding new levels to the game with new power-ups, goals, and obstacles.  They now have over 400 levels.

    The UIs seem to have been getting simpler over time.  Monetization has been simplified to focus solely on IAP consumable items, ads have been removed, non-consumables have been removed. Small consumable IAPs seem to be working extremely well.

    Re-Skinning

    King is not sitting idle on just one game.  They’ve discovered a formula that works and are busy replicating it. Pet Rescue Saga is essentially the same game with different graphics. This is an easy way to re-use the code, attract a different audience of players and build a network of similar games that you can cross promote while keeping things in the family.

    Key Lessons

    If there are key lessons to be learned from an analysis of Candy Crush they are:

    • unique and original gameplay is not required for success
    • very simple UIs help make the game accessible to a wide audience
    • tightly integrated consumable IAPs can generate more revenue than ads or non-consumables
    • continuing iteration on the same game is critical to keeping it relevant
    • making social part of the game add genuine cooperation and competition
    • being able to easily fine tune the difficulty makes easy to get the balance just right
  • Creating Feedback Loops

    A feedback loop for success is anything that looks at your past or current state and if you have fallen off the tracks does something to get you back on them.

    That’s kind of vague. So here are some examples of feedback loops:

    • For a weight lifter – keeping a log of past lifts encourages them to lift more, and work harder if they see loss of strength over time.
    • For this blog a nag email goes out after a week of not writing, that email encourages me to write, which stops the emails
    • The Jerry Seinfield calendar which encourages you to do something every day.
    • A regular financial audit – helps to identify areas that need focus hopefully before they become a problem.
    • An annual performance review helps employees develop strategies to improve.

    If you have a goal then having an effective feedback loop can help you reach it.

    The start of the year is a good time to do a review of your feedback loops (a feedback loop for feedback loops) to decide if any of them are ineffective and can be dropped, or if new ones are needed to match your goals. For a business it helps to be systematic.

    If the goal is to 10x your business in 2014 then to start with you would create a strategy that would achieve it (concrete things to do). For each of those concrete steps in the strategy you would evaluate each major pillar of your business to see if any feedback loops would be appropriate – Financial, HR, Sales, Marketing, Product development.  Is there anything you could measure? A good feedback loop will help identify when you need to make adjustments to strategy earlier.

    The worst feedback loop for a goal is to just put it in your calendar – “Dec 31 2014: review business to see if it’s 10x”.  A day or week after setting that goal, you’ll forget about it, get derailed, and be surprised at the end of the year when you get the calendar alert. You can do better.

    If part of your strategy to 10x your business is to re-design your website, then an effective feedback loop is one that actually forces you to do the work. Perhaps an alert on the website’s github repository to ensure there is active development on it every day. or a kanban board to organize the work and visualize progress. If you want an effective website and not just a different one, adding A/B testing and doing a weekly review of conversion rates is a great way to keep focused on continual improvement.

    The most effective feedback loops will DEMAND that you do the work to execute your strategy, and will MEASURE the effectiveness of the strategy to achieve your goals.