Develop cross-platform mobile games with Corona using the Lua programming language! Corona is experiencing explosive growth among mobile game developers, and this book gets you up to speed on how to use this versatile platform. You’ll use the Corona SDK to simplify game programming and take a fun, no-nonsense approach to write and add must-have gameplay features. You’ll find out how to create all the gaming necessities: menus, sprites, movement, perspective and sound effects, levels, loading and saving, and game physics. Along the way, you’ll learn about Corona’s API functions and build three common kinds of mobile games from scratch that can run on the iPhone, iPad, Kindle Fire, Nook Color, and all other Android smartphones and tablets.
Get a crash course in cross-platform mobile game programming using the Corona SDK. Corona, one of the easiest to use mobile gaming platforms, makes this often-difficult process both quick and easy to master.
Even if you have little previous programming knowledge, you’ll feel comfortable as we begin with fundamentals before building examples of the most common kinds of games on the market today. You’ll develop arcade, side scroller, and tower defense games from start to finish, and Corona will automatically turn them into apps that can run on both iOS and Android devices. These finished apps can be used as ready-to-go frameworks for your own future projects. You’ll learn how to write clean, easily maintainable, easily expandable game code, and to create online leaderboards for your games. You’ll also find out how to make money with games: enabling in-app purchases and in-game ads as well as how to get apps into the iTunes App Store, Google Play, and the Amazon Android Marketplace.
This book focuses on getting quick and effective results. Every page teaches by example and explanation, not with abstract lists of functions and variables. By the time you’re done, you’ll have learned most of what there is to know about mobile game programming and about the Corona SDK.
Q&A with Silvia Domenech, author of Create Mobile Games with Corona
Q. Why did you write Create Mobile Games with Corona?
A. When I started programming, I had access to lots of books for traditional programmers that taught the basics (loops, classes, etc.), but then they moved on to topics that aren’t really necessary for game development. I wanted to make games, so learning how to code yet another phone agenda or scheduling application wasn’t really interesting to me.
I did read game programming books, but many of them felt like university lectures: Here’s a detailed description of the theory; learn to apply it by yourself. Good luck. That was really frustrating, and it made learning slower than reading online forums that had applied examples.
Many years later, I stumbled upon a Pragmatic book, and I instantly fell in love with it. I thought, “If somebody uses this style to write about game programming, everyone will be able to learn!”
I waited, and waited, and waited, but no Pragmatic game programming books appeared. During my wait, a few friends and acquaintances asked me how they could learn to make games, and I couldn’t point them to a hands-on resource. I decided to write the book then, in order to help my friends and anyone else who wanted to learn to code games with Corona.
Mobile games are really popular right now, so it is great to be able to teach how to code games using an easy-to-learn engine like the Corona SDK.
Q. What does Corona offer mobile developers that other systems don’t offer?
A. First of all, Corona makes coding very quick and easy. Many programming languages require you to use extra libraries (or write your own code) to handle common game-related functions such as sprite management or collision detection. Coders can write one or two lines of code to get many game-related things done in Corona, so it really reduces development time.
Corona also comes with lots of resources: documentation, tutorials, and even forums. This is great, because it means that you won’t be alone when coding. Have you found a bug in the Corona compiler? Somebody may have posted about it in the forums. Do you want to code something but it doesn’t work? See if there’s a walkthrough for it. Other languages don’t have so many resources.
Apart from those two advantages, Corona makes it easy to port an iOS game to Android or vice versa. Writing game code twice to use it on two platforms can be boring, and Corona solves this by giving us developers an environment that builds on both iOS and Android.
Q. What kind of games would I be able to make with this book?
Ideally, this book will teach you the basics of Corona so that you can move on to make any game you like. Since we’re making games from the start, we’ll learn how to load and draw images, make them move, and interact with them. Then we’ll move on to more complex topics, like making units find their way around the screen, adding sound effects, and loading and saving data.
The book is divided into several projects so that you can work on more than one game from scratch. You can make a planet defense game, a vertical-scrolling shooter, a tower defense game with pathfinding algorithms, and a physics-based app with advertising and in-app purchase options. That’s roughly the core toolset that any aspiring game programmer will need.
Q. What do you suggest I look at next after this book?
I suggest looking at furniture catalogues to find a comfortable chair to sit on! Oh, you already have one of those? Great! Then you’re ready to learn some advanced game development topics, such as advanced physics, multiplayer games, and even game balancing.
To learn physics, you can take a look at the Box2D documentation (it’s the physics engine used in Corona). You can learn about gravity, velocities, different types of collision handling, constraints, and many other topics that can let you make complex physics-based games.
Once you start making games, if you haven’t already made games in other languages, you might also need to get used to game balancing. It’s important to make games challenging but not too challenging, and learning how to balance your games will help you along the way.
If you want to take your learning to the next level, you can look for books or resources on multiplayer game programming. The good part about multiplayer programming is that you can code the server using any language. I personally code many of my multiplayer servers using Java, which makes it quick and easy to code a server from scratch. Corona lets you open sockets to communicate with a server, so it can be lots of fun to make anything ranging from a multiplayer version of tic-tac-toe to a complex MMO. I’d suggest starting with tic-tac-toe or another simple game, though!
Table of Contents
Part I: Getting Started
Chapter 1. Hello, Corona!
Part II: Planet Defender
Chapter 2. The Game Loop
Chapter 3. Sprites and Movement
Chapter 4. Input and Menus
Part III: Vertical-Scrolling Shooter
Chapter 5. Representing Movement and Perspective
Chapter 6. Adding Shooting, Collisions, and Power-Ups
Chapter 7. Adding Sound
Part IV: Tower Defense
Chapter 8. Displaying Maps and Sorting Depths
Chapter 9. Adding Movement and Artificial Intelligence
Chapter 10. Loading and Saving
Part V: Physics and Distribution
Chapter 11. Physics and the Accelerometer
Chapter 12. Publishing Our Apps
Appendix A1. Corona Resources
Appendix A2. Classes in Corona