Corona

coronasdkCorona SDK is a software development kit (SDK) created by Walter Luh, Founder of Corona Labs Inc.  Corona SDK allows software programmers to build mobile applications for iPhone, iPad, and Android devices.

Corona lets developers use integrated Lua, layered on top of C++/OpenGL, to build graphic applications. The SDK does not charge per-app royalty or impose any branding requirement, and has a subscription-based purchase model.

Walter Luh started Corona Labs after departing from Adobe in 2007. In June 2009, Luh released the first Corona SDK beta free for early adopters.

In December 2009, Corona Labs launched Corona SDK 1.0 for iPhone. The following February, the Corona SDK 1.1 was released with additional features.

coronaIn April 2010, the Corona SDK 2.0 beta was released. Corona 2.0’s definitive new feature was cross-platform support for iPhone, iPad, and Android devices. Later that month, Corona Labs announced a beta for Corona Game Edition, which includes a physics engine and other advanced features aimed specifically at game development.

In January 2011, Corona SDK was released for Windows XP and newer, giving developers the opportunity to build Android applications on PC.

 


Developed with Corona

Burton, Brian G. Ed.D. (2011) Beginning Mobile App Development with Corona, Burtons Media Group

Download eBook PDF (PDF 3,069KB)

Download Source Code (ZIP 13,427KB)

Visit web site at:  http://www.BurtonsMediaGroup.com

Corona SDK allows the mobile app and game developer to create for multiple platforms at the same time.  With the ability to develop for Apple iOS and Google Android, you can turn your idea into the next best selling app! Create apps in less time for multiple markets and mobile devices without tedious rewriting.  Includes multiple app examples and how to make top-down and tower defense games!
Beginning Mobile App Development with Corona
is designed to be used as a textbook in college or advanced High School course.

Chapters:

Chapter 1: Hello World: Setup and Get Going!

What this book is not
Getting Started
Corona: Some background
Software: Corona
Software: Android
Examples and Graphics
Software: iOS
Development Hardware: Corona
Development Hardware: Test Devices
Android
iOS
Publishing Considerations
Android (Google)
iOS (Apple)
Programming in Corona: Lua
Programming in Corona: Editors
Configuring Corona
Macintosh
Windows
Programming in Corona: Hello World (V1.0)
Project 1.0: Hello World
Project Setup
Project 1.1: Hello World (v2.0)
Objects
Summary
Assignments

Chapter 2:Buttons and Text

Know your Boundaries
Project 2: Button Fun
Functions
Project 2.1: Button Fun V2
Getting Fancy!
How Corona reads your main.lua file
Summary
Assignments

Chapter 3: Animation, Alpha & Orientation

Project 3: Basic Animation
Now You See It, Now You Don’t
Project 3.1: Alpha Fun
Orientation change
Project 3.2: A New Orientation
Summary
Assignments

Chapter 4:Fill in the Blanks

TextField
Project 4: Simple Calculator
Device Builds
Apple iOS
iOS Simulator Build
Apple iOS Device Build
Android OS Device Build
Summary
Assignments

Chapter 5: All Things Graphic

Vector Graphics
Project 5: Vector Shapes.
Bitmap Graphics
Resolution
Scaling
Masking
Sprite Sheets
Project 5.1: Uniform Sprites
Project 5.3 Sprite Animation
Sprite Control Methods
Sprite Properties
Sprite Event Listeners
Other Uses of Image/Sprite Sheets
Summary
Assignments

Chapter 6: User Interface

Resources
build.settings
config.lua
Dynamic Content Alignment
Dynamic Image Resolution
Adding Sound
Sound File Types
Timing Is Everything
Streams and Sounds
Project 6.0: Beat-box
config.lua file
build.settings file
Custom Fonts
Project 6.1 Custom Fonts
Summary
Assignments

Chapter 7: Application Views

Hiding the Status Bar
Groups
Project 7: Group Movement
Modules and Packages
Project 7.1: External Library
External Libraries
Composer
Project 7.2: Creating a Splash Screen
Summary
Assignments

Chapter 8: Phun with Physics

Turn on Physics
Scaling
Bodies
Body Types
Density, Friction, and Bounce
Body Shapes
Body Properties
Body Methods
Project 8: Using Force
Gravity
Ground and Boundaries
Project 8.1: Playing with Gravity
Collision Detection
Sensors
Joints
Common Methods and Properties for Joints
Project 8.2: Wrecking Ball
Trouble Shooting Physics
Summary

Assignments

Chapter 9: Creating a Game with Corona

Game Design
Dragging Objects
Collision Detection
Take Your Best Shot
Reducing Overhead
Game Loop
Summary
Assignments

Chapter 10: Star Explorer Continued

Configuring the App for Multiple Device
Splash Screen
Improving Performance
Varying Difficulty
Increasing Game Speed
A Little Variety
Summary
Assignments

Chapter 11: Media Makes the World Go Round

Working with Sound
Basic Audio Controls
Duration Audio Controls
Volume Controls
Audio Channels
Sound File Types (Revisited)
Where did I put that file?
Multimedia API
Recording Audio
Project 11: Simple Audio Recorder
Video Playback
Camera
Project 11.1 X-Ray Camera
Summary
Assignments

Chapter 12: File Storage & SQLite
File IO Considerations
Reading Data
Implicit vs. Explicit File Manipulation
Implicit Read
Explicit Read
Writing Data
Implicit
Explicit
JSON
Project 12: JSON Read & Write
SQLite
LuaSQLite Commands
Project 12: Reading a SQLite Database
Project 12.1 Writing to a SQLite Database
Summary
Assignments

