Game Development using Corona SDK in 2016 with ASO & Ads

Dive right into making fun and interactive games for Android and iOS in this Game Development Course.
4.4 (68 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
549 students enrolled
Sale Ends Today!
25% off
Take This Course
  • Lectures 53
  • Length 5.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 3/2015 English

Course Description


Have you ever wanted to learn how to build a mobile game? Then this course is for you! Game Development with Corona SDK will skip past the boring 'Hello World' examples and you'll jump right into making a game that will be sure to make an impact in the app stores.

You'll learn to make a game that pits Ninjas against Pirates in a time classic battle. This game features animated characters, an intuitive playing style, an upgrade system, and in-game currency.

Once the game is built, you'll turn your focus on monetization. Generating revenue from your games is something that's overlooked in other courses and this course will make sure monetization is a main focus point. We'll look at paid options as well as in-app advertising options using Corona SDK.

You'll learn how to:

  • Develop a fun and interactive mobile game
  • Learn the easy way to publish your game on multiple app stores - iTunes, Google Play, Amazon, and more!
  • Explore ways to generate revenue from your games
  • Learn where to find free game art
  • Discover sources for free music
  • Get briefed on ASO - app store optimization

If you've ever wanted to build your own mobile game and you don't want another boring course on variables or loops, then this course is for you. Imagine the possibilities of being able to create your own games for customers around the world!

What You'll Need

This course takes advantage of Corona SDK. Corona SDK is a great platform to quickly bring your ideas to life and you'll need to have a basic understanding of Corona SDK along with the latest public build. This course will walk you through some of the basics and where to download Corona SDK, but your focus will be on topics that are beyond variables and your basic if-then statement.

What are the requirements?

  • Download and Install the Latest Corona SDK
  • You should have a bit of familiarity with Corona SDK. (Not that much is required!)
  • Although you'll have access to a refresh, a little working knowledge of LUA will help you throughout the course.

What am I going to get from this course?

  • Create an Original Mobile Game that will Guarantee Downloads with Corona SDK
  • If you want to start an app business, you'll need to build games that aren't just another Flappy Bird Clone. This course will teach you how to make a game that will make an impact on the app store.

Who is the target audience?

  • This course is geared towards students who have a little familiarity with Corona SDK and/or students who are looking to jump into building an original game that will make a splash in the app stores.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Course Overview

In this lecture, you’ll get a sneak preview of the game we’ll be building. Throughout this course, we’ll be using Corona SDK to develop mobile games that we can publish to iTunes, Google Play, Amazon App Store, and more. We’ll learn how to build a defense style game from scratch, take a look at ways to monetize your game, add some polish, and finally publish your game.


In this lecture, you'll learn about the requirements for this course.


In this lecture, we'll go over the downloadable files for the course. You will need these files to complete the course so please download the template shell for Ninjas vs Pirates located in the resources of this lecture.

7 pages

This document will teach you some of the basics of the LUA programming language for Corona SDK. This document does not teach you everything, but it will give you a quick refresher that of topics such as variables, loops, and even touches on the Composer scene management tool. If you are already familiar with these topics, just mark this lecture as complete and carry on!


In this lecture, we'll take a quick peek at what the final product will look like.

Section 2: Setting Up Our Game

In this lecture we will cover build.settings. Build.settings defines the build-time properties for your app. This file controls app orientation, permissions, icons lists, what plugins to use from Corona and more. We will discuss the settings we will be using for Pirates vs. Ninjas.

* build.settings is available in the download for this course.


In this lecture, we'll cover config.lua. config.lua controls the runtime properties of your app such as the size, scale option, frames per second and more. We'll go over the options that we are using for Pirates vs. Ninjas.

* config.lua is available in the downloads for this course.


In this lecture, we will discuss main.lua. main.lua is the starting point of every Corona SDK build application and we'll be setting up some variables, adding some libraries, and setting up the user save file. The loadsave.lua file referenced in the video comes with the course download, but you can view the original file on github.

You can also download the final copy of main.lua in the resources section of this lecture.

Section 3: Creating the Main Menu

You will be learning about Composer, Corona’s official scene management library, and how easy it is to create a scene. The scene we’ll be creating is for the menu of Ninjas vs Pirates.


You'll be adding graphics to our menu such as the background, buttons, a ninja, and a pirate.


Let's add some buttons! You'll be adding a play button, an upgrades button, and a sound on/off button.

Errata: To fix the positioning of the sound button, use the following:

btn_sounds.x = 100;

btn_sounds.y = 140;


Time to make those buttons work! In this lecture, you'll be creating some functions for the buttons created in the previous lecture to make them respond to the users touch.


In this short lecture, you'll add some animation to the menu to bring it to life. We'll make the pirate and ninja move onto the screen using

If you would like to compare your scene_menu.lua file to mine (or just update your copy), please download my completed version of scene_menu.lua from this lecture.

Section 4: Creating a Place For Player Upgrades

You'll set up the upgrades scene using the skills you learned in previous lectures. This section will move at a faster pace than section 3 because all of the core skills used in this section have been learned in section 3. If the lectures go to fast, just remember that you can always watch them again whenever and wherever!


This lecture will continue the setup process of the upgrade scene by adding graphics such as the background and banners.


Buttons! In this lecture, you'll be adding some buttons to the upgrades scene.


You'll be adding some labels to the buttons in the upgrades scene so the player can know how much an upgrade costs and what their current upgrade rank is.


This is a long one! In this lecture, we will be wrapping up our upgrades scene by adding functionality to our buttons. You can download the final version of scene_upgrades.lua here.

Section 5: Creating the Game

You'll setup the scene for the game play of Pirates vs. Ninjas.


Pirates vs Ninjas will be using physics for collision detection and you'll add physics in this lecture.


You'll be adding information for images sheets during this lecture. Image sheets, also known as sprite sheets, will be used during the animation of our pirate, ninja, and poof.

You'll be setting up the forward declares which will make programming the rest of the game easier. You can download a copy of the forward declares in the resources section of this lecture.

You'll be setting up the functions that will be used later on in Ninjas vs Pirates. These functions will be blank for now, because you'll be adding the functionality later.


You'll be adding a background, 4 lanes, a ninja, and a pause button.


In this lecture, you'll add the player object, a wall to remove pirates, and a text object to display the amount of money the player has.


You'll be coding your first two functions to allow the player return to the menu and to allow the ninja move between the lanes.


You'll be creating the function for our ninja to throw the shuriken. The shuriken will travel from the ninja to the left hand side of the screen. Get to throwing!


Finally some real action! You'll be creating the function to send pirates towards the ninja.


In part 1 of collision detection, you'll be coding the functions that will respond when the player is hit and when the enemy is hit.


In Part 2, you'll create the function onCollision where the collision detection will occur.


It's time to create the game over function where you will stop the game, remove event listeners and show an interface to allow the player to return to the menu.


You'll be adding the functionality for a pause button. Similar to the game over function, you'll be stopping timers, removing event listeners and showing an interface for the pause menu.


We need to go back into our pause function to correct a couple of things - pausing all enemy sequences, inserting the enemy into the sceneGroup variable, and allowing our pause button to unpause the game.


Thank you for watching my course about developing mobile games with Corona SDK. I sincerely appreciate the time that you have devoted to learning Corona and the time that we have shared together. I would love to hear what you thought about the course so feel free to reach out to me! Thank you again for watching!

The next sections cover adding polish, ad networks, and app store optimization.

Section 6: Adding Polish to Your App

Add some polish to your app by adding in your app icons. You can find all of the app icons for this game in the downloadable resources of this lecture.

In the video, I referenced and


Launch Images is another important step in adding polish to your app. Launch images will be displayed while your app starts up and is a great place for branding or just the app name. Download the launch images for this game in the downloadable resources of this lecture.


Download the final version of Pirates vs Ninjas (without ads) here.

Section 7: Monetization

Implementing ads into your app built with Corona SDK is easy. This lecture is an introduction to the section titled monetization.


Free or Paid? In this lecture, we'll discuss your options about releasing your app as a free or paid application.


You'll find a lot of information about the revmob ad network at This site will also have the downloadable file revmob.lua for Corona. I strongly recommend downloading the latest file from RevMob to make sure your version is up to date. The version I used for this course is 5.5.3.

To create an app id, you'll need an account at It's free and easy to setup. Once you you have your app id, drop them into the code that's shown in this video.

In this lecture, we'll be implementing AdMob ads. AdMob is an ad network provided by Google that allows you to display banner or intersitial ads.To sign up for an account, head over to

Section 8: Publishing Your App
Who Knew Publishing Could Be So Easy?
4 pages
Section 9: Bonus: Getting Graphics and Sounds for Your Games
Free Graphics
Section 10: Bonus: App Store Optimization
6 pages

An introduction to app store optimization. This lecture is a short one, but it gives you direct answers to what ASO is and what ASO is not.

13 pages

We'll go over some of the tools that are currently available to assist you with some aspects of app store optimization.

13 pages

This lecture will describe the differences between Apple, Google, and Amazon. While the lecture does not cover all factors of ranking for each store, it covers the core concepts to get you started with optimizing for these stores.

14 pages

What's in an app icon? Everything. The app icon is the first graphic people looking in the app store will most likely see. You need to make sure the app icon is unique, beautiful, and stands out from the crowd.

17 pages

Screenshots are vital for conversion. Make sure your read through this lecture to get some quick tips on what to do and what not to do with your screenshots.

Generating Keywords
16 pages

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Daniel Williams, Game Developer

The instructor for this course, Daniel Williams, has experience with online marketing, web development, and game development. He's a seasoned veteran with Corona SDK and has been developing apps using Corona's platform for quite some time. Daniel has published over 100 apps under his accounts and several more for clients. These apps have ranged from business apps, such as calculators for engineers and cookbooks for healthy eaters, to game apps, such as word games, educational games, and casual games.

In addition to his game development experience, he's had his hands in all aspects of online marketing such as search engine optimization, content strategies, retargeting ad campaigns, and web development.

Daniel has a passion for teaching and has written a book on Corona SDK. The written book covers the basics of Corona SDK and even goes over the basic game mechanics some popular game genres. Daniel also has written several online tutorials for the community and maintains a blog discussing some how-to's for Corona SDK and PHP. He hopes to share his knowledge with anyone that is willing to listen.

Ready to start learning?
Take This Course