Callie’s Page


This is my blog from my first semester at ITP. I have since switched to a Notion blog which you can view here.


Fall 2024



Intro to Physical Comp:



Intro to Comp Media:



Hypercinema:






Final Project! 

with Julia Kan



Project Summary

Can you trust your friends? Will you cooperate, or betray the group? Will a shared common resource always be used up when everyone has access?  

This playful fishing game invites players to grapple with questions of trust, resource management, and the fragile interplay between individual actions and collective consequences. It’s a hands-on lesson in game theory and social psychology, disguised as a fun challenge.

The primary inspiration is the Tragedy of the Commons - the idea that if many people are responsible for maintaining a finite public resource, they will naturally use as much of it as possible and ultimately destroy its value altogether. This theory is often used in the context of environmental problems, such as overfishing and deforestation. 

In this game, a group of four takes on the role of fishermen sharing a single pool of fish. Each round, the fish will reproduce—up to a limit—offering an opportunity to earn points by pressing your button to catch one. However, the more they take, the fewer fish remain to replenish the pool. If the pool is emptied, everyone loses.

There are opportunities to gain points for cooperation too, but it requires patience and self control. 

Final outcome:








Process: Gameplay
  

Since we weren’t experienced game designers, we felt strongly early on about limiting ourselves to one button per user as an input. Anything more would potentially introduce a level of interface complexity that could quickly spiral out of scope. 

Additionally, the main motivation behind this project was to make an educational topic more engaging and visual, not to design the best arcade game in the world (I’ll leave that to the students in New Arcade). We wanted it to be interesting enough that users would want to play more than once, but I was hesitant to add -too- many “gamified” elements that would distance the project from that original goal. 

A couple playtesting sessions we immensely helpful in iterating on the game. Thank you to everyone who gave feedback!  Some highlights from the process: 




1. Introducing rewards for players who cooperate 

During the first playtesting session, we found that the game would almost always end before it was over. Every new game became a race to grab fish, until one fish remained on screen. Then the players would watch and wait for the fish to reproduce, and one person would either snap up the new fish or two players would attempt to and everyone would lose. 

People understood the premise immediately, but it became a waiting game and got boring pretty quickly. 

We wondered: how could we create more complexity and perhaps incentivize strategies other than greed? In the real world there are penalties for a lack of cooperation, so a mechanism to reward conservation didn’t seem unrealistic. 
We tested the simplest version of this game in the first playtesting session: players have to last 8 rounds without taking all the fish, every round the remaining fish will duplicate, and taking one fish = one point. Scores were revealed at the end.   






2. Secrecy is not as important as we thought

Originally when concieving this idea, we thought that players would want to have their button hidden so that they could press it without the group knowing who was “stealing” fish and assigning blame. I spent time finding the perfect quiet button for this reason.

Turns out, in the context of this experience, people have no problem with being outwardly greedy! They often even wanted the credit for being the first to grab the fish.

This was a helpful discovery, because we also wanted to introduce additional game mechanisms (such as points for cooperation). But in order to make those features clear, we needed a more robust game UI and visual feedback when points are awarded. 

Obviously on-screen feedback for points makes it impossible to conceal them from other players, so doing away with the “secrecy” aspect of this game opened up new possibilities. 




3. Exploring variations in reproduction rates, fish types, and game timing

To some testers, the 8 rounds of 10s each felt a little repetitive and boring, especially if there was only one fish left on the screen and it became a waiting game for it to reproduce. Because of the visible timer, everyone knew exactly when a new fish would appear. 

Another thing that testers were interested in is different “types” of fish. Maybe fish worth variable amounts would keep everyone more engaged.  




Coming out of the first playtesting session, we developed two versions of the game for further testing: 



Variation 1: 

This version of the game introduces different types of fish that might incentivize users and/or require them to exercise greater caution.

Additionally, this version runs for 1 minute continuously (rather than 8 rounds), and the fish reproduce at variable rates throughout. We thought this might make the game more exciting and unpredictable.  
Variation 2:

