
Link to Game
https://evhur.itch.io/trial-47 (Password: CS377G – Please turn on sound!)
Branching Choice Map

Branching choices map on Twine. Includes loops, widgets, and custom logic.
Key Choices
In Trial 47, the player is a lab-grown rabbit that is transferred from its farm to a laboratory for clinical testing. Since the player experiences everything from the POV of the rabbit, the player has to rely only on the senses that a rabbit has (e.g. smell, hearing, touch, and limited sight). The player perceives the world through fragmented sensations rather than words— muffled voices, sterile air, shifting temperatures, and other rabbits’ heartbeats.
As such, most choices from the POV of the rabbit are sensory (sniff at sample, curl up and close eyes), clue-revealing (inspect bottle, poster, lab notes), communicative (comfort other rabbit, warn other rabbit), or escape triggering (bite human hand, run towards swinging door).
Loops, cases, and custom variables
My game involves many loops and cases through keeping track of passage visit count and a custom variable I created (test_count) so that if a player returns to the same passage, it doesn’t feel redundant. For example, in the “white room” passage, I include more complex nested variables based on test_count (custom variable to track how many times the rabbit was lab tested) and case (visit count of this passage). I also added custom case-based logic for 6 passages: “grabs you by the ears,” “yellow room,” “dimly lit room,” “make a run for the exit,” “kick at the latch,” “testTrigger” passages.
Endings and Epilogues
There are three possible endings—all three of them unfortunate endings so that the story is realistic of a lab rabbit’s experience and ends with an epilogue from the POV of the human testers. The “best” possible ending is triggered if the rabbit attempts an escape and has already been lab tested once. The rabbit (player) somehow finds an exit, but because of its wounds from the lab testing, the patch on its back gets infected in a week and it dies painfully. The epilogue mentions that the humans never find the rabbit, but replace him with a fresh batch of lab rabbits anyway.
The second ending is triggered if the rabbit attempts an escape and has already been lab tested twice—it’s even weaker and sick than it was before. The rabbit finds the exit to the lab, but doesn’t make it out of the fence—it’s too weak and blind, dying from the treatment overdosage.
The third ending is triggered if the rabbit is lab tested a third time. The world gets dimmer from the POV of the rabbit as it directly dies on the lab table. The epilogue mentions that the player dies and is incinerated for disposal.
All three endings allow players to click “Reincarnate as a new rabbit” which leads them back to the start of the game so they can play the game as a new rabbit, trying out different choices—all that ultimately lead to another sad ending.
Overview
The game Trial 47 places players in the perspective of a lab rabbit, forcing them to confront the horrors of animal testing firsthand. Since the player experiences everything from the POV of the rabbit, the player has to rely only on the senses that a rabbit has (e.g. smell, hearing, touch, and limited sight). The player perceives the world through fragmented sensations rather than words— muffled voices, sterile air, shifting temperatures, and other rabbits’ heartbeats.
The concept emerged after I discovered that one of my favorite cosmetics brands had been exposed for inhumane testing practices. This revelation led me down a rabbit hole of research, where I learned how companies often inject substances into animals, observe their suffering through painful and distressing symptoms, and then dispose of them shortly afterward. After uncovering these realities, I felt compelled to create a game that raises awareness about the cruelty of animal testing.
This game is intended for players aged 14 and above, as it contains themes of animal abuse that may be disturbing to younger audiences. The purpose of the game is to raise awareness about the inhumane laboratory testing conducted on animals for commercial use—particularly within the cosmetics and dermatology industries—by fostering empathy through the perspective of an innocent lab rabbit. To evoke empathy, I made several key design choices:
- Juxtaposition of setting: Juxtaposing the rabbit’s warm, comforting home with its mother at the beginning against the cold, sterile fear of the lab setting
- Sensory immersion: Emphasizing vivid sensory details (including audio in Twine) and limited player choices to reflect the rabbit’s restricted understanding and helplessness
- Shift to human perspective in epilogues: Ending with short epilogues from the point of view of human testers to reveal their detachment and the disposability with which they view the rabbits.
History Versions of Game
| Playtest | Game Version | Time played | Player Information |
| 1 | V1 | 2 minutes | 21 year old, CS peer in CS377G |
| 2 | V2 | 5 minutes | 22 year old, Mech-E Co-term Student |
| 3 | V2 | 7 minutes | 23 year old, CS Co-term Student |
| 4 | V3 | 10 minutes | 21 year old, CS Co-term Student |
| 5 | V4 | 15 minutes | 25 year old, Grad school of education peer in CS377G |
| 6 | V4 | 10 minutes | 21 year old, gaming startup founder |
| 7 | V5 | 12 minutes | 23 year old, CS Co-term Student |
Version 1 – Playtest 1
Version 1: The first version of my game was made during class where I had the initial idea of a lab testing game. I wanted to keep the choices and paths simple so I didn’t focus as much on sensory or non-consequential actions, but based on our lecture focused on impactful actions such as planning an escape or rescuing friends.


