Why We Love Corona SDK
Made with Mustard has two shiny apps to our name, with a third coming in December. Does that make us seasoned developers? I’m not sure, but I’m confident in this: over the two years it took to get us here, we’ve learned a lot, screwed up a lot, and finally found a groove with our day-to-day development.
The Corona SDK made all of this possible. That’s not an overstatement, and I’d like to explain why. To do that, though, I need to cover an important truth we learned from Made with Mustard’s long road here.
The Secret to Game Development
Game development requires two things: maintaining momentum while reducing developer friction.
How do you maintain momentum? You make incremental progress, such that every day strikes at least one thing (big or small!) off the mountain that is your to-do list. You take regular breaks to spend time with your family/friends/favorite bar and keep the brain pliable. You regularly make concessions and streamline your ambition, such that your task list gradually shrinks—not grows!—over time.
The second half of that equation is a little trickier to unwind. What is developer friction? I’m sure there’s a formal definition somewhere, but let’s work with a simple one: developer friction is any obstacle that smacks you straight in the face every single time you sit down to code. When I get struck in the face too often, I stop doing the thing that strikes me in the face. I’m sure I’m not alone in this.
Tiny Boxes, our debut game, took the better part of a year to make. We spent three-quarters of that year churning through prototypes in Unity, which was super educational, but also kind of a nightmare. I hated it. I hated every minute of it. I hated waiting several seconds to build and play the game, only to realize I’d made some silly mistake, fix it quickly in the code, and then have to start the wait all over again. I hated navigating the editor interface, finding features buried deep in strange corners I didn’t even know existed. I hated the reluctance I felt to even open the editor.
I hated the friction.
So much of my frustration with Unity, I know, is a product of my own inexperience. But that doesn’t change this one small fact: I didn’t enjoy working with Unity. It didn’t feel fun. And while fun isn’t the word that comes immediately to mind when you think about the long slog of game development, it’s arguably the only thing that keeps you sane every single time you sit down in front of the keyboard.
Tiny Boxes’ development slowed, then stalled. We needed to make a change.
Introducing Corona SDK
Nine months in, at arguably the lowest point in our long year of development, we pivoted. We ditched Unity, installed Corona, and, in a week’s time, completely rebuilt our game (an early form of Tiny Boxes) from scratch. There was very little struggle. Instead, we had something like excitement, an awareness that we were working with the tool, not against it.
There was no friction. I can’t emphasize this enough. There was no friction.
For this reason, and for the reasons listed below, Corona has become Made with Mustard’s tool of choice.
Lua is simple. The structure to a Corona project is simple. The vast majority of the APIs you’ll use are simple. In all things, whether choice of language or documentation or deployment or even its approach to pricing, Corona emphasizes user-friendliness. That’s an important distinction, and it doesn’t feel tacked on the slightest. Rather, it feels ingrained, like they made the decision day 1 to trade ultimate power and flexibility for a product that most people, with a little training, could use.
We’ve lost count of how many times we’ve built a new feature only to discover @CoronaLabs had it (prominently) in their docs already. 😅— Made with Mustard (@madewithmustard) October 26, 2017
(Not that we read it, apparently.)
I’ll say it up front: I like reading Corona’s documentation. I don’t always come away with the answer I’m looking for, but—and this is important—I do feel like the docs as a whole provide a really clear look into how Corona operates. The individual guides, too, are plainly-worded and easy to digest, with an emphasis on text over videos.
This is probably a personal problem, but I can’t stand video tutorials.
Instant Build Times
This was the game-changer for us. We keep the simulator running in the background while we fiddle with code, and any changes are reflected almost instantly in the simulated version of the app. For silly typos, too, you see instant feedback upon build failure, and then you’re up and running again in the length of time it takes to fix the mistake. Considering how often I make stupid mistakes, and considering how often you’ll be tweaking your code and/or design during the development process, instant builds are my personal favorite benefit on this list.
Developing is simple, quick, and frictionless. We’ve never been more productive as a result.
The Price Point
Corona is free. I have a tendency to balk whenever I see a software product bandy that word about, but this is the real deal. In exchange for a Powered by Corona splash screen when you first open your app, you get full access to everything Corona offers. This is—honestly—a really generous offering, and later, if or when you start generating income, that splash screen can be removed to the tune of $99 a year.
We love the Corona SDK.
That sounds like marketing speak, I’m sure, but I feel obligated to give credit where it’s due.
Made with Mustard wouldn’t exist without it. All of this—Tiny Boxes, Sleep Calculator, our 12 Games in 12 Months project—wouldn’t have been possible without first discovering Corona. When I reflect on how my motivation bottomed out, too, after 9 months poking at Unity, it’s astonishing to see the difference.
We code. We design. We move quickly, release quickly, and have a legitimate shot at turning this into a business. Most importantly? We do so happily.
We’ve learned that the best development tool is the one you don’t fight with. In other words, it’s the tool that offers the smallest amount of friction to slow down your progress. That’s not to say we don’t struggle with game development any more, because we do. (It’s insanely hard! Who knew?) And it’s not to say that we don’t sometimes wish Corona could do this thing or that thing whenever we’re scanning the docs.
For all that it offers, and for all the reasons listed above, though, we know we made the right choice.
If you haven’t used Corona before, why not give it a try?