Gardenfall

Video game designed and developed using Processing (Java) and an Arduino

GitHub

For my final project for my Introduction to Interactive Media class, I decided to create a game that combines physical user input from an Arduino controlling a video game that I created in Processing.

Premise & Gameplay

Gardenfall is intended to be an educational experience about the environment and human history. The game starts with a player in a forest, the style and POV of which is similar to an early Pokemon game, and the player is able to navigate an enviroment populated by resources and animals. The player must walk around and chop down the trees, which will be “chopped” down to make a vehicle. Several resources must be chopped down in order for the player to complete the construction of the object for the respective stage. The player can also interact with the animals, who will react positively initially. Once the first object is completed, the player is taken to another stage with a different biome, and they are tasked with harvesting resources for more complex and modern vehicles and objects. However, as the player moves on to the other stages, interacts with more animals and constructs more vehicles, the environment reacts more and more negatively, with the animals becoming hostile and the landscape burning and becoming desolate. Eventually, the player is left alone on the planet, unable to exploit the enviroment for their seemingly trivial pursuits and the game ends.

A large emphasis on my design and development of this game was the user experience. I initially intended for users to interact with the environment using just a simple physical momentary swtich / button. However, I wanted users to be able to physically interact with inputs and see their movements and actions result in game progression. This led me to create three inputs: the traditional X-Y joystick controller, a force sensitive resistor that would be attached to a sound block, and lastly, a stuffed dog with conductive thread stiched onto the top of its head to detect if users pet the animal. I will discuss these further in the "User Experience" section below.

Gardenfall is a video game about the environment and the conflicting and difficult tradeoffs humans must deal with when living their lives in harmony with nature. This give and take is the real point of this project, the difficulty in navigating the line between fulfilling our technological desires and leaving the Earth a desolate place. Initially, humans' requests were innocent and driven by a genuine desire to communicate, trade and understand the world around them. This is shown in the game through the construction of the train and the airplane. However, as these desires are fulfilled, humankind wants to create more superficial and unnecessary objects, like the smartphone and fan. I personally view the smartphone as an example of an object that is a double-edged sword, allowing us to communicate with anyone at anytime from nearly anywhere on the planet for a low cost. But the smartphone is, to me, a symbol of our superficiality and our ability to curate our portrayal of ourselves online. I intended this object to be symbolic of a transition, an object that provides benefits but also leads us astray into vanity, isolation and selfishness. The final object constructed is an electric fan that can plug into a smartphone, which I intended to be a symbol for laziness and as an object that provides little benefit to the human, attempting to cool himself from the increasingly hostile environment but doing so in a way that is futile.

Below are screenshots of the four stages and the outlines of the object the player must construct through harvesting the resources of each stage.

User Experience

As stated above I had three physical inputs: a X-Y controller, a stuffed dog with conductive thread and a wooden surface with a force sensitive resistor attached.

The stuffed dog with a conductive thread receives an analog input. When a person touches the thread stitched into the dog's head, an analog signal was transmitted into the Arduino. Touching the stuffed animal's head would result in the player interacting with the animals in the game. Initially, the animals would react positively to the player's interactions, causing a 'ding' sound to play as well as a heart to appear beside the animal. However, as the game progresses and the player takes more resources from the environment, the animals flee from the player and at the final stage, will die if the player pets the animal while they are fleeing from the player. This was the part of the game that got the most positive feedback, with users loving that they could interact with the stuffed dog and see their character interact with animals in the video game.

The force sensitive resistor attached to a block of wood is intended to be struck by the user to harvest resources during the game. I constructed the mallet and attached foam to all ends for safety purposes. Striking the block of wood was another thing that I intended to use that would bridge the gap between physical and digital interactions, with the movement being consistent with how one would strike a tree in real life.

Finally, I used a X-Y joystick mounted onto a clear acrylic box I laser cut.

My designs for user interaction with the video game had many iterations. Initially, it was just a simple push button and the joystick. However, initial testing almost instantly showed me that users would simply walk around the environment holding down the push button to both interact with animals and harvest resources. I wanted harvesting resources and interacting with animals to require to distinct physical inputs, something that imitated petting animals and chopping wood as one would do in real life.

I quickly found that people interacted with my project in unexcpected ways, with some initally believing they should strike the stuffed dog with the hammer, some picking up the animal, some not using the hammer and instead pressing down on the block of wood with their hand. Initial iterations of the game did not have an instructions screen which I created at the end. This screen contained explicit directions for how users should interact with the environment, requiring them to strike the wood with the hammer and to pet the dog to advance to the actual game. I am overall very happy with the user experience with many noting how fun it was to hit the wood or pet the animal.





Below are videos of three user testing sessions I conducted to receive constructive feedback that allowed me to refine the game and its experience. The final video is a video of someone playing the game at the final Interactive Media showcase.

Materials

  • Arduino Uno

  • Stuffed Animal

  • Conductive Thread

  • X-Y Sparkfun Joystick

  • Wood for Platform and Hammer

  • Force Sensitive Resistor

  • Laser Cut Acrylic Box