Weensy and the Giant
Game Description
Weensy and the Giant is a 2-Player Co-Op VR game that encourages communication, exploration, and interacting with the environment. Players are able to shrink or grow depending on whether they are playing as Weensy or the Giant respectively. The environmental obstacles are designed to force the players to take advantage of these unique abilities to navigate the play space. Different zones in the area feature different minigames, and the experience of playing these games also changes depending on the player's size.
Concept
Weensy and the Giant are a pair of friends that find themselves lost in a mysterious garden. Weensy is a jolly and whimsical child who can shrink in size, while the Giant is a solemn and mellow guardian who can grow in size. As they explore the garden, they must use their abilities to their advantage to make the most of the minigames and puzzles.
The Team
This game was a larger project that required collaborative efforts to accomplish. The team consisted of Hedy Fu, Roann Cordova, Mark Lin, Yilia Yi, and myself. We all took on different responsibilities which played to our strengths and skills.
Skills and Tools
My involvement in the project included ideation, plot development, storyboarding, designing the interactions/obstacles in the environment, script-writing, coding mechanics, building the environment, and playtesting.
All coding and environment-building was done using Unity and Visual Studio Code.
The playtests were done by exporting the Unity files as APKs and importing them onto Meta Quest 1 and Meta Quest 2 headsets using the Oculus app.
External Links
The dev logs and download links can be found here.
Our game document can be found here.
The project demo was also showcased in OCADU's Digital Futures Open Show, which is an exhibition where Digital Futures students display their work.
Process Documentation
Since this was a collaborative project, I was not present in every part of the entire process. I had certain tasks alloted to me based on my strengths, and I will be demonstrating my contributions to this project.
Ideation and Plot Development
Everyone contributed in the ideation process when it came to developing a concept for the game. We were inspired by Alice and Wonderland and that is where the idea of growing and shrinking came from. From this, we also decided to create a garden as our primary setting for exploration.
In terms of gameplay, we really liked the idea of creating a two player game where both players have to complete individual tasks to collectively progress to the next stage. The main game that we felt inspired by was Fireboy and Watergirl and It Takes Two.
When designing the different characters, we felt that their appearance and personality should reflect their unique ability. Weensy is inspired by generalized children's drawings of people. The simplified appearance and forms reflect a childlike imagination and perspective that worked for our purposes. Another source of visual inspiration were the kodama spirits from Princess Mononoke. Weensy's name comes from teensy-weensy. We decided on this because it reflects the character's small stature and his childish personality.
For the Giant, we wanted a more solemn and stoic character. Since he acts as a guardian for Weensy, we drew inspiration from the Iron Giant. Visually, we took inspiration from Moai statues. His personality is also planned to be mellow to act as a foil to Weensy. A potential inspiration for this is Eeyore from Winnie the Pooh. We settled on naming him "the Giant" because it turns his character into an archetype rather than an individual. It also mystifies his character a bit, which we felt made the dynamic between Weensy and the Giant more interesting.
Rough Plot
The main story focuses on Weensy and the Giant’s adventures through a garden that they play in. Exhausted from a day of playing, Weensy wants to go home but finds out that they have been locked out. In order to unlock the door and return home, they must find the three necessary keys that they seem to have lost while playing in the garden. They must then make a trip throughout the garden to retrieve their keys and return home.
This served as our basis for establishing an objective in the game to guide the player's exploration of the VR space we created. While there are environmental obstacles that unlock different areas, the game is not meant to be centered around the puzzles. Instead, we want the primary focus to be about exploration while playing around with the unique VR-enabled experiences of growing and shrinking.
Level Design and Script
Once we established a rough plot, I was responsible for designing the different rooms or "levels". I designed different puzzles and mini objectives that would guide the player's experience and progression throughout these rooms. I also wrote a script of dialogue that provides the players with information on the context of their journey as well as directions on where to progress next. We felt like auditory information would be a more interesting choice than to display directions in the form of floating text.
After designing the puzzles and the room progressions, Hedy Fu, our primary concept artist, drew rough storyboards to visually demonstrate the progressions.
The complete detailed level designs, storyboards, and script can be found in the game document.
Planning Mechanics and Storyboards
For the game, there were a couple of set mechanics that we intended to include. The most important and centralizing ones being the growing and shrinking abilities. I created animated storyboards to illustrate some of these planned mechanics and visualize how they would play out in game.
Coding Mechanics
For mechanics, I coded an events system which would enable all of the different interactions in the game between a trigger (buttons, levers, pressure plates, etc.) and a responder (doors, hidden passages, spawnable objects, etc.). I included all my code files for the event system here.
The GameEvents.cs file is the main script that sets up the events. Every time a new event is to be created, it has to be added into this script. From there, there just needs to be two scripts to set up a full event. One script sends out a "signal" and the other receives it. In this specific case, the buttonInteract.cs file sends out the signal every time the button is interacted with, on top of animating the button. The doorController.cs file then receives the signal and animates the door to open. Since there are no dependencies, the doorController.cs script can be added to multiple game objects and they will all respond to the signal. Additionally, the code also allows for unique IDs to be assigned so that if multiple door objects have the doorController.cs script, only the ones with the correct ID will open.
Since we only created a demo, the only interactions that occur are between buttons and doors. However, in the completed game there would be more signal senders and signal receivers.
Building Playtest Area
To test the mechanics, we set up a playtest area to test the mechanics for interacting with objects, grabbing objects, the UI, walking around, growing, and shrinking. We also laid out the space to roughly resemble what the final area would look like.
First Version of the Game
After playtesting our mechanics and fixing bugs iteratively, we reached a point where we felt confident that our mechanics were working as intended. This is where I began to build the environment in Unity using 3D models that were built by Mark and Roann.
Final Version of the Game
After the first version, there were several small changes that were made that slowly accumulated over time. Unfortunately, I do not have saved intermediate versions. Through several playtests, many changes were made. One major issue was that size did not initially feel relevant to the gameplay in the first few versions. To combat this, I shrunk the size of the first house with the furniture down so that it can only be accessed through shrinking. I also added in more assets to make the environment look more polished and I changed the color scheme of the environment to adhere to a more magical atmosphere. The unnatural coloration works better in standing out and making the environment feel surreal, which plays to the strengths of VR. Rather than recreating reality, we want to deliberately create an environment that cannot be found in reality so that there is actual relevance in the VR.