In Fall 2019, a number of Learning Lab graduate fellows started off the year by learning the basics of Unity, a platform designed to create 3D virtual reality and augmented reality games. We were interested in exploring the possible uses of Unity in classroom assignments, whether as an exploration of 3-dimensional spaces like museums, or as a mode of designing new ways of storytelling.
But we ran up against a challenge when we sought to explore the core capabilities of Unity: the tutorials available on the web and through Unity were long and complex, involved downloading large packages of assets that were often incompatible with the latest Unity software, and included instructions that might not be relevant to the use of Unity in the classroom setting. We therefore decided to devote time to creating tutorials that were designed around the core skills that students would likely be required to use if completing an assignment with Unity. Importantly, we wanted each tutorial to be short and to showcase one main skill, so that students could find exactly the help they needed to complete their assignments.
Before approaching tutorials involving code, we created a short tutorial to familiarize students with the Unity interface. Even from the very beginning, we wanted students to experiment with the platform through creative means. We designed a tutorial called "Castle in the Sky" that teaches students about the user interface. Students should come away with basic tools for transforming the scene, manipulating the camera, and adding objects. At the end, they will have also designed their own environment, a "castle in the sky".
Next, we wanted to teach students about different ways that they might add an avatar or controller to their scene; that is, the mode by which a player will interact with the virtual reality environment. First, we instructed students how to access the controllers that are available in Unity's Standard Assets package, which is available for free.
The avatars available in Unity's standard assets program come with a complex set of features. So we also wanted students to learn how to make a more simple controller on their own, using C#. This tutorial offers tools for turning any game object into a controller with simple movement capabilities. It also allows students to become familiar with the way that directionality (what is forward, backward, left and right) in Unity depends on the position of the camera. In certain scenes, the camera might be in the first person perspective of the avatar; in others, the camera may occupy a 'birds eye view' that is separate from the controller. Thinking through these distinctions is not only essential for designing games in Unity, but also provides a way of visualizing distinct modes of storytelling.
For the next set of tutorials, we wanted to focus on the specific capabilities of Unity that distinguish it from other 3D programs. In particular, we wanted to highlight, through several tutorials on basic coding, the distinct interactive capabilities of Unity. First, we designed tutorials instructing students how to create effects when the Keyboard keys are pressed. This type of interactivity would be helpful if a student wanted to move a controller through a museum space using arrow keys, or to offer a series of sequential instructions to a player that could be accessed by pressing the spacebar.
First, we developed a tutorial instructing students how to print a message with the spacebar.
Then, we offered an additional tutorial on how to move an object with the arrow keys.
Third, we offered a tutorial on how to change the size of an object with arrow keys.
Finally, we created a tutorial teaching students how to spawn a new object with the space bar.
In order to offer students skills by which to interact more directly with their scenes, we also developed tutorials using the mouse. This type of interactivity might come into play if a student were to include explanations for distinct parts of a scene that could be accessed with a mouse click on a particular object, or if a student wanted the player to make design decisions about the space from within the game.
In the first tutorial, we instructed students how to print a message with a mouse click.
Then, we developed a tutorial instructing students how to change the color of an object using a mouse click.
In our final stage of tutorials, we wanted to teach the basics of interactions that can occur within a scene, when one object collides with another. This type of interactivity might be useful for students hoping to create certain scenes that would respond to a player's movement and location.
First, we taught students how to print a message when a controller comes near an object.
Then, we taught students how to play sound when a controller comes near an object.
While there are tools and skills repeated between these different tutorials, the idea was to provide a database of short, accessible guides. This way, students working on an assignment in Unity can learn the precise actions and codes required, and move on quickly to the substance of their project.