Technologies used


Skills acquired

Basic game agent (AI) development, basic game development


During college, I presented many workshops to youth about engineering and technical skills, particularly as a mentor with the Iowa 4-H Youth Tech Team (see my Leadership page for more information about my involvement with the Tech Team). I led them in a workshop about the basics of programming using, an excellent in-browser game development community. I previously used and modified existing games to demonstrate programming concepts. I decided to write an implementation of Pong with the intention of walking the team through creating it on their own, demonstrating new concepts as we encountered them. My implementation (in Quby, a Ruby-based language that compiles to Javascript) uses global variables, local variables, three objects, a main event loop, conditional branching, simple physical modeling, and a simple pseudo-AI. Beginning with making a ball bounce around inside a rectangle, this is a fun way to introduce programming to youth that allows them to take ownership for a small project and have a tangible result upon completion. I wrote this implementation from scratch (including the simulated player concepts) in one sitting (about six total hours). While it’s not perfect, it’s completely functional and easy to understand. You can play it below and visit my PlayMyCode page to view my code and even make your own modifications if you like. I was happily surprised to see that I received a mention from the PlayMyCode site developers in their official blog for my game and its use in education.

Finally, the slightly more mysterious Curtos has also been using Play My Code as a teaching aid, having created a basic yet nicely-written, fully commented Pong game for his class of high schoolers. Do check it out if you’re learning the ropes, as it’s a very good example with plenty of room to take things further- fork it and see what you can do. In fact, this was used as the basis of another of @teknoteacher’s lessons.