Guitar Fretter creator talks making cross-platform games that “feel good” with Corona
Robert Stenzinger likes a couple of things: playing guitar and making games. With Corona, he says he can somewhat do both! Below, he details why he feels Corona is the best option for creating graphic/sound-heavy games or, as he calls them, “games that feel good to play.”
Stenzinger’s most recent example of this, Guitar Fretter, is now available in both the App Store and Android Market.
Just to get a better sense of your background, what is your experience in app development? Do you have a preferred platform or language?
My development background began in 2nd grade. I was in a class where we were taught BASIC and foundational computer concepts such as the idea of literal and deterministic behavior which was taught to us via the classic “tell me how to make a peanut butter sandwich” exercise. The teacher did a great job with the class and left an impression on me that, if you work hard at it, you can make computers do cool stuff. During my formative years, I spent a considerable amount of time with friends playing video games and trying to program our own video games. Actually, I started my first game development company in the early 90′s. It was a learning lab, garage band-style company I did with friends. Although we did not finish our game, we learned a lot and we became the expert creative computer types that corporate America needed in the 90′s.
It was a far easier path to make a living with computing skills then with visual art and music abilities. I never let go of the idea of making games and, more often than not, I’ve been working on some creative computing project. Earlier this year I released my comic-focused CMS platform called Comicaster. It’s open source and over at Google code if you’re interested in checking it out. I use it to power my web comic website, ArtGeekZoo.com.
I often joke that I now consider myself a reformed enterprise architect. Over the years, I’ve programmed in several languages on several platforms: .NET / C#, SQL, JavaScript, Python, and Action Script. I have developed everything from basic web pages to rich UI web pages to games to UI widgets to Flash to databases stored procedures. Most recently, I’ve been studying and building with Lua. It fits really well with my interests and style of programming – it’s a lot of fun, it’s flexible and it’s easy to play with. I have to say Lula has now joined the list of Python, JavaScript, and ActionScript 3 as my preferred languages.
You were able to launch Guitar Fretter in both the App Store and Android Market simultaneously. I assume that Corona has a special place in your heart because of that?
I knew from the beginning that I wanted to target Android in addition to the iOS. However during the entire development life cycle for the first release I focused on just the iOS. All the way up to submitting Guitar Fretter to the iTunes app store, I hadn’t touched the Android simulator and didn’t even have the most recent Android SDK installed.
The morning after submitting Guitar Fretter to the iTunes app store I was on my way to an Iron Maiden concert in Chicago. It was really bugging me that I hadn’t completed the Android version yet. While the concert was awesome, the Android version was weighing on me throughout the trip. I was wondering how difficult or easy Corona was going to make this for me. I’m a huge believer in cross-platform development, which means I’m also all too familiar with the hiccups and glitches often involved in porting across platforms. It can require an immense effort and study trying to figure out things that are not documented very well. That was my mindset when I started to work on the Android version.
In reality, it was very easy to port to the Android platform (thanks Corona)! It was such a relief and it seemed almost too good to be true. Only two tweaks were needed. The first was getting the right settings for proper app scaling and the second was converting the sounds to the Ogg format. So yeah – I’d say Corona has a special place in my heart! Actually, Guitar Fretter was live in the Android Market a few days before Apple completed its review process and published Guitar Fretter into the iTunes store.
Guitar Fretter seems to be not just graphically rich, but also quite demanding from a sound perspective. (precise notes/sounds triggered by each fret, etc.) Did Corona expedite the process in creating this complex of a playing interface?
Thank you, I hope the graphics do come across as rich and engaging. It was my hope that the whole package — graphics, game play and sound — create a playful action puzzle game that, at its heart, is a system for memorizing the notes on a guitar fretboard.
Two things that really expedited making Guitar Fretter‘s fretboard user interface were the ui.lua library and the Corona documentation. The ui.lua library provided a great example of how to handle touch events and the overall event lifecycle. The Corona documentation clearly demonstrated how to play short sounds in a resource-efficient manner (via media.playEventSound). This was critically important since I needed Guitar Fretter to play any one of about 60 different sounds at any moment.
So, how long exactly did it take to make Guitar Fretter, and how big of a file did the final product turn out to be, considering those “60 different sounds?”
The prototype which proved the core design, gameplay, and logic took four months of R&D. The Corona version of Guitar Fretter took about four weeks to develop the code, art, and sound assets.
The final file sizes vary a little by platform due to the Ogg format on Android taking up less space than AIFF on iOS. With about 60 sound files that difference adds up quickly. The iOS version is about 15 meg and the Android version is 6.2 meg. Though once I upload the Android version to the Market it becomes about 12 meg due to the copy protection that gets added.
Did you hit any other roadblocks during the making of Guitar Fretter? How was Corona able to help you overcome those?
Guitar Fretter started life as a prototype in HTML 5 using JavaScript and the canvas object. The early version was running great in desktop browsers but, no matter how much tuning and optimizing I did, I couldn’t get it to run efficiently on portable devices. I did everything I could to squeeze performance out of that prototype. I got rid of all the external JavaScript libraries it was using such as JQuery and RaphaelJS. In the final iteration, I targeted the WebKit browser and how it supports CSS animation which does seem to have some hardware acceleration that was faster than motion via timer loop — but it still wasn’t enough.
As an experiment, I downloaded the demo of the Corona SDK and started to port my prototype. From very early on it was obvious that the Corona SDK made more of a portable device’s power available to me. It looked like it could handle the full implementation of Guitar Fretter. Corona has provided a platform that meets my needs as a developer, that fits my programing style, and can effectively target multiple platforms while retaining good performance. It allows me to create games that feel good to play — like Guitar Fretter!
So, what’s coming next from you? Do you plan on using Corona for that too?
Well, I have designs for two additional mobile games that I’ll definitely be building with the Corona SDK. I’ll have more to share on those games in the near future. In addition to that I plan to build a mobile comic viewer in the Corona SDK that will integrate with some new interactive comic features for Comicaster (that comic focused CMS I mentioned earlier). You can be sure I’ll be looking into what’s happening with Corona Comics when I get started on my mobile comics viewer. Recently, I finished my first print comic, it’s the first two seasons of my web comic, Art Geek Zoo (AGZ). Check it out and you will notice the character designs for Guitar Fretter come from a special set of AGZ comics called “AGZ Mini”. I make a habit of weaving my creative interests together — I think that’s what has always attracted me to making videogames.
Glad to have you stick around for more Corona rollouts. Thanks a lot, Rob!

—
—
—
—
—
—
Love the Android version of GuitarFretter! Thanks for an interesting interview!
Very cool. I see the benefit of Corona, and I long to see my old fave Iron Maiden again.
@Jeff, Thank you! Glad you enjoy it!
@David Kagan, once I moved my prototype to Corona I was sold on Corona. Sounds like you missed Maiden this tour, but they’ll be back.
[...] know we have at least one guitar player using Corona, so we thought this would be great news to [...]
Merci pour cet article, continuez comme cela
It’s always about the smart phones. Hey guys write more about Java games.