Interview with the team behind “Learn Spanish with Stories by Gus on the Go”

The team behind the original childrens game series, “Gus on the Go”, adds a new title that allows children to learn Spanish. Let’s chat with them about their team, success and how they use Cocos2d-x.

1. Tell us a bit about yourself and team.

01 - Splash ScreenMy partner, Alice, and I started working together in 2012 to create language learning apps for kids. We both come from multilingual backgrounds. In addition to English, Alice speaks Cantonese and I speak German and Hebrew. At the time, Alice was pregnant with her second son and my wife was pregnant with our first. We were looking for material to help us pass on our mother tongues to our children and we didn’t like the state of language learning apps in the app stores. We knew we could do better.

Our first series of apps is called Gus on the Go, where Gus is the name of our main owl character. After 3.5 years of releasing new languages for our first series of language apps, we are releasing a sequel that immersively teaches the target language using simple sentences and stories.

2. Tell us where you came up with the idea for this game. What were your inspirations?

This game is a sequel to our first series of language learning games, called Gus on the Go. The first series is an interactive picture book, where children can tap on objects and hear the names of the objects spoken by a native speaker for about 90 different words. Learning is reinforced using reviews and mini games. The game is available in 28 different languages. It was written using Cocos2d-x v2 — prior to the release of v3.

We wanted to do a sequel that would be more in-depth and a fun way to teach children simple sentences and grammar. We decided to focus the game on interactive stories based on well know tales. The learning is done immersively and there are lessons, reviews, and mini games to support the stories. This sequel is much larger in scope than the original.

The initial release is Spanish. We are planning on releasing more content and more languages soon.

I first learned about cocos2d-iphone from raywenderlich.com. The same site also introduced me to cocos2d-x later on. That site was a big inspiration to getting me started writing games. Additionally, I occasionally attend gamedev meetups. Meeting other people, in person, who are also writing games is extremely encouraging. A lot can be learned from the community.

3. What version of cocos2d-x did you use?

We started with v3.2 and upgraded version by version until v3.5. At that point we froze our version of cocos2d-x for the app. I’ve wanted to upgrade with each new release, but have been happy with how v3.5 has been performing. I’ve also lost track of some of my engine customizations, which would have to potentially be reimplemented in a newer version. That’s my own fault, though…

4. How did you decide to use cocos2d-x instead of Unity, Unreal Engine or SDL?

03 - Interactive LessonI’ve been using a form of cocos2d since 2011. I love the API for it and above all, it’s important to me that it’s open source. Several times, I’ve had to make tweaks to the engine code in my repositories until a bug fix was pushed in a future release. That way, I’m not dependent on someone else for a bug fix. Being able to pour through the code really helps when trying to understand and extend or customize the engine.

5. What features did the engine offer you that made development easy? What do you wish the engine did better?

I really like how Actions are handled in the engine. It makes for a very intuitive way to control all objects in the game. It’s very easy to extend the engine with custom actions as necessary… there are tons of examples to use as reference.

I’m fairly certain Apple copied the Cocos2d* API when creating SpriteKit just because it works so well. I actually once followed a SpriteKit tutorial but translated it to Cocos2d-x on the fly, because they are so similar.

Initially, I had a bunch of texture memory management issues. It was not apparent to me how things were supposed to work right off the bat and I had made some bad assumptions early on. I feel like there could have been a simpler way. This may have also been a side effect of how I architected the code.

6. What tools did you use besides the engine?

05 - GameA lot of the tools we use are also open source. The exceptions being Spine and TexturePacker, which are both phenomenal.

Inkscape + scripts – we do most of our own graphics and the custom scripts generate the correct resolutions from the SVGs

Spine – we hired a friend to help us animate and, very occasionally, I add my own

TexturePacker – used to generate sprite sheets

Audacity – used to record and edit sounds

SoX – used to convert sounds to proper format

LibreOffice + scripts – I use spreadsheets to create sqlite databases

7. What 3rd party libraries did you need to use?

Spine runtimes, sqlite, pugixml

8. Did you create the art yourself? What tools?

Mostly, yes. For our first series, we did all of our own artwork due to a lack of budget. When planning the sequel, we wanted to hire an artist, because artwork was our biggest bottleneck. Neither of us are “real” artists. Before we started work on the sequel, we sent out a survey to our mailing list to find out what people liked and disliked about the first apps. It turns out that a majority of them *loved* our art. So we stuck to doing it mostly ourselves. When we did hire artists, we had to hire them to copy our style!

We create our art in vector graphics using Inkscape to future proof against new screen resolutions. Additionally, we use Spine for smooth skeletal animations. Using Spine reduces the amount of graphics we need to generate and helps us be a lot more flexible.

9. Did you create the music yourself? What tools?

02 - Main NavSome sound effects we created ourselves. A lot of sound effects were found on freesound.org — we stuck to sounds that were Creative Commons 0. We hired a native Spanish speaker to record the Spanish words and sentences for us. We found her on one of the freelance website (like elance.com, which has since merged with odesk.com). We got music from Kevin MacLeod’s website, incompetech.com – royalty free, but attribution is required. There is a lot of good stuff there!

10. Will you continue to make games in the future?

Absolutely! Besides releasing more languages in our Stories by Gus on the Go series, I have a bunch of ideas for games I would like to write. Just need to find the time…

11. Do you use SDKBOX? If so, what plugins are you currently using?

No. When we started, SDKBOX wasn’t quite ready. By the time I was integrating In-App Purchase code into the app, the API for the IAP code in SDKBOX didn’t have all the features I wanted, so I ended up rolling my own.

12. Lastly, any advice for those also making games on how to get to a release point?

I think the hardest thing for most game devs is getting over the idea that the app has to be perfect before releasing. We were originally going down that road, which just kept pushing back our release date time and time again. Initially, we wanted to release in the summer of 2015! At some point, we had to accept the fact that we couldn’t release the perfect game we had envisioned in our minds as there are always more tweaks and features to be added. We find comfort in the fact that we will be able to incrementally update the app until it’s near-perfect.

13. What is your business style/model?

04 - StoryI’ve decided to “open source” our company by blogging about the business side of our apps (with my partner’s permission, of course). I break down a lot of what we’ve tried in terms of marketing, business models, and other experiments. I back it up with actual revenue numbers when possible. A lot of what I write about is stuff I wish I would have known when going indie.

The main blog is at: http://yonomitt.com/

The main blog posts concerning Gus on the Go (so far) are here, here and here.

Checkout this game on the iOS app store. You can also watch the trailer 1 and trailer 2 on YouTube.

Posted in Business Tagged with:

Categories