Beginning Mobile Game Development
4.4 (119 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,288 students enrolled

Beginning Mobile Game Development

Discover how to use the Corona SDK framework to create your own mobile games.
4.4 (119 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,288 students enrolled
Created by J. A. Whye
Last updated 7/2016
English [Auto-generated]
Current price: $25.99 Original price: $39.99 Discount: 35% off
12 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8.5 hours on-demand video
  • 10 articles
  • 11 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • After completing the lessons you will have the knowledge to create your own mobile game for iOS or Android.
  • You will learn animating objects and sprites, how to play audio and sound effects, and even how to structure a complete game.
Course content
Expand all 63 lectures 08:46:04
+ Getting Ready
4 lectures 09:01
Installing the Corona SDK Framework
If you're using Outlaw to write the code for the course (or for your own projects), here's a video that should get you up and running fairly quickly.
Preview 06:26
Downloading the Sample Code
+ Lua Boot Camp
6 lectures 45:05

Corona SDK isn’t a programming language, it’s a framework. A bunch of “library routines” that take care of stuff under the hood (displaying graphics, playing sounds, etc.). But we still need a programming language to write our game code and call those framework routines.

Corona SDK uses the Lua language (lua means moon in Portuguese). I’ve been programming since the mid-80s but never even looked at Lua until I discovered Corona SDK. Now, after using it for about two years I don’t have any desire to use any other language.

This “Boot Camp” isn’t going to teach you everything you need to know about Lua, but it’s a great start. With these videos as a foundation you’ll be able to dive into the actual game dev videos much easier.

Note: No extra sample code for this section.

Preview 04:01

Variable can be thought of as containers for bits of information - numbers, letters and words, etc. This video shows you the basics of making and using variables in Lua.

Just a quick note — there are some reserved words in Lua that are NOT available for use as a variable name. Those are:

 and break do else elseif end
 false for function goto if in
 local nil not or repeat return
 then true until while

If you want to use one of those as a variable name, don’t. :)

Preview 10:19
Functions are chunks of code that can be "called" at any time during your program. Besides making it easier to code your game, functions are often reusable from one project to the next.
Preview 07:59
Tables are one of the most powerful parts of the Lua language. You can think of them as another type of variable - but a variable that can hold multiple pieces of data, not just one.
Preview 05:37
In this video you'll discover how to use if/then in order for the program to decide which code to run, and how to use loops in your code to run chunks of code multiple times in a row.
Preview 10:49
Discover how to create a function that allows you to pass all, some, or no parameters at all.
Not beginner info, but not rocket science, either -- and if you can wrap your mind around this concept it will really help your coding. Watch it now, or later after you've had more experience under your belt. 
Preview 06:20
+ Display and Animate Images
4 lectures 45:16
Putting images on the screen and moving them around — that’s the core of game development. In this first series of videos you’ll see how easy Corona SDK allows you to get that done.
Display Images
Displaying an object on the screen is neat -- but when you make those things animate it's a whole new world!
Simple Animation
If you want to display 50 lily pads, or 50 asteroids, or 50 jewels you can create 50 chunks of code. Or you can do what the pros do and create (and position, and use) multiple objects with just a few lines of code.
Displaying Multiple Images (Pro Trick!)
After watching this video you'll be able to trigger specific code after an animation has completed.
Triggering Code with Animations
+ Touch and Tap Events
4 lectures 33:14
Taking a look at event-driven programming and how it can make our game easier to develop.
Event Driven Programming
Let's attach a tap event listener to the Frog as well as give him a fancy spin.
Listening for a Tap Event
Touch events have different phases - you can see when someone first touches an object, when they move their finger across the device, and even when they lift their finger up.
The Phases of Your Touch
Besides just tapping and touching, a lot of times you want the player to be able to drag an object. This video shows how easily you can accomplish that.
Dragging Display Objects
+ Make Some Noise - Music and Sound FX
7 lectures 55:40

Whether it's pops, clicks, and whooshes, or a full orchestral score, audio is one big way to add polish to your game. While the whole area of audio can cover a lot of territory, to actually put a sound effect in your game requires two lines of code:

One to load it, and one to play it.

In this series of videos I'll show you how to do that -- and a whole lot more.

(Other videos for this section and sample code available Friday)

Preview 07:11

Playing longer audio files such as music is basically as easy as playing short audio files -- but there are some differences and tweaks you need to know about.

There is a short "sidebar" video after this one that *must* be viewed in order for the code shown in this video to work. Basically, it fixes changes that Corona Labs made to the framework since the original video was recorded.

Playing Music

This is a short "sidebar" video that *must* be viewed in order for the code shown in the previous video to work. Basically, it fixes changes that Corona Labs made to the framework since the original video was recorded.

Sidebar: Fixes for Previous Video
You can specify certain sounds to be played on certain audio "channels" which gives you more control over the sounds in your game.
Channel Management for Audio
Here are a couple ways to reset an audio channel after you've faded the volume to zero.
Channel Management Part 2
Taking what we've learned so far in this section we add background music and a jumping sound effect to our sample game.
Adding Audio to our Frog Project
A bit of a "crash course" in how to tweak an audio file and make it fade out. This uses the Audacity software which is free for Windows, Mac, and Linux.

Not always necessary in game development, but it comes up more often than you might think.

Preview 04:41
+ Text as Display Objects
4 lectures 36:11

Once you create a text object you can manipulate it just as if it were a regular graphical object like a frog or lily pad.

Be sure to watch the “sidebar” video after this one to see how to handle the setReferencePoint() calls (as seen in this video) that are no longer valid in Corona SDK.

Create Text on the Screen

This video shows how to use anchorX and anchorY in the sample code instead of setReferencePoint(). This is a must view.

Sidebar: Using anchorX/Y, not setReferencePoint()
If the fonts on the device aren't good enough for you, see how to use a custom True Type Font in your game.
Using a Custom Font
Now that we've seen how to create text objects, let's use that knowledge to add a scoring module to our game.
Building a Scoring Module
+ Saving and Loading Files
5 lectures 42:33

While it’s possible to create a mobile game without needing file I/O (input/output) it’s not likely. Whether you’re saving high scores or user preferences you’re probably going to need to write data to the “hard drive” and read it back.

In this section I’ll show you the guts of file I/O and then show you a “shortcut” you can use in the future. We’ll dive into using a 3rd-party library from Glitch Games to save and load data.

Here’s a link to a file guide on the Corona Labs site in case you want to dig into file I/O further:

The first 4 videos make use of the readingwriting.lua file in the sample code archive. Rename it as main.lua or give it an alias in Outlaw/Corona Project Manager.

Writing Data to a Text File
Reading Data from a Text File - Pt 1
Reading Data from a Text File - Pt 2
Here's the Glitch Games github page:
Using a 3rd-Party Code Lib (GGData)
Adding File I/O to the Froggy Game
+ Scene Management with Storyboard
4 lectures 33:04

Storyboard has now been sidelined in favor of a new scene management library called Composer. If you’re following this course from beginning-to-end, go ahead and do this Storyboard lesson — the concepts for both are the same, so switching from Storyboard to Composer at a later time will be very easy for you.

However, if you’re just kind of “cherry-picking” the course and doing the lessons that really interest you, skip this Storyboard lesson and do the Composer course instead. It’s included as part of this course.

Being able to switch from a main menu, to an options screen, to choosing a level, etc., are all part of scene management. Corona SDK gives us a way to handle that called Storyboard.

In a nutshell, you place your game code in scene templates and then tell storyboard which scene to go to next. And storyboard even gives you fancy transitions to use when moving from one scene to another.

If you want to see the official Storyboard docs, here's a link:

The Storyboard library has now be deleted from Corona SDK. This section will still work, with just a little tweaking as I've now included the Storyboard library as an extra file. Read on...

In the videos I have some sample code called storyboard.lua, but the Storyboard library itself MUST be named storyboard.lua -- the file in the video is now called storyboard-sample.lua inside the project.

So if you remember that now you NEVER edit the storyboard.lua file, no matter what you see in the video, you should be able to go through the tutorial.

Setting Up Storyboard
Building a Storyboard App
Storyboarding Our Froggy Game
+ Sprite Animation
5 lectures 39:25

You've seen how to animate an object on the screen using but that only moves the entire object. What if you have a man character and you want him to move his arms and legs while he walks across the screen? That's where sprite animation comes in.

In this series of videos you'll discover how to make a snake slither across the screen as well as give our frog a more realistic leap.

If you want to read up more, here's a link to a written tutorial on the Corona Labs site: Animated Sprites and Methods

Intro to Animated Sprites and Image Sheets
Creating and Playing Sprite Sequences - Pt 1
Creating and Playing Sprite Sequences - Pt 2
Using Animated Sprites in the Frog Project
  • System Requirements: Mac OS® X 10.7 or later, Intel Mac
  • System Requirements: Windows XP or later, 1 GHZ processor

Aimed at beginners, this video tutorial course will guide you through the creation of your own game for iOS or Android.

The Corona SDK framework used for this course is one of the most powerful 2D game engines available, and the free version is all you need to get started making your own games!

You Can Get Started, Right Now!

The videos can be viewed online and the sample code can be downloaded to your computer so you can follow along. Since it’s all online and all digital, you don’t have to wait, you can start finding out how to make your own game right now.

Play games other people make, or finally take control and make your own games.

"You got me up to speed in record time and my first game should be out in 4-6 weeks time. Congrats on an awesome course." - Tim Buchalka

Imagine how it will feel when people around the world download and play what you’ve created!
Who this course is for:
  • Aimed at beginners who have maybe poked around at Javascript or PHP. Or even someone with zero programming knowledge but a passion for making their own games.