Introduction:
EcoSim is a virtual reality simulator game for the Vive where the player can create a dynamic ecosystem consisting of grass, rabbits, and foxes and then play as a rabbit or a fox.
EcoSim is a virtual reality simulator game for the Vive where the player can create a dynamic ecosystem consisting of grass, rabbits, and foxes and then play as a rabbit or a fox.
Gameplay Description: The player starts the game inside a sandbox environment of dirt tiles surrounded by stone walls. There is an informational panel near the player’s starting location that walks the player through the gameplay mechanics and user interface. The player begins the game in ghost mode. While a ghost, the player can teleport around the scene. The player can also create, throw, and remove objects, including grass seeds, rabbits, and foxes. Objects are created by reaching behind one’s head and pressing the trigger; objects are removed by holding an object behind one’s head and releasing the trigger. The player can possess the body of a rabbit or a fox by holding the animal in their hand and pressing the grip button. When possessing an animal, the player shrinks down to the size of that animal. While playing as an animal, the player can check their stats by touching the right trackpad. Calories tick down over time, when they reach zero, the player starves and returns to ghost mode. Eating replenishes calories. When the player eats more than their maximum calorie count, the excess is stored as fat. When the player’s fat count reaches its maximum, it falls back to zero and a new offspring of the player’s animal type is produced. Offspring are the game’s scoring mechanism and the games saves the player’s highest offspring count for each animal type. As a rabbit, the player’s goal is to eat grass and avoid being eaten by foxes. As a fox, the player’s goal is to eat rabbits. The player can also release the body of an animal voluntarily by pressing the right trackpad + grip button. | When a grass seed touches a dirt tile, the seed disappears and the tile converts to a grass tile. Grass tiles periodically convert adjacent dirt tiles into grass tiles. When the player creates a rabbit, it wanders around, searching for grass tiles and eating them. When a rabbit eats a grass tile, the tile is converted to a dirt tile. When a rabbit eats enough grass, it spawns a new rabbit. If a rabbit goes too long without eating, it starves and dies. When the player creates a fox, it searches for rabbits and eats them. When a fox eats enough rabbits, it spawns a new fox; if a fox goes too long without eating, it starves and dies. When the player has added a mix of grass, rabbits, and foxes to the game, the ecosystem will hold itself in balance indefinitely. |
When the player switches between ghost and animal mode the game music changes, and so does the player’s perception of animals. Peaceful music plays while in ghost form; happy music plays while in rabbit form; and intense music plays while in fox form. While a ghost, animal faces are blank. While a rabbit, rabbit faces look friendly and fox faces look scary and menacing. While a fox, fox faces look sophisticated and rabbit faces look tasty.
EcoSim uses a unique teleportation mechanic when the player is in animal form. The player sets a teleport destination by pressing the left trackpad, as before, but instead of teleporting instantly, an avatar of the animal the player is controlling appears and moves towards the destination. Destinations can be changed by aiming at a new location and the player can move immediately to their avatar’s current location before it reaches the set destination by pressing trigger. The purpose of this mechanic is to limit the player’s movement speed to that of the animal they are controling and maintain immersion while avoiding moving the camera, which can be a source of motion sickness.
Story of the Process:
EcoSim was inspired by Conway’s Game Of Life, and more directly by predator-prey games that used a similar cellular automata method for simulating ecologies. EcoSim is my attempt to create one of these applications in virtual reality.
My long-term goal with this project is to create a multiplayer, persistent world with a fully dynamic ecosystem where the player can possess the body of any creature (or plant) in that ecosystem and experience the world through its eyes. EcoSim would thus be a sort of meta-game, serving as a world in which any number of sub-games could be layered in. The version submitted for this capstone is a first step in that process, single-player and involving the bare minimum number of life forms necessary to simulate a full ecosystem.
One of the more difficult aspects of this project was building a functioning AI. In an earlier iteration of the game, I had rabbits and foxes move randomly. On a macro scale, this actually worked surprisingly well. While watching the game run continuously, I could see emergent behaviors like migration patterns. When playing as an animal, however, the weaknesses of the random movement approach became more apparent—avoiding predators, for example, was too easy. I developed a system of AI where animals have a vision box that allows them to determine what objects of interest (food and predators) were in their field of view, which was closest, and react accordingly.
The original intention of the ghost mode part of the game was simply as a rest between sessions playing as an animal, as well as a useful feature for debugging purposes. While developing the game, however, I noticed that throwing animals around and watching the simulation run (without having to worry about starvation and getting eaten) were two of the most fun parts of the game, so I shifted my development focus to give the player more abilities while in ghost mode—including the object spawning system and menu.
EcoSim was inspired by Conway’s Game Of Life, and more directly by predator-prey games that used a similar cellular automata method for simulating ecologies. EcoSim is my attempt to create one of these applications in virtual reality.
My long-term goal with this project is to create a multiplayer, persistent world with a fully dynamic ecosystem where the player can possess the body of any creature (or plant) in that ecosystem and experience the world through its eyes. EcoSim would thus be a sort of meta-game, serving as a world in which any number of sub-games could be layered in. The version submitted for this capstone is a first step in that process, single-player and involving the bare minimum number of life forms necessary to simulate a full ecosystem.
One of the more difficult aspects of this project was building a functioning AI. In an earlier iteration of the game, I had rabbits and foxes move randomly. On a macro scale, this actually worked surprisingly well. While watching the game run continuously, I could see emergent behaviors like migration patterns. When playing as an animal, however, the weaknesses of the random movement approach became more apparent—avoiding predators, for example, was too easy. I developed a system of AI where animals have a vision box that allows them to determine what objects of interest (food and predators) were in their field of view, which was closest, and react accordingly.
The original intention of the ghost mode part of the game was simply as a rest between sessions playing as an animal, as well as a useful feature for debugging purposes. While developing the game, however, I noticed that throwing animals around and watching the simulation run (without having to worry about starvation and getting eaten) were two of the most fun parts of the game, so I shifted my development focus to give the player more abilities while in ghost mode—including the object spawning system and menu.
Results from User Testing:
I tested the game on users who were not involved in the development process and had limited experience in virtual reality. Both testers found the user interface to be intuitive and that the in-game instructions thoroughly explained how to play (though the wording was hard to understand for a few sentences). One exception, however, was the possession mechanic. Testers initially tried to possess animals by displaying the animal’s menu icon rather than by actually picking up an animal. Testers figured eventually figured out even the less intuitive elements of the UI on their own, but I could make the learning process smoother by rewording some parts of the in-game tutorial. Both testers found the animal animations, sound effects, and appearance to be very humorous, and considered the rabbit music to be especially fitting.
Game testers differed significantly in which aspects of the gameplay they found most interesting and considered the focus of the game. The first tester spent nearly all of her time in ghost mode—playing for well over half an hour without getting bored—throwing objects around and watching animals interact. The second tester went straight into the animal-playing mode and only played as a ghost long enough to learn the game and for short breaks between sessions as a rabbit or fox.
I tested the game on users who were not involved in the development process and had limited experience in virtual reality. Both testers found the user interface to be intuitive and that the in-game instructions thoroughly explained how to play (though the wording was hard to understand for a few sentences). One exception, however, was the possession mechanic. Testers initially tried to possess animals by displaying the animal’s menu icon rather than by actually picking up an animal. Testers figured eventually figured out even the less intuitive elements of the UI on their own, but I could make the learning process smoother by rewording some parts of the in-game tutorial. Both testers found the animal animations, sound effects, and appearance to be very humorous, and considered the rabbit music to be especially fitting.
Game testers differed significantly in which aspects of the gameplay they found most interesting and considered the focus of the game. The first tester spent nearly all of her time in ghost mode—playing for well over half an hour without getting bored—throwing objects around and watching animals interact. The second tester went straight into the animal-playing mode and only played as a ghost long enough to learn the game and for short breaks between sessions as a rabbit or fox.
Conclusions and Future Development:
What I find most compelling about EcoSim is that it offers a variety of different gameplay experiences in a way that each depends on the others to form a coherent whole. A player who wants a sandbox experience can play in ghost mode, whereas a player who wants a game with clear objectives and win/loss conditions can play as a rabbit or fox—with rabbits requiring greater awareness of their surroundings and foxes requiring fast reflexes and anticipating other characters’ movements. But even if a given player does not spend much time exploring a particular aspect of the game, those elements do not go to waste because all of the objects in the game interact with each other in a way that adds depth and complexity to each of them.
This dynamic of interactive gameplay elements is something I intend to maintain as a focus of development as I continue building EcoSim. New plants, for example, will cooperate or competing with the existing grass system; new animals will have their own unique impact on the balance of the ecosystem and thus have effects on the experience of every other animal.
Another design methodology I intend to maintain is making the gameplay mechanics of the user mirror that of the AI. That is, while human players may be able to think more strategically about how they play, they will have the same capabilities and attributes as AI characters of the same type. The purpose of this design choice is to improve immersion by making the player a part of a game-world that could exist without them, rather than a visitor passing through.
In short, EcoSim is not a game with a world, it is a world that uses games as the means to experience it.
What I find most compelling about EcoSim is that it offers a variety of different gameplay experiences in a way that each depends on the others to form a coherent whole. A player who wants a sandbox experience can play in ghost mode, whereas a player who wants a game with clear objectives and win/loss conditions can play as a rabbit or fox—with rabbits requiring greater awareness of their surroundings and foxes requiring fast reflexes and anticipating other characters’ movements. But even if a given player does not spend much time exploring a particular aspect of the game, those elements do not go to waste because all of the objects in the game interact with each other in a way that adds depth and complexity to each of them.
This dynamic of interactive gameplay elements is something I intend to maintain as a focus of development as I continue building EcoSim. New plants, for example, will cooperate or competing with the existing grass system; new animals will have their own unique impact on the balance of the ecosystem and thus have effects on the experience of every other animal.
Another design methodology I intend to maintain is making the gameplay mechanics of the user mirror that of the AI. That is, while human players may be able to think more strategically about how they play, they will have the same capabilities and attributes as AI characters of the same type. The purpose of this design choice is to improve immersion by making the player a part of a game-world that could exist without them, rather than a visitor passing through.
In short, EcoSim is not a game with a world, it is a world that uses games as the means to experience it.