This semester I offered a game programming course. Fourteen students signed up, freshman to seniors. Only one girl. I started the course using Gamemaker with Ben Tyers “Gamemaker Studio Course: Space Shooter – Level 1”. The book walks the reader through making an Asteroids-like shooter game by using the coding language built into Gamemaker. (Gamemaker also has a drag-and-drop programming environment.) The book is intended to be used as a high school level text book so the progression level is supposed to be somewhat gradual. We got through Lesson 3 and I decided to switch to a different language. There was just so much left out of the book it was extremely hard for the kids to do any of the assignments. The book would show the basics of programming but would not give enough on how to use what was learned. I was also not to enamored by the Gamemaker programming environment. Lots of moving parts and not enough “why”. I do think that given enough time to write my own material to add to the book a course could be designed around Gamemaker. It does teach programming with tradition line code but I am not sure the other requirements for building the game using the Gamemaker interface would lead to being successful in other, more tradition languages encountered at the college level.
So we are going with Corona for a while. Corona SDK is a very traditional programming language for making apps and games for Android and iPhones. Corona is just a front end for the language Lua. Corona adds the physics and handlers needed for a touch screen gaming environment. Like Gamemaker, Corona is just 2D games but the coding is much more to my old school liking. I will be using Brian Burton”s “Beginning Mobile App Development with Corona”. Again the book is intended to be a textbook so there are assignments and discussion. Compared to Tyers book the chapters are much more complete with fuller explanations of the ”whys”. Being a more traditional language I think it will lead to a better understanding of other traditional languages like Python and Java. (These two seem to be the big two when it comes to programming in intro college CS courses. Why do I not just teach these two if I am trying to prepare kids for college you may ask? Because making games is fun and the course title suckers the kids into my class. Yes, it is possible to make games with Python and Java but the level of difficulty seems to be a lot higher and the games are not as cool. Some of the students are a bit surprised when they discover making a game involves much more work than playing a game. Surprise!)
I have been working through Burton’s book for the last few days. All I can say is it works. You cannot ask for much more from a book. As can be expected there is a lot of explaining to do to overcome the “assumptions” authors seem to make but so far nothing major.
I am going to do a coding club with 6 – 8 graders for 6 days once a week after school starting this month. I want to do Corona but using the book is out. Just not exciting enough for middle school and a bit dry. So I started digging. Now a good place to dig is the product’s website. I had a successful dig. Under Learn > Getting Started > Create an App is just what a middle school coding club needs. Build this simple little game where you touch the screen rapidly to keep a balloon from touching the floor. The really nice thing about the tutorial is that it explains every line of code. There is a second tutorial on how to build a simple asteroid shooting game and again it is perfect for middle school. It is definitely a step up from the balloon game but not so bad it is going to bury them. Since I do not deal with middle school kids much these little tutorials are going to be life savers. Building little phone app is also a really big hook for when these kids show up at the high school. Sort of an introductory drug.
It is amazing how the number of students increase when you change the name of a course from “Introduction to Python” to “Introduction to Game Programming”. Now I am sure there are some experts out there that will flap their hands above their heads and protest that I am not teaching language X so my students will not be ready for a college programming course. Nope, I am not. I am teaching them why programming is interesting and why it can be fun. That might temp them into a college programming course with a positive look at programming. I do have a book on writing games in Python. There is just something different from writing a number guessing game and writing an asteroids game you can put on your Android phone. Maybe that is just me and every middle and high school kid in the world.
I have been looking at different editors for Corona. I have used Outlaw IDE the most but I notice it has not had an update since 2014 and the company seems pretty dead. I am now looking at ZeroBrane and Sublime Text. Neither is quite as nice as Outlaw for file management (Outlaw is drag and drop) but both are active products. Sublime is definitely the most visually pleasing of the three. I am going to need something easy for 6 – 8 graders to use. “Full featured” usually is not a good thing with beginners. (One of the reasons I like Small Basic is the editor is as simple as a brick. Nothing fancy, just enough to do the job. I was considering using Small Basic for the coding club but writing a phone app that they can actually put on their phone pegs the cool meter to the super cool pin.)
I cannot believe I volunteered to do that 6 – 8 coding camp. I have enough trouble communicating with high school kids. Oh well, it is important to have the occasional social challenge every now and then (besides being married that is).