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)
Joe
Instructor
Derek (Counselor)
Derek
Counselor
Keith (Student)
Keith
Student
John (Student)
John
Student
Joshua (Student)
Joshua
Student
Luke (Student)
Luke
Student
Addison (Student)
Addison
Student

screenshot

|

This collection of students really spoiled me. I couldn't have had a better group to teach for my first year at Landry. They had a contagious passion that made the insane deadline (4 days from concept to demo) achievable. During almost every block of time that the camp had scheduled free-time for the kids, you’d find them in the classroom, hard at work on the project.

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)
Joe
Instructor
Laynie (Counselor)
Laynie
Counselor
Derek (Counselor)
Derek
Counselor
Joshua (Student)
Joshua
Student
Ben (Student)
Ben
Student
Aaron (Student)
Aaron
Student
Addison (Student)
Addison
Student
Micki (Student)
Micki
Student

screenshot

|

We had a brainstorming session on the first day, while we waited for the installers to do their magic, planning what type of game we would build. I was campaigning for a Rock Band / Guitar Hero style game, but the class decided to design a platformer game (ala Super Mario Bros.). A cartoony hero walks around a factory / lab complex jumping on the heads of killer robots to destroy them. There are two flavors of robot: the Hoverbot who quickly floats towards the player, and the Tankbot who moves a little slower, but fires missiles at the player at regular intervals. When a robot is destroyed, it drops a gear (likely) or a heart (less frequently). The player’s score is the number of gears collected.

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)
Joe
Instructor
Chelsea (Counselor)
Chelsea
Counselor
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student

screenshot

|

On the first day, I typically have a brainstorming session with the students while the tools are installing. With past classes, we compile a list of game genres that we might like to explore, come to a consensus on which to implement, then dive deeper into the details of the selected game.

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)
Joe
Instructor
Hanna (Counselor)
Hanna
Counselor
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student
(Student)

Student
Lexy (Student)
Lexy
Student
(Student)

Student

screenshot

|

2014's camp was the largest group of students yet -- 10 teens. After the typical back and forth of brainstorming ideas for our game, we zeroed in on an idea inspired by Castle Crashers.

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)
Joe
Instructor
Addi (Counselor)
Addi
Counselor
Carlton (Student)
Carlton
Student
Jess (Student)
Jess
Student
Pierce (Student)
Pierce
Student
Alexys (Student)
Alexys
Student
Lee (Student)
Lee
Student
Jake (Student)
Jake
Student
Cage (Student)
Cage
Student
Luke (Student)
Luke
Student
James (Student)
James
Student
Aiden (Student)
Aiden
Student
Ian (Student)
Ian
Student
Lauren (Student)
Lauren
Student
Daniel (Student)
Daniel
Student
Randon (Student)
Randon
Student
LaMia (Student)
LaMia
Student

screenshot

|

The largest group yet, and (IMO) the best game yet. On the first day, we brainstormed close to a dozen game ideas. After a little back and forth, we settled on a fighting game which pits camp counselors against each other. Since there are so many counselors, with few distinguishing features, it was decided that art would be a problem. So we move to the idea of having teachers battle each other. After saying it out loud, we realized that might not be a great idea either. We then decided that we would have robots fight to the death for our amusement. We settled on placeholder art featuring vikings — and that's what we ended up using for Friday's demonstration.

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)
Joe
Instructor
Bobbie (Counselor)
Bobbie
Counselor
Suzanne (Student)
Suzanne
Student
Sarah (Student)
Sarah
Student
Dylan (Student)
Dylan
Student
Slater (Student)
Slater
Student
Andrew (Student)
Andrew
Student
Alyssa (Student)
Alyssa
Student
Kyra (Student)
Kyra
Student
Alexys (Student)
Alexys
Student
Declan (Student)
Declan
Student
Jonathon (Student)
Jonathon
Student
Graham (Student)
Graham
Student
Noah (Student)
Noah
Student
Ben (Student)
Ben
Student
John (Student)
John
Student
Richard (Student)
Richard
Student

screenshot

Another ginormous group. The brainstorming quickly zeroed in on a castle crawler kind of game. It was the first year that we've repeated a genre, but the concept was unique, and I was confident that we could get further than the previous year if the students were motivated enough.

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)
Joe
Instructor
Alex (Counselor)
Alex
Counselor
Jeremiah (Student)
Jeremiah
Student
Landon (Student)
Landon
Student
Carsen (Student)
Carsen
Student
Alan (Student)
Alan
Student
Jeremy (Student)
Jeremy
Student
Tristan (Student)
Tristan
Student
Josh (Student)
Josh
Student
Hanna (Student)
Hanna
Student

screenshot

The 2018 game development camp was a welcome return to teaching. Shortly after the 2016 camp, the academy that hosted the summer camps went out of business. I don't know all the details, but it sounded like they had issues with the IRS regarding the categorization of their contractors. It was an unfortunate surprise. The 2017 camp was canceled and I feared that I might never see the old crew again.

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.