Protect the Hatchling
Protect the Hatchling is a multi-player game designed for kids under the age of 12 specifically. Through this game, we want to raise their awareness of protecting the environment and endangered animals.
Conception & Design
Protect the Hatchling is a multi-player game designed for kids under the age of 12 specifically. Through this game, we want to raise their awareness of protecting the environment and endangered animals. Nowadays, with the increasing pollutions, many animals' lives have been threatened. However, many people remained completely innocent about this fact. In this game, the kids will aim to help the hatchling to the ocean without being hunted by birds and at the same time collect bottles on the beach. Through this game, we wish to let them experience in an immersive environment how difficult it is for a baby turtle to survive in nature. Also, at the same time, since this is a multiplayer game, we also wish to practice the kids’ collaborative skills. With this game experience, the kids can understand the importance of protecting animals and the environment.
This project is inspired by my research on another interactive immersive project named “Arctic Sea” produced in 2009 by Scott Snibbe. This project immerses the users in the Antarctic pole to help the endangered polar bears survive under climate change. They will need to use their bodies to cover the sunlight appearing on the screen so that the ice won't melt. Similar to what Arctic Ice did, we want to create a similarly immersive experience to remind people how important it is to sustain our environment so that other species can coexist with us. Like Snibbe did in his project, we also want to uses human movements, human voices, etc. as input to make an interaction with the computer.
Similar to users in the "Arctic Sea”, users in our project Protect the Hatchling will also perform a "protector" role to help the baby turtle back to the sea. In order to enhance the idea of protecting, we create the predators(birds) as the enemies that will kill the baby turtle. The users need to do something to keep the enemies(birds) away. Initially, we planned to design a "shooting" function so that the users can kill birds, thus preventing the baby turtle from being eaten. However, later, we realized that it is immoral to kill birds for protecting turtles since birds are also live. Therefore, we changed the "shooting" function into a "scaring away" interaction. In the real-life, we usually shout at animals to scare them away. To imitate this experience, we use a microphone to detect voice input. Users need to input voice into the microphone to keep the birds(enemies) that will fly down away from the turtle.
Apart from the "scaring away" interaction, we also add a user function to enable users to control the movement of the baby turtle. Initially, we did not plan this "controlling" interaction. In our original plan, we only planned to make the turtle moving by itself. However, later in our user testing session, we realized that it might be better to enable users to control the movement. This is because one of our purposes is to let children experience how difficult it is for a baby turtle to survive in nature. Therefore, if we can let the users make effort to move the turtles, they can understand the difficulties of turtle migrating better. With this idea, we designed a mock beach which the user can stamp on. The faster he or she stamps, the faster the turtle can move. to achieve this interaction, we actually use a vibration sensor to detect the stamping of the user. We designed it this way is because we hope the users put into the effort to move the turtle. Later in the user testing session, it turns out to be a good design appreciated by many of our classmates. They all felt that the experience of moving turtles by stamping on the beach takes many efforts so that they get to know how hard it is for a turtle to move and migrate.
For the last user function, we designed a "trash-collecting" interaction. This matches our goal of raising users' awareness on protecting not only animals but also our environment as a whole. Since this is another concept, we divide this task for player 2. Basically, player 2 needs to use the trash collector to aim at the trash(obstacles) on the screen to do a “laser-shooting”-like interaction so that the trash(obstacles) can be removed.
In our user testing session, one of the biggest problems confronted by users is that they don't know which functions they should use and which parts do the functions specifically control. To solve this problem, we begin by telling users that this is a multi-player game (requiring two players to collaborate). Also, we distribute specific roles to each player so that they won't be confused by which parts they should control:
With the distribution of tasks, player 1 will control the microphone and mock beach to ensure the safety of the baby turtle (animal protection). player 2 will control the trash collector to collect trashes (environmental sustainability). As you can see, different players' functions are for different purposes. We think this division of task make the game clearer and easier to understand.
Fabrication & Production
To add aesthetics to our animation, we searched the designed characters images on a professional game design website: http://opengameart.org/
While writing the codes for this game, we met many problems. The first one is to implement the "hunting" function for birds. Since we have created more than one bird (multi-enemies), we need to make them move together at the same time and all target the position of the turtle. To do so, we initialize an array to store all birds' positions. Also, to generate each bird in a different starting position, we use the random() function. The most difficult part is to make sure that birds always target the position of the turtle. Therefore, we use the dist() function to detect the distance between the turtle and each bird and adjust each bird's speed and direction according to their distance difference.
The next problem we met is to design the fabrication for the mock beach. In the beginning, we want to use a pressure sensor instead of a vibration sensor to detect the stamping of users. However, the pressure sensors are all lent out by other classmates, so we switched to a vibration sensor. But I still have to admit, if we can get the pressure sensor, it is better to use a pressure sensor for the interaction we are aiming for. Initially, we only paste a plate on top of the vibration sensor. However, in the user testing session, my classmates point out that this design makes users very confused about why they need to stamp on the plate. Also, it is very easy for the user to accidentally stamp on the vibration sensor pasted below and break the whole circuit. To improve the user experience and enhance the theme of our game, we purchased an inflatable cushion and fill it with colored sand. We also put a toy turtle on the sand as a hint for users that they can control the turtle with the mock beach. For the sensor, we pasted it down below our cushion to prevent it from being damaged.
Probably the most difficult one we met is the laser-shooting effect of the "trash collector". To achieve this interaction, we used a camera to capture the targeted color and reflect the position on the screen. However, since the size of our camera is not compatible with the computer, the reflected dot can only be moved within a small range on the screen. Also, it is not very sensitive. To deal with this problem, we used the map() function to resize the camera's size. In this way, it can make sure that the reflected dot can move around anywhere on the screen.
In conclusion, I think our project did achieve the educational goal to teach children the importance of protecting animals and the environment. During the testing session and exhibition, most of our users and audiences identify this goal. However, there are indeed some details that can be improved. For example, in our goal, we wish to also enhance the collaborative skills of children. However, many of our users point out that they have no idea it's a multi-player game and they also don't know how to collaborate before we introduced this game. To improve this part, I think we can redesign the beginning of the game by showing some instructions. Also, we can specifically distribute tasks to each player( Let player 1 control the microphone and mock beach, player 2 control the trash collector). Also, another thing we can improve is to enhance the educational goal at the end of the game. After the game ends, we can show a few sentences on the screen describing the increasing mortality of baby turtles and the increasing pollutions nowadays. After the immersive experiences, these sentences upheave the educational value and make the experiences reach a peak. Except for this problem, we also should add a function on the trash collector. For now, whether the user collects all the trashes or not does not affect them to win or lose the game. However, protecting the environment through collecting trashes is one of the key points in our game. To highlight this point, we need to add a win() or lose() function on trash: so if the user does not collect all the trashes, the turtle cannot go back to the sea.
All in all, my take-aways from this project is that an interactive project is not only about making products. To be more specific, the goal of our project is not just to make an educational game for children. Instead, it's more about creating an experience and let users figure out themselves in an immersive environment. Applying this concept in our project, what we should aim for is to create an immersive experience for kids to make them figure out that they have the responsibility to protect animals and the environment rather than having fun in the game. In a word, I learned that a good interactive project doesn't need too much explanation beforehand, but will explain itself when users interact with it, since users are also part of the project, to contribute, to interact, and to feel.