Code Camps
For several years, I taught a week-long game programming class every June for Landry Academy’s academic summer camps in Banner Elk, NC. Students ranged in age from 13 to 18. Most had never written a program before. In just five short days, though, the campers designed and built a working game which they would demonstrate to the campers from the other fields of study on the last day.
Before the Landry camps, I had never taught high school students. My only experience with teaching was as a corporate trainer. I very much enjoyed my annual trips to NC. The enthusiasm and creativity of the students was contagious. It was a nice break from my day job of writing applications for companies and governmental agencies.
Here are the descriptions of the games that came from the campers, along with videos and downloads of their games' sources.
Camp 2011
Angrier Birds
Joe
Instructor
Derek
Counselor
Keith
Student
John
Student
Joshua
Student
Luke
Student
Addison
Student
The class was fairly evenly split between a scrolling shooter (like Defender or 1942) or an Angry Birds clone. We ultimately decided on an original game that combined the two concepts. Four birds (controlled by four players) fly along, shooting pigs with seeds and dropping eggs on them. There are three types of pigs: normal pigs (on the ground and in trees), pig-a-troopers (who parachute in), and the king pig (who tosses baby pigs at you).
The game’s art is a mix of characters from the Angry Birds game, random images we found via Google searches, and some hills that were drawn the night before we gave our class presentation to the students from the other academic areas. All the in-game sound effects were created by the students. I think the effects came out great, and I think they really add a lot to the final game. The music was downloaded from the website of a talented composer who recreated the Angry Birds theme in Garage Band.
Camp 2012
Robot Slayer
Joe
Instructor
Laynie
Counselor
Derek
Counselor
Joshua
Student
Ben
Student
Aaron
Student
Addison
Student
Micki
Student
The game’s art is a collection of doodles that I did in Adobe Illustrator, feverishly churning out assets each evening in an attempt to stay a step ahead of the class. The main character is the result of a tutorial that I followed over at idleworm.com.
Along the way, the students learned about how simple, manageable components of a game are implemented, and how those simpler parts combine to make a more-complex whole. They also learned about the tools that game developers use to create games, and how to trim and prioritize an overly ambitious design to meet a looming deadline.
The plan to make a platformer turned out to be too much work for a week-long project. We cut features, and ultimately decided to turn the project into a survival game.
Camp 2013
Tim Gumchewer
Joe
Instructor
Chelsea
Counselor
Student
Student
Student
Student
Student
This year, the students gravitated immediately to a concept based loosely on Temple Run. Rather than considering other genres, they kept tossing out ideas for the platformer-style game. It was obvious what our project would be early into the process. I keep campaigning for a Rock Band clone, but it never seems to take hold of anyone’s interest. :)
In addition to art I created and images we scavenged from the web, we took video of one of the camp counselors in several poses, including a slow motion roll. The students cut the images from the still frames of the video, and the counselor (hi, Tim!) was our game’s main character.
The game supports two players, each of which has to run an identical gauntlet of obstacles. The player that makes it the furthest distance before losing three health points is the winner. The original design included power-ups and more elaborate obstacles. In the end, we realized that the full game would to be too much work for a week-long project. We cut features, but the end result was still a very nice game.
Camp 2014
Haunted House Crashers
Joe
Instructor
Hanna
Counselor
Student
Student
Student
Student
Student
Student
Student
Student
Lexy
Student
Student
Players travel from room to room in a dungeon, fighting off baddies as they progress. The game supports one to four players -- the difficulty increasing with each player added.
The students had some great ideas. In fact, they kept throwing out new feature concepts every day. Unfortunately, we just have a week. So most of those features fell prey to the merciless chopping block, better known as our deadline.
Rather than moving from room to room, the hoards come to the players in waves. There's a nice mixture of baddies for the player to lob fireballs at, some of which require multiple hits before being banished.
Camp 2015
Beard Bashers
Joe
Instructor
Addi
Counselor
Carlton
Student
Jess
Student
Pierce
Student
Alexys
Student
Lee
Student
Jake
Student
Cage
Student
Luke
Student
James
Student
Aiden
Student
Ian
Student
Lauren
Student
Daniel
Student
Randon
Student
LaMia
Student
In previous camps, I lead the students through writing the code as we went. That meant that we completed features at the rate of our slowest typist. With 15 kids, that wasn't going to work. So, I focused their attention to the screen and we went at a pace that every student could comprehend each added feature, pushing the changes to GitHub at regular intervals so that they could tweak and play with the code to solidify their understanding. This was also the first year that I actually assigned homework each night — an important step in ensuring that they understood the concepts from each session.
We had stumbled upon a great strategy for meeting the incredibly short deadline. The flow was smooth. We actually finished the game by Thursday (the night before the demo) and had time to squash some bugs, add some bells and whistles, and even have a tournament on the last day of camp to see which student would present our creation to the other campers. (Spoiler alert: It was LaMia!)
The end result was a game that could easily be published to one of the many app stores. I'm proud of the work that the students did. Their creativity and willingness to follow through on the implementation made this one of the most enjoyable weeks of camp for me.
Camp 2016
Insomnia
Joe
Instructor
Bobbie
Counselor
Suzanne
Student
Sarah
Student
Dylan
Student
Slater
Student
Andrew
Student
Alyssa
Student
Kyra
Student
Alexys
Student
Declan
Student
Jonathon
Student
Graham
Student
Noah
Student
Ben
Student
John
Student
Richard
Student
As with the previous year, I focused their attention to the screen and we went at a pace that every student could comprehend each added feature, pushing the changes to GitHub at regular intervals so that they could tweak and play with the code to solidify their understanding. With the ambitious goals that we had set for the week, though, I don't honestly feel that I kept the tempo slow enough for everyone (even those without prior coding experience) to keep pace.
This year brought many firsts, some of which caused headaches and slowed our progress. While my instructor feedback from the students was generally positive, many of those bumps in the road were mentioned by the students. Apparently, they didn't go unnoticed. =)
Even with all the technical hurdles and the ambitious design, we still had a playable game ready for the Friday assembly's demonstration. The students contributed almost all the art assets and sounds (whereas prior years were more of a scour-the-web-for-content affair). The end result is a bit unpolished, but it's entirely theirs. I think we built something that they can really be proud of.
I learned a lot this year as well. With larger groups and the use of new techs, I need to provide more structure, I need to "be less chill" (the last couple of years brought some minor discipline issues), and I need to take the time to cover basic programming concepts up front (even if it means less time for the game). I've intentionally kept things unplanned and fluid for six years so that the students could drive every aspect of the game, but that strategy won't work as well moving forward. I hope the students enjoyed the week, and I hope they learned something. But, I'll always feel that they didn't get the best from me because of the hiccups that we encountered throughout the week. Structure, planning, and a bona fide curriculum should allow us to focus on the learning, and give everyone a chance to get their hands on the code.
Camp 2018
C4: A Match Four Game
Joe
Instructor
Alex
Counselor
Jeremiah
Student
Landon
Student
Carsen
Student
Alan
Student
Jeremy
Student
Tristan
Student
Josh
Student
Hanna
Student
2018 saw a reprisal of the camps, though. It had a new name, but it retained all the elements that made the experience so great for the students and teachers. The venue was also different. Instead of driving 6 hours to North Carolina, I drove a mere 4 hours to a remote Alabama campsite. Ultimately, this new year did not lead to a clean reboot of the gathering. This was to be the academy's last event.
The 2018 camp was a lot of fun! I never know what the game will be ahead of time. That's driven completely by the students. This go around, they made a variation of the classic Connect Four game, complete with exploding pieces (and several other power-ups). As with other camps, none of the campers had any experience with programming before attending. We toiled during the week to cross the Friday finish line with another new, playable game, and we demoed it live to the other campers that evening.
This camp gave us all much-needed closure. One last hurrah to wrap things up and say our goodbyes. No new camp was planned for 2019.
Working with high-school kids is a wholly different beast. Their enthusiasm is contagious. Their excitement in seeing each new idea come to life is motivation to keep the chain going. I've missed my time away. When work and life settle down again, I hope to find a new home to explore this facet of training.