Inspiration

Our project was inspired by Senior Assassin, a game where students in their senior year of high school creatively tag their classmates with water guns in order to eliminate them, and progress farther to eventually win a prize. Our game, Spotted, is a twist on this game, with the main principles like tagging players and being stealthy remaining critical to gameplay, with some other rule modifications to bring even more fun and shenanigans. Spotted is designed to be played in community environments, like a computer science club or any other small group on campus!

What it does

The main objective of the game is tagging others by taking photos of them in the app when players encounter other players out in public, or in otherwise random situations where each party is unaware of the other initially. Tagging a player deducts 'acorns' (leaderboard points!) from their account, and increases your acorn stash! However, players must be careful about tag-backs, where the originally tagged player can actually reverse the situation by capturing a photo of the original perpetrator once within the hour. Now, for the fun part: Squirrels. Universities are known for large populations of (often quite brave) squirrels! If you manage to tag a player with squirrels in frame, your acorn reward will be multiplied on a per squirrel basis. For example, 1 squirrel in-frame is 2x multiplier, 2 squirrels is 3x, and so on. Instead of eliminations, players will climb up and down the leaderboards, leading to more fun over a longer period of time!

How we built it

The app is built using the React native framework for the frontend, with the backend being written in Ruby on Rails. Squirrel detection is powered by the Google Gemini API, specifically image + text -> text response. We decided to use React Native to bring our team's existing knowledge of React into mobile development for a streamlined, reliable experience. We also made use of Ruby on Rails to orchestrate actions between the many moving parts of our app. The highly capable Google Gemini image model enabled us to feed it images, and quickly get the amount of squirrels in order to calculate the multipliers.

Challenges we ran into

As we were building out various aspects of our application, we ran into trouble with integration and communication between our frontend and backend. We also struggled with our developer environment a fair bit, React Native isn’t great for collaboration and that slowed us down.

Accomplishments that we're proud of

We are very proud of the fact that we were able to ship a working version… because it was a long road to get there. We’re also pretty proud to have learnt the ins and out of React Native.

What we learned

We learned many new things, especially about the intricacies of React Native. This was our first event using React Native which presented some challenges for us to figure out along the way. We also learned about the Google Gemini API, as this was our first time using it. We found the docs to be very helpful as we experimented with different ways of getting and uploaded images to the model.

What's next for Spotted

We would like to see spotted used in many school, technical, or community environments to increase joyful, informal interaction between members. Technically, we would like to implement facial recognition for increased ease of use, as well as community reviews in case any rule disputes occur. We'd love to see many clubs integrate Spotted into their community to see how it helps foster playfulness and connections between members!

Share this project:

Updates