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.
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!
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.
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.
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.
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.
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 transition.to().
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.
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.
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 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.
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 docs.coronalabs.com and makeappicon.com.
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.
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 sdk.revmob.com. 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.
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 AdMob.com.
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.
We'll go over some of the tools that are currently available to assist you with some aspects of app store optimization.
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.
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.
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.
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.