In this game variation, players are rewarded for not taking a fish in a round. It’s not the exact same mechanic, but this was loosely inspired by the Prisoner’s Dilemma. 

Players must more thoughtfully weigh their decision to either cooperate or defect, because now taking fish is only “worth” it if they can guarantee getting 3 or more. 





Final gameplay: 

After the second playtest, we found that the cooperation mechanic in Variation 2 was most successful at creating more interesting and variable game outcomes. Tom Igoe pointed out that it might be interesting to incentivize cooperative players to start stealing fish, and so we kept the golden fish as a temptation. For the cooperation points to be clear, we needed to keep the round-based gameplay. However for greater visual interest while players are waiting, I added the spiral timer in the center (Devan’s suggestion). 

It usually took the players a couple of failed games to realize how it works, but the game is so short and simple that the learning curve wasn’t too painful. I also reworked the instructions for better clarity, because the original instructions were too long, text-heavy, and failed to state the main objective of the game. 

 



Process: Fabrication & Circuit





Originally, we were planning to project from above onto a white table. But Julia had the idea to project from below and create an even more self-contained game console. We tested it out on a piece of translucent acrylic and a mini Aaxa P7 projector on a tripod - it worked really well! 

We pivoted to this approach and got two glass-topped side tables off of Facebook marketplace. By stacking them, removing the original glass, and replacing the top with our own custom-cut acrylic we could get a image crisp enough for users to read the UI elements 




Testing with a piece of acrylic before cutting our own tabletop


One problem we encountered was the somewhat tall and unstable table setup. Since we originally wanted to attach buttons to the sides, users would be pressing against the side of the table with enough force to rock the table back and forth. 

However more possibilities opened up once we eliminated the “secret button” aspect of our game. Instead of being on the sides, the buttons could be attached to a tabletop. Applying downward force to the buttons (especially with the option to hold onto the edge and brace your thumb underneath) was a much better setup for stability purposes. 

We cut this cardboard prototype version and used it during playtesting.



Final build: 

We laser cut an acrylic tabletop and attached the buttons. To conceal the wires and projector, we attached foam core panels and joined them with plastic corner guards for a neater build. There’s a small gap at the bottom so that we can manually adjust the projector and access the breadboard if needed. 

The circuit for this project has remained pretty consistent and simple throughout the process. For the final build, we have 4 buttons connected to p5 using serial communication, which I set up with the help of this lab. The buttons are connected to ground through 10k ohm resistors. The LED lights on the buttons are powered separately, with 330 ohm resistors. The Arduino is powered through USB. 

The trickiest part of this setup by far is positioning the projector. Using the tripod mount, we can adjust the angle of the projection until it is centered and then tweak the keyframe adjustment settings until it looks flat. Still, it difficult to position the p5 sketch and get the keyframe exactly right. I’m not sure if I would use a projector like this in the future until I learn more about projection mapping! 


Takeaways:

I’m really happy with how this project turned out. I think it’s fun to play, and an interesting social experiment. The final build also looks pretty polished for our relatively low level of fabrication skills. 

I learned a lot about game design, and enjoyed applying my background in UX and user research to a new type of project. It’s not the most ambitious project in terms of pcomp skills (I spent MUCH more time in p5 than building the circuit), and I kind of wish I had challenged myself a little more in that regard - but I didn’t want to add complexity just for the sake of it, especially because I don’t think this concept calls for a more complicated interaction. Simpler is better, in my opinion. 

Shoutout to Julia for being a great group project partner!!



Future steps:

  • Nasif suggested final scores that show who was most cooperative and who was greediest at the end. I think it would be really interesting to break down each player’s score by how they earned the points (% cooperation and % greed) 

  • Better sounds and UI for a more polished feel 

  • A way to run this setup without a laptop or constantly readjusting the projecton - Raspberry pi? Projection mapping? 


References

  1. Serial Communication Lab
  2. Claude by Anthropic
  3. ChatGPT 4o by OpenAI
  4. Freeloader at the Exploratorium for inspiration