Last year I documented the development of several games designed by high school students and college undergrads in a six-week program sponsored by the Department of Education. Over the course of the summer, I mentored seven students and we produced seven board games for education or social impact. Even though there were some bumps and bruises along the way, the students made it to the finish line and learned valuable lessons about design, education, behavior, data analysis, public presentation and working independently. All of the high school students have been accepted to excellent colleges, and the undergrads all went on to produce excellent games in my lab during the year.
Women and ethnic minorities are still greatly underrepresented in technical fields, and providing these students with technical challenges before they get to graduate school should provide them with additional opportunities for success.
This year, I plan to make changes to the program based on our experiences, and I’m blogging about the process to assist any educators who might want to implement game-based learning in their classroom. Three of the undergrads in my lab were accepted to the program, and several others will be participating unofficially. In July, high school students will be admitted to the program, and I anticipate that some will be assigned to work with us as well.
The undergrads have already worked with me for a semester. Each student has designed a project and presented the design at the annual conference for the York College Office of Undergraduate Research. I will present these designs individually in future postings but, for now, I’m going to briefly outline the goals for the summer.
All of the undergraduates have expressed an interest in developing digital games, and we are going to try and make this happen during the summer. None of the students has any experience with coding. Thus, anyone who has ever coded knows that this is an ambitious if not impossible project. However, our goal is only to make a digital prototype by the end of summer, and then we will refine the prototype during the following semester.
Most of the games you see produced for education (e.g., gamesforchange.org) are designed and built by professional teams. On a few projects, students participate in design, but there are relatively few projects where undergrads learn how to code by building a game. Digital games offer an excellent opportunity for students to learn valuable 21st century skills. These skills will help students to design experiments, create stimuli, manipulate data, and communicate ideas during their careers. Women and ethnic minorities are still greatly underrepresented in technical fields, and providing these students with technical challenges before they get to graduate school should provide them with additional opportunities for success. Programming for games is also a great way of learning how to code because, compared to some coding environments where the coder is dealing with abstractions, the game environment provides immediate feedback when the code is correct or not.
I’ve developed a streamlined program to get my students on the path to coding as quickly as possible. Experience has taught me that communication, coordination, and feedback are the most critical elements when working with students. Consequently, we are going to use project management software and agile development (a.k.a., SCRUM) to help us meet our goals. Unlike previous projects where we had a more relaxed pace, we will implement a daily scrum with weekly milestones. My first task was to select team management software in the Google Apps store. We have been using the cloud and Google Apps to exchange most of our design documents. I can say right now that I wasn’t very pleased with the offerings. It was difficult to find an app that was suitable for non-profits and education. Many of the apps were available for free, but finding affordable software for more than five users was a challenge. Many offerings were also too complicated for use with small teams. I decided to go with Teambox because the interface was fairly intuitive, and we could add up to five users for free. Recently, I have used a syllabus for my Independent Study students. The syllabus contains readings, program goals, contact information, etc. The syllabus has proved to be very useful but, for the summer, the syllabus will only be used on the first day. After the first day, the team will move communications and planning to Teambox.
Our team will be using the Unity3d game engine (www.Unity3d.com). There are many game engines available, but I’ll just keep the discussion short by stating that Unity is the clear winner for students learning to code and complete real games. The interface is very organized and intuitive. The coding environment is friendly. The tutorials and documentation are superb. The engine reinforces basic concepts of object-oriented programming. And it publishes to several platforms without a hassle.
Another bit of software that I’ve been using for UML is LucidChart (www.lucidchart.com). UML allows programmers to plan their code before they get buried in the syntax, and LucidChart is an excellent, low-cost offering available via Google Apps. Finally, I purchased subscription to Lynda.com for my students ($29/month). Lynda.com offers a wide variety of technical courses that are better than anything you’d find via Codeacademy or in a MOOC. If you don’t want to purchase a monthly subscription, you can get by with purchasing the courses listed below on DVD for around $25 each.
Knowing full well that most of these tasks will be backlogged, here is the cue so far. Let’s see what happens!
ToDo Backlog Completed
Before Week 1
- Establish a Gmail account, input and share your calendar, create a Google Drive
- Read sections 1 and 2 of the text
- Complete the Basic Human Subjects Program at https://www.citiprogram.org/ and print your final certificate as a PDF.
- Play as many games in the gallery at GamesForChange.org
Week 1 – First milestone
- Accept the invitation to TeamBox via Gmail and view the tutorial (the invitation will be from robertoduncan at the Transformative Games Initiative). Respond to the first task called “Syllabus” in Team Box
- Read the “Aligning Game Development, the Scientific Method, and Learning Outcomes”
- Read the SCRUM reference card
- Download and install Unity3d on your favorite development machine
- Read the Unity User Manual
- Complete the “3D Platformer” tutorial available in the asset store.
- Get acquainted with the Unity Component Reference library
- Get acquainted with the Unity Scripting Reference Library
- Complete the Foundations of Programing: Fundamentals on Lynda.com
- Complete the Foundations of Programing: Object-Oriented Design on Lynda.com
- Learn about the State Machine Pattern (http://unitygems.com/fsm1/)
- Complete the Mechanim tutorial to finish your orientation with the Unity interface.
- Go through the Scripting Overview at http://docs.unity3d.com/Documentation/ScriptReference/index.html