Aimed at beginners, this video tutorial course will guide you through the creation of your own game for iOS or Android.
The Solar2D framework used for this course is one of the most powerful 2D game engines available, and it's completely free so 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.
Aimed at beginners, this video tutorial course will guide you through the creation of your own game for iOS or Android.
The Solar2D framework used for this course is one of the most powerful 2D game engines available, and it's completely free so 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.
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.
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.
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)
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.
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.
Not always necessary in game development, but it comes up more often than you might think.
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.
This video shows how to use anchorX and anchorY in the sample code instead of setReferencePoint(). This is a must view.
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: http://developer.coronalabs.com/content/files
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.
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: http://docs.coronalabs.com/api/library/storyboard/index.html
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.
You've seen how to animate an object on the screen using transition.to() 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
Our Froggy sample game isn't really a physics-based game, so I took a little detour to show you how easy physics games can be. The sample code for raining frogs could be turned into a fun game.
We do add some physics to our main game as a way to use "collision-detection" -- or being able to see when one object hits another.
While most people think of widgets as only being useful for business-type apps, in this series of videos I’ll show you how they can be awesome additions to games, too.
Here’s a link to more info about widgets on the Corona Labs site: http://docs.coronalabs.com/api/library/widget/index.html
Have you reached this far? Cool! Because it means you’ve been exposed to enough coding info that you should be able to start writing your own (simple) games.
Notice I didn’t say you’ve learned, but you’ve at least been exposed. Sometimes we blank out while watching a video, or it’s on in the background and we hope it’s seeping in anyway. Watching the videos more than once isn’t just a good idea, it’s almost a necessity (depending on whether you’re a complete newbie or not).
This section of the course is going to be a little different — the first video is a step-by-step look at creating different kind of levels for the Froggy game.
I’m including them for two reasons. Number 1, to give you something to stretch for. These are techniques you’ll end up using (in one way or another) throughout your game development career/hobby. And number 2, you’ll be able to download the code for the real Froggy game and go through the actual source and grab those chunks of code for your own game. Some will be relevant, some won’t, but you’ll be able to start a “toolbox” of routines you can use over and over again.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.