Chapter 13: Waiting on Tables
Table vs. Table: Clearing up the Confusion
Tools for Tables
Project 13: Creating a Simple Table View
Project 13.1:  Table View From SQLite
Summary
Assignments

Chapter 14: It’s Who you Know: Networking
Web Services
HTTP
Project 14: Picture Download – Via Network Library
Socket
Project 14a: Picture Download – Via Socket Library
Tracking Network Status
Uploading to a Webserver
3-Tier Architecture
Post Example 1: Uploading Form Data
Post Example 2: Uploading Files or Images
Connecting to Proprietary Networks
Facebook
Facebook Example
Advertising Networks
Game Services
Apple Game Center
Google Play Game Services
Pubnub
Project 14.1 Multi-User App
Summary
Assignments

Chapter 15: Working with Widgets & Popups
Mock-ups and pre-design tools
Widgets
Making Your Widgets Look Good
widget.newButton
Project 15.0 widget.newButton Example
widget.newPickerWheel
Project 15.1 widget.newPickerWheel Example
widget.newProgressView
widget.newSlider
Project 15.2 Widget Slider & Progress View Example
widget.newScrollView
widget.newSegmentedControl
widget.newSpinner
widget.newStepper
widget.newSwitch
widget.newTableView
Project 15.3 Widget.newTableView Example
widget.newTabBar
Project 15.4 Widget Tab Bar Example
Removing Widgets
Web Popups
Web Popup Example
Summary
Assignments

Chapter 16: Rotten Apple – a Tower Defense Game

Rotten Apples – Inspiration and Resources
Adding Sprite Animations
I Need a Map!
Two Roads Diverged
Space, The Final Frontier
Rat Race.
On Your Mark
Reducing Collisions
Collision Worksheet
Take the Shot – Taking Care of Collisions
Are We There Yet? – adding the clubhouse
Adding Towers: Dragging Towers to the Screen
What’s the Score?
Let’s Get this Game Going!
Closures
Initialization
Loop-De-Loop!
Level and Wave Control
Noises Off!
Suspense is Killing Me!  – adding suspend/resume/save options
It’s a Splash – add splash screen
Summary
Assignments

Chapter 17: System Events & Tools

System Events
Accelerometer
Project 17.0 Accelerometer
Gyroscope
Project 17.1 Gyroscope
Alerts
GPS
Project 17.2 GPS
Maps
Map Object
Map Address
Map Location
Project 17.3 Maps
Summary
Assignments

Chapter 18: Graphics 2.0

Chapter 19: Additional Resources

Useful Websites
Free Isometric images
Music
Sound effects
Tutorials

Appendix A: The Lua Language

Appendix B: Advanced Lua

Learning Lua
(http://www.burtonsmediagroup.com/blog/)

The Lua scripting language has been rapidly gaining in popularity over the last several years.  It is now the core of many popular tools including (but not limited to) Corona SDK, Amazon LumberyardAutodesk Stingray, and WoW.

For experienced programmers, a great resource for learning Lua is the official guide Programming in Lua. There are also some great resources on the Lua.org

This tutorial uses the ZeroBrane IDE for all Lua examples.


Activities:

 

 

Star ExplorerStar Explorer Files

 

Wrecking Ball Graphics

 

 

 

 


Fernandez, M., M. (2011) Corona SDK Mobile Game Development – Beginner’s Guide – Create monetized games for iOS and Android with minimum cost and code, Packt Publishing

A more recent version of this book is available

Download eBook PDF (PDF 7,487KB)
Download Source Code (ZIP KB)

You don’t need to be a programming whiz to create iOS and Android games. You just need this great hands-on guide to Corona SDK, which teaches you everything from game physics to successful marketing.

Corona SDK is the fastest and easiest way to create commercially successful cross platform mobile games. Just ask Robert Nay, a 14 year old who created Bubble Ball – downloaded three million times, famously knocking Angry Birds off the top spot. You don’t need to be a programming veteran to create games using Corona. Corona SDK is the number one tool for creating fun, simple blockbuster games.

Assuming no experience at all with programming or game development you will learn the basic foundations of Lua and Corona right through to creating several monetized games deployable to Android and Apple stores.

You will begin with a crash course in Lua, the programming language underpinning the Corona SDK tool. After downloading and installing Corona and writing some simple code you will dive straight into game development. You will start by creating a simple breakout game with controls optimized for mobile. You will build on this by creating two more games incorporating different features such as falling physics. The book ends with a tutorial on social network integration, implementing in app purchase and most important of all monetizing and shipping your game to the Android and App stores.

What You Will Learn

  • Optimize your game for mobile using touch and accelerometer
  • Add sound and music to your game
  • Master game physics such as collision detection
  • Add achievements and leaderboards with OpenFeint and Game Center
  • Monetize your game with in app purchase and advertising.
  • Make your game socially aware by sharing messages and scores on Facebook and Twitter.

Table of Contents

1: Getting Started With Corona SDK
2: Lua Crash Course and the Corona Framework
3: Building our First Game: Breakout
4: Game Controls
5: Animating our Game
6: Playing Sounds and Music
7: Physics: Falling Objects
8: Operation Storyboard
9: Handling Multiple Devices and Networking your Apps
10: Optimizing, Testing, and Shipping your Games
11: Implementing In-App Purchases

You will learn by doing. First a brief crash course in Lua and Corona. Once this is done you will be thrown straight into creating fully functional complete games chapter by chapter. Certain chapters are reserved for adding advanced features such as multiple device integration, social networking and monetization. This book is for anyone who wants to have a go at creating commercially successfully games for Android and iOS. You don’t need game development or programming experience.