Our latest App of the Week was Blast Monkeys, which we loved for its goofiness as well as its well-designed gameplay.

Now, Angelo Yazar of creators Yobonja! (exclamation point included) describes just how quickly they were able to make Blast Monkeys — and how they even had a little inspiration from a couple other Corona users too! :-)


Angelo Yazar, Yobonja

Blast Monkeys began its life during a game jam experiment Tobiah and I did to as a way to check out Corona SDK. We sat down that day and both made a game. I made Test Monkeys, a game much like Blast Monkeys, except there was a limit on the number of monkeys you could blast. Tobiah made an interesting store keeper game where you buy and sell items to get rich.

We determined that Corona SDK has the fastest development feedback loop since we used Game Maker. But, since we’re in the middle of working on a few other projects, I left it on my hard drive.

A few days later, I heard from a friend that a Corona game called Bubble Ball had gotten over 1,000,000 downloads (now over 7 million downloads!) and that inspired me to go and finish my game. Including the time not developing in those days, the development of Blast Monkeys from the time I created the folder to the time I submitted to the App Store was exactly 14 days. I did all the art and programming and my friend Stefan Peterson did most of the game design and level building.

That is the speed of Corona SDK.
.
I think Fire Maple Games reported it taking 5 days to port their Secret of Grisly Manor game from GameSalad in their guest blogpost. Amazing!
.

To put that in perspective, I have been working on an iPad game called DEKAI since May of last year in Unity3D, a game engine which I love. But since DEKAI is a four-player 2D centralized shump, I spent most my time optimizing the game. I hacked together shaders, I used SpriteManager, automated my sprite atlas pipeline, and I learned way too much about iPad optimization. So, even though the initial prototype for DEKAI was done in 7 hours while I was on a plane, bringing the game to completion on a mobile device was still proving to be tedious.
.
With Corona I felt right at home immediately. To me, Lua feels like JavaScript (a language I’m a fan of) and every time I hit CTRL+S, the Simulator restarts and I get immediate feedback. Take this and add in how everything I need is wrapped (or will be soon), and I’m not sleeping for days because the development is so addicting!
.
Every line of code seems to add a new feature in your game — take OpenFeint as an example. I was using the Unity3 beta and incorporating OpenFeint required stuff like this:
.
MonoDomain *mono_domain_get();
MonoAssembly *mono_domain_assembly_open(MonoDomain *domain, const char *assemblyName);
MonoImage *mono_assembly_get_image(MonoAssembly *assembly);
MonoMethodDesc *mono_method_desc_new(const char *methodString, gboolean useNamespace);
MonoMethodDesc *mono_method_desc_free(MonoMethodDesc *desc);
MonoMethod *mono_method_desc_search_in_image(MonoMethodDesc *methodDesc, MonoImage *image);
MonoObject *mono_runtime_invoke(MonoMethod *method, void *obj, void **params, MonoObject **exc);
(awesome stuff from TinyTimGames)
.
Added to the Xcode project, which at the time was incompatible with Unity3 beta because of some changes to file and variable names from 2.6. I tracked them down and fixed them, it was necessary. In Blast Monkeys, I added three lines of code and we have OpenFeint. A few more, and we’ll have achievements in the next update.
.
It doesn’t end there with the update, I’m also adding 10 bonus levels, facebook/twitter sharing and my own news feed that can pull gift levels from our server. At the same time, our level builders are making good progress on new worlds of levels, each with their own theme, for a paid version of the app.
.
All thanks to Corona SDK and my own willingness to try something new!
.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>