What’s in a name?

A name is probably one of the most important aspects of a project. It needs to be easy to say, easy to remember, and most importantly unique enough to show up in Google searches. Easy discovery of your project is the only way it can become popular, and as such, you should remove as many barriers to discovery as possible.

As it turns out, the name I originally chose for my first game – Word Gator – was terrible for search engine optimization. A Google search for Word Gator would only reveal pages and pages of dictionary entries – not good if people are trying to find my game! Therefore, I have made the difficult decision to change the name slightly in order to improve discoverability.

From now on, Word Gator will be known as Wordy Gator! The public beta is only a few days away so stay tuned!

New artwork for Word Gator is here!

Updates have been sparse but I have been hard at work. Here’s a look at the latest art from Word Gator!

Splash Screen

Splash Screen

Title Screen

Title Screen

Level Map

Level Map

Main Settings

Main Settings

Level Select

Level Select

In Game

In Game

Word Gator Logo

Introducing Word Gator!

Here it is! The official title for my first game will be Word Gator! Word Gator is a fun twist on the classic crossword style game. I will be releasing more details as the game gets closer to beta. In the meantime, I’m excited to share a first look at the logo I created for my game! 😀

Adding music while keeping app size small

Ok, you’ve made progress on your game and things are coming together. Your gameplay is polished and actually pretty fun. Your artwork is looking great. It’s time to add that cherry on top that completes your game experience…music!

There’s only one problem, you’d like to have a bunch of songs in your soundtrack but high quality music files take up a lot of space. A 1 minute track could easily take up 5MB depending on what audio format you use. In the mobile world, space is precious, especially on Android where your apk size for the Play Store is limited to 50MB (unless you want to deal with pesky expansion files).

I faced this problem recently when adding music to my game. At first, I wanted to keep things simple so I chose the .wav format for cross-platform audio compatibility. But I soon learned that all my audio files combined were adding a hefty 20-25MB to my game! I tried reducing the sample rate, which made the files a little smaller but the audio quality suffered greatly.

I was not content so I did some googling and found a combination of tricks to trim some of the fat in my app.

Going back to that page on Corona audio formats, I noticed that Android supports .ogg and iOS supports .aac. These file formats are compressed but offer great audio quality, and best of all, they don’t come with weird royalty restrictions like .mp3 does. I found this neat website that will convert your formats for you for free, and it even gives the option to change certain settings and trim the length of the song. You can check it out here (Note: unfortunately, I recommend using an ad blocker on this site as they have some intrusive ads). The settings that I recommend to keep the best sound are

Bitrate: 128 kbps
Sampling Rate: 44100 Hz
Audio Channels: Mono

Now, you may be saying to yourself, “I have double the amount of files, how does this help me reduce the app size?”. There are still a couple more pieces we need to make this work.

First, let’s take a look at a simplified audio manager that automatically selects the file format based on what platform we are on:

Lastly, let’s look at where the magic happens. Corona has this awesome feature that lets you exclude files from your build, and it even supports excluding certain files based on the platform you are targeting! Open up your build.settings file and drop this into the settings table:

And there you have it! Compressed audio, dynamic format selection, and reduced app size. Your game is now one step closer to being production ready. Happy coding!

Corona SDK is now free! Go forth and make apps!

When I first had the idea to create my game, it was a struggle deciding which of the many frameworks out there I would use. Phone Gap, Titanium, Xamarin, Unity…the list goes on. Then I found Corona SDK, which used this scripting language I had never heard of called Lua, and I fell in love with the ease and simplicity of everything.

Today, Corona Labs announced that their SDK is completely FREE! Corona always had a free tier, called Starter, which was actually very generous with the amount of features that you could use. But if you wanted access to certain plugins and features like in-app-purchases, then you had to upgrade to either Basic or Pro.

Not anymore! Under this new structure, everybody gets access to all plugins and daily builds without having to open their wallet. I am very excited to see how I can integrate these new features into my game, and to see what other developers will create. I think this is excellent news for developers everywhere!

Corona SDK: Customizing the Facebook Share Dialog using dynamic meta tags

This may be obvious for some, but it took me some digging and I figured I would share what I learned in a nice, easy to digest format.

Facebook documentation recommends the share dialog over the feed dialog for mobile developers. It’s supposed to be the easiest way to share stuff from your app. It doesn’t seem to be documented, but Corona supports the share dialog.

Feed allows you to pass in a name, caption, description, and a link to customize your dialog. Share on the other hand, only takes an href parameter — this is the url for your page. When you activate the share dialog, Facebook scrapes your page looking for specific meta tags to fill in the content.

Normally these meta tags are static, but if you want to take your sharing to the next level, you can dynamically generate them using a bit of server side code.

Note: The following assumes you have facebook configured with your app and that you have access to a server running php.

First, let’s look at the Lua code for Corona:

Notice that we are encoding a score and level Id into the url. Pretty simple so far!

Next, let’s look at the contents of share.php:

And that’s all it takes! Facebook has a nifty tool to verify that your meta tags are being read properly. You can check it out here. Simply enter your href with some sample values to see the results.

Example:

You may be wondering why you should go through all the trouble to use Share instead of Feed. The main advantage is that you can update your meta tag content on your server, and have it propagate to all versions of your app immediately instead of building and pushing out an update just to change one or two dialog properties.

Hopefully this helps a few of you!

Welcome to the Blog!

I’m very glad that you’re here. This is the first in a long line of posts that will be dedicated toward announcements, code tutorials, and much, much more!

To get things started, I would like to announce the development of a brand new word game for Android and iOS! I will be releasing more details soon, but if you’re a fan of flexing your lexical muscle, then follow FreezeRay Studios on Facebook and Twitter to stay up to date on all the latest news.