Why We are Killing Our Game and Moving from Unity to Moai
We're killing our current game after six months of development time. We're also starting a new game. In the transition we're changing most of the processes that we've put in place including moving from Unity3D to Moai.
One of the hardest decisions you face as an entrepreneur is knowing when to kill a project (or to dump a bad client or to kill a business entirely). To do difficult things it's critical to have a "never die" attitude. But it's also critical to know when to cut losses and move on. If you're a student of entrepreneurialism, you've probably heard people talk about the fallacy of recovering "sunk costs", pivoting, "the dip", etc. The bottom line is sometimes it makes sense change your mind and start over.
We've made quite a bit of progress on "Untitled Space Game". It's gone through three major iterations. But ultimately it was too unfocused (and possibly too ambitious) for our first game. We've realized that scope should be aggressively limited in order to reduce iteration time to a bare minimum. While we could have gone for a fourth conceptualization of our current game, we decided a clean break would be the best way to go.
A clean break means throwing away a lot of hard work (and some cool art) but it also frees us up to take everything we've learned in our first six months and do things the right way (at least, to the best of our knowledge at this point). That means making a lot of decisions that I won't go into here except for our new choice of engine. One of the first things that was discussed when we threw around what we would do differently was the desire to move from Unity to Moai.
If you haven't heard about it yet, Moai is an open-source 2D (with limited support for 3D) game engine made by Zipline Games. The engine itself is minimal though it supports the major features you would expect in a game engine. It's scripted with Lua -- a very terse and performant language that has seen a lot of use in game development. Though it's focused on iOS and Android, it also runs natively on Chrome, Windows, Mac and Linux.
When you're running a business, you want to pay for things that actually matter. Moai is great in that regard. The engine itself is free. What you pay for (if you choose to) is their cloud offering, which allows you to build networked games, send push notifications, etc with a freemium, scale-as-you-go model. It's free to get started and the fees increase only as usage increases. And the prices are very competitive.
But what's really attractive about Moai is its mentality of what's important in game development. Games today need to be connected -- connected to serve ads, run analytics and performance monitoring, connected for IAP, to connect players and add social elements. Moai seems to start from this point and move outwards, not tack on these features after the fact. Unity, in contrast, doesn't include these features in its core offering. Most of the functionality mentioned has to be purchased from a 3rd party and integrated separately.
Moai also keeps the engine as simple as possible. This allows developers to squeeze as much performance out of it as possible. Mobile games today don't need eye catching graphics as much as they need to be defensive about running on a wide range of hardware. We saw this again and again developing with Unity. Even though we were following the standard rules of mobile development (low number of draw calls, low number of verts, low memory usage, simple shaders, etc) performance was constantly an issue.
We've talked a bit about why we don't like Unity. You might say that this is apples to oranges since we're comparing a 3D vs 2D engine. That's true of course but I would argue that for most studios focused on mobile there isn't a practical difference. The lack of performance and decent controls on most mobile devices makes the 3D experience lacking at best. There is very little immersion in mobile gaming and high production values in 3D art, music, sound and effects would be lost on most players. I don't think this is likely to change in the future. Processors might get faster and memory larger but screen size, controls and inconsistent sound are locked into the mobile form factor.
To sum up our decision to switch:
Most of the time it just works across platforms.
Good built in physics and particle systems.
Decent editor that makes prototyping somewhat fast.
Closed source (for most users).
Overpriced for its target market (indies, new studios, small studios) with regular paid upgrades.
Lacks many core features (you have to buy community-supplied add-ons or write them yourself).
Analytics, performance tracking, monetization not included.
Performance still lacking for mobile devices.
Very bad code editor (at least on Mac).
Verbose language choices (except for Boo, which is good but lacks documentation and tutorials)
Unpleasant and hard to reach sales and management teams.
The paid side of Moai (their cloud services) have a freemium, scale-as-you-go model.
Analytics, performance tracking, monetization part of the core offering.
Device "hosts" are easily customized.
Responsive forums hosted and moderated by the creators.
Documentation and tutorials still somewhat limited.
Not geared towards the inexperienced.
Admittedly hard to use particle engine.
"Unpleasant and hard to reach" should be explained, but I'm not going to take the time. Personally I've had mostly unpleasant interaction with the Unity team (in person, over email, etc) but that's a very small part of why we decided to switch. Having said that, I absolutely do not recommend Unity for mobile development unless you have a very compelling set of reasons why you should use it. It may be popular but it simply is not a good fit.
So now we're moving on into this bright new future. Our new game will be simple but fun. There's not much to talk about now as most of the game will be decided as we validate our starting assumptions. Ultimately, it feels (down deep in the entrepreneurial gut) like the right move as does going with Moai.