Version 1. Paper prototype
Key Changes Made based on Playtest 1
| Feedback / Issue | Changes to be Made |
| Player’s first choice lead to a dead end (bad ending) | Don’t make the first choice lead to a dead end. Even if it’s a bad choice, allow more choices to be made. Perhaps allow the player to redeem themself to get back on the right path. |
| “Save friends” choice is too easy—there’s no “Yes BUT” | Have the “save friends” choice lead to a risk or consequences (E.g. Chance of getting caught by a lab technician) |
| Getting caught by a lab technician leads to a quick bad ending with little context or detail (E.g. You get caught and tested on you -> You die. The end) | Instead of having the player die right away from the lab test, maybe there’s phases of the player losing its life gradually -> maybe first loses a leg, loses vision etc. If the player undergoes 3 lab tests -> Dead. |
| I would like to see a more immediate description describing the consequences of a choice, rather than moving onto the next choice right away. | Include more scenic descriptions that players have to click through (don’t have to make a choice in each scene). |
Version 2 – Playtest 2
Version 2: For Version 2, I used the premise framework from the Game Developer Conference video we watched to clearly define goals, motivation, and conflicts. The primary goals of the rabbit is to minimize fear, make sense of surroundings, and stay alive. As the game evolves, secondary goals include understanding what’s happening to you and to others, protecting or comforting nearby rabbits, and deciding how to respond to human control (submit, resist, or empathize).
Besides redefining the premise, I made the following changes based on playtest feedback: making one of the paths longer, making the “saving friends” choice more risky so there’s tradeoffs, and instead of having the player die immediately after being lab tested, make it slowly get sick over time (E.g. lose fur, feel nauseous etc -> then die). This was based on my previous playtest feedback where the player mentioned some of the paths were too short—especially since the rabbit dies immediately after one lab test.

Version 2. Prototype on google docs
Key Changes Made based on Playtest 2
| Feedback / Issue | Changes to be Made |
| Rescuing/saving friends seems unrealistic for a lab rabbit. The player thought it felt a little gimmicky, preventing him from feeling empathy towards the rabbit. | Consider removing the “saving friends” route. |
| Happy ending with the rabbit escaping also feels a little gimmicky/unrealistic | Consider making all endings “sad” endings but each has its own twist. Consider adding an epilogue with a POV switch to tell what happens to the rabbit (player) from a third-person perspective. |
| While the player feels empathy for the rabbit being lab tested, the player expressed the need to portray the human lab testers as more evil to contrast with the innocent rabbits. | Include more description of the human testers making them seem cruel. Consider adding human elements (e.g. the rabbit sees a poster advertising a makeup brand making where humans are smiling. Juxtapose this with rabbits that are being abused). |
Version 3 – Playtest 3
Version 3: For Version 3, I made three key changes based on Playtest 2 feedback. First, I removed the “saving friends” action and route because it felt unrealistic and slightly gimmicky, preventing the player from developing true empathy towards the lab rabbit. As for the ending, I made all the endings “sad” endings where the rabbit player eventually dies from the consequences of lab testing. To highlight the cruelty of the human testers, for each ending I included an epilogue where the POV switches to the human testers nonchalantly discussing what happens to the rabbit and how they’re passing it to incineration. Lastly, I added a third room the rabbit can investigate with its senses: in the “dimly lit room,” the rabbit finds lab notes on tested and deceased test rabbits.
I also moved my paper prototype to Twine. To support the multiple rounds of lab testing, I created a test_count variable and custom widget triggerTest to keep track of the number of times a player is tested since I wanted choices and outcomes to depend on this variable (e.g. if player is lab tested 3 times -> dies). To incorporate this logic, I used cases or if-statements so that the player can revisit the same passage (e.g. white observation room) with a different scenario each time.

Version 3. Prototype sketch on ipad before moving to Twine

Version 3. First prototype on Twine
Version 4 – Playtest 4 and 5
Version 4: Major changes made in Version 4 include making the beginning more descriptive and interactive. For example, I allowed players to generate the rabbit’s name and added a scene where the rabbit looks at its reflection to see its tattoo-inked ears. Based on feedback from the previous playtest, I also incorporated a wider range of non-consequential actions (e.g., observing a sample, peering at lab notes) to make the rabbit feel more alive and to help distinguish the actions from one another. Lastly, I incorporated case-based logic to the “white room” to keep players engaged, even if they revisit the same room. Each visit leads to different choices.


Version 4. Added name generation and ID generation (tattoo to ears)

Version 4. Case logic for “white room” and other passages
Key Changes Made based on Playtest 4 and 5
| Feedback / Issue | Changes to be Made |
| Looping back to the “yellow room” felt redundant. Playtest 4 player mentioned they had to come back to the yellow room 3 times and felt less engaged (playtest 5 audio clip at 5:09). | Add case-based logic based on yellow room visit_count. Create different scenarios or actions for each time the player visits the yellow room. Also added more case-based logic to other passages. |
| The player felt that the lab testing scenes where the rabbit (player) is being injected with treatment didn’t feel as horrifying or intense. | Consider adding more graphic and detailed descriptions during the lab testing scenes. Player suggested doing more research on the types of cruel procedures these rabbits are subject to. |
| Could feel more immersed if there were sound effects for events like cart rolling, footsteps, shriek etc. | Add background music in the beginning hay vs. lab setting. Add sound effects in Twine for cart rolling, footsteps, shriek etc. |
| Make POV switch in epilogue more clear | Added a different background (change from black to white) and added a custom futuristic-style border. |
| Would like to see visualizations for the poster (image of model smiling with the L’oreal ad) and the bottle samples. | Consider adding images but make sure it doesn’t break momentum or theme of the game (e.g. cartoonish images or AI generated images can make game feel gimmicky, preventing developing empathy) |
Version 6 – Playtest 6
Version 6: Version 6 was my final iteration, in which I made primarily narrative and stylistic changes, along with one logic/mapping update. The first key change was adding case-based logic tied to the yellow room’s visit_count, making the gameplay feel less repetitive (playtest 5 audio clip at 5:09). I also added custom case-based logic for 5 more passages: “grabs you by the ears,” “dimly lit room,” “make a run for the exit,” “kick at the latch,” “testTrigger” passages. Second, I enhanced several passages by incorporating more sensory details (such as how the room smells) and adding graphics I designed in Figma—including a poster of a smiling woman, lab notes, and annotated images of rabbits. Lastly, I integrated background music: the introduction features ambient animal sounds that transition into darker tones to emphasize the abrupt scene shift. I also added sound effects for the rolling cart, footsteps, and the muffled voices of humans talking and taking notes.
After implementing these changes, I received positive feedback from Playtest 6. The player shared that she felt emotionally connected to the lab rabbit and mentioned she would be more mindful about purchasing products that are not tested on animals.

Version 6. Case logic for “white room” and other passages (“grabs you by the ears,” “dimly lit room,” “make a run for the exit,” “kick at the latch,” “testTrigger” passages).

Version 6. Added black and white graphics I designed in Figma

Version 6. Added custom border and changed background color for epilogue
Photos/Video Clips of Game Testing
Audio Clip: https://drive.google.com/file/d/1aqaPCFwuZXYpMiHQgdyeRHq9nsVGp5HW/view?usp=sharing

Playtest 2: 22 year old, Mech-E Co-term Student

Playtest 5: 25 year old, Grad school of education peer in CS377G
Reflection
Overall, I really enjoyed making this game, mainly because I was able to focus on crafting a descriptive narrative from a unique perspective and learn how to use custom variables, effects, and logic on Twine.
First, I used the premise concept from the Game Developer Conference video and GMC (Goal, Motivation, Conflict) framework from Lecture to clearly define my character’s intentions and conflicts. As mentioned above, I crafted a character whose primary goal is to minimize fear, make sense of surroundings, and stay alive. The character’s primary conflicts are confusion and fear in an unfamiliar, sterile environment, threats from humans and machinery (needles, cages, and clinical detachment), and whether to prioritize your own safety or the well-being of others once you realize what’s happening.
Second, I used concepts from “The Rhetoric of Video Games” by Ian Bogost to “create a possibility space through rigid structure, or rules”—in the case of Trial 47, real-life limitations of what the rabbit can do. For example, my early iterations of the game allowed the rabbit to save its friends, escape and live happily ever after. However, by restricting the player to realistic actions of a rabbit (can’t fight, can’t open doors), I focused on sensory actions and choices that made the game seem more realistic. I received positive feedback on these changes from later playtests where players expressed that they felt more empathy towards lab animals.
If I had more time, I’d like to explore different ways my character could have communicated with other rabbits more. I initially removed all conversation between rabbits because I felt that it was a little gimmicky or unrealistic; however, I feel like I could have researched this more to develop a language focusing on more visual cues or vocabulary from a rabbit’s POV. For example, in Warrior Cats, the cats can talk to each other through English, but their vocabulary is carefully curated from the POV of cats— for example, the cats call cars as “monsters.” Still, I think I was able to make iterations throughout the prototyping process that made my game feel more realistic of the lab animals experience.


i loved your game!! its details are just amazing—through both writing and sound. they really helped me build empathy with the rabbits. the muffled voices in lab sound was especially realistic. i also really liked how the context/story gradually unfolded over time (i.e. we first learn about animal abuse, then understand it’s in a lab context, and then understand that it’s testing for l’oréal). you do a fantastic job of showing through sensory details rather than just explicitly telling us what is going on. i also appreciated that when i played multiple times, each rabbit had a different name and code, which helped underscore the size of the issue (i.e. how many different rabbits go through this).
if you wanted to improve on the game, i’d suggest double checking that the branching and looping makes sense for every path. i know it can get very complicated because there is a lot of exploration, but there was a moment where i was exploring and then i got caught by a human in one room and then suddenly i was exploring again (i.e. escaped without doing anything) and then got caught again—and the inconsistency took me out of the game for a little bit. perhaps it was supposed to be like this, and in that case, a little more context for why i was so easily able to escape from the human would be helpful!
overall, amazing game!
This game was really awesome! I’ll keep it short here, but the game did a fantastic job putting me into the perspective of the rabbit, and I really empathized with the character. I also really liked the next playthrough being a new rabbit with a new name and ID, it was a minor touch that I think really added so much to the message of your game.
In terms of potential improvements, I had a little bit of confusion when I encountered a loop in a similar way to the other commenter. After a little but though I caught some of the updated text that indicated that it was a new iteration, I just think that more substantially changing the phrasing may make it easier to tell when it’s a second day. I thought the passing of time that the loops added was very neat though, it’s really just a nitpick. Overall amazing job, I will not be buying from L’Oreal anymore (although I don’t think I have until now either).
Hey Evelyn! I really enjoyed your game — you did a really good job building empathy with Fern (my rabbit name of randomly-generated choice). The message is clear, and it permeates every aspect of the game — from the visuals to the text, sounds, and endings. If I had to provide recommendations for future iterations, I would advise including a content warning page as this deals with potentially triggering topics (animal testing). Also, if more time allows, I would say to try to get real artists to draw the drawings! The AI generated pictures work really well as stand-ins, but I think it would be more immersive if they were real drawings or photos.
Great job overall!