Almost everyone writing software in their mid twenties got started because they wanted to make video games. Games are engaging. The best games push on your imagination and critical thinking the same way a good book does. Games are a good place to get kids interested in programming because they're very visual, feedback is immediate, and they're software the kids can understand and build to their own desires. Moreover, kids can share games with other kids. There's nothing more motivating as a game designer (or software developer) than seeing someone use your work.
With all that, games are hard. Games are the absolute hardest software to write for a lot of reasons. This class is going to be challenging for students and mentors, but it's also going to be really rewarding.
The computer of today's youth is the mobile device. Young kids and by extension prospective early coders are far more likely to have regular access to a mobile phone or tablet than a laptop computer. Furthermore, mobile devices are portable and encourage sharing by their ease of transfer and basic interface. Anyone who writes a game for a mobile device can hand that to their friend much more readily than they can share a computer program.
We know we want mobile and we know we want games. From the above sections we see the challenges to amortize are cross-platform compatibility and ease of development. Of all available options for game development, Corona SDK is the most suitable for this course.
- Corona uses a very simple programming language that is popular in the games world (Lua)
- Corona supports Android and iOS devices
- Corona is simpler than Unity, at the cost of some power
- Corona projects are easier to distribute and extend
There are reasons to do Unity-based programming both mobile and desktop in other classes but for now I think Corona offers more if we want to keep teh class accessible to younger students such as the ones we've been getting at Coder Dojo.