Apr 18, 2022
In 24 hours, I worked with a team of 3 computer science students to create a cute pet-simulator game, incorporating sentiment analysis and web-scraping. I was responsible for designing, illustrating, and implementing the visual elements of the project. This project won 1st place among 18 teams, with over 100 participants.
Ideation
During the ideation phase, we brainstormed features for our pet-simulator while keeping the tight 19-hour deadline in mind. We aimed for a simple base idea that could be expanded with additional features depending on the available time. We decided on a pet simulator that analyzes user input text for sentiment and reacts accordingly, providing flexibility in our development process.
![]() | ![]() |
Prototyping
My main role was designing the UI/UX, in addition to contributing to the ideation and debugging in Python. I began by creating the main sprite, a dog, and its various emotional expressions using Adobe Fresco on an iPad. Several layout options were also designed, evolving with the addition of new features like manual sleep, feed, and play buttons.
The overall aesthetic was kept simple, cartoony, and playful, reminiscent of childhood pet games, with minimal shading and a light, colorful palette.
![]() | ![]() |
Final Result
The final pet simulator included the following features:
Customize Your Dog: Users can enter their name, their dog's name, and choose a color for the dog using Tkinter colors.
Dog's Emotions: The dog has 7 different emotion sprites that react based on emotion levels (e.g., Super Happy, Happy, Neutral, Sad, Bored, Tired, Sleepy).
Dynamic Status Bars: Display the pet's levels of happiness, hunger, entertainment, sleep, and overall emotion, all of which change based on user interactions and time.
Fetch Feature: Using web scraping, the game can fetch images of items specified by the user and display them in the UI.

User Interaction and Sentiment Analysis
User inputs affect the dog's emotions through sentiment analysis. Positive text increases happiness, while negative text decreases it. The manual buttons for feeding, playing, and sleeping directly affect the corresponding status bars, encouraging continuous interaction to maintain the dog's happiness.
![]() | ![]() |
CUSTOMIZE YOUR DOG:
User first enters their name, their dog's name, and what color they'd like the color to be (using Tkinter colors)
![]() | ![]() |
DOG'S EMOTIONS:
Dog has different emotion sprites that react to emotion levels:
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
DYNAMIC STATUS BARS:
Display pet's levels of happiness, hunger, entertainment, sleep, overall emotion. Happiness reacts to entertainment level and sentiment analysis of text that user inputs into textbox, (i.e. if you say something positive, like "good boy," happiness increases) Hunger reacts to manual feed button and decreases over time Entertainment reacts to how much interaction is received (button presses, entering text), decreases over time Sleep reacts to manual sleep button and decreases over time Emotion reacts to other 4 status bars
![]() | ![]() |
FETCH FEATURE:
If text box detects "get item" or "fetch item" (e.g. "fetch ball"), it'll use webscraping to search Google images for an image of item and display it in front of the dog User inputs "fetch item" Program uses webscraping to find a png of requested item Displays item png in main UI in front of dog
![]() | ![]() | ![]() |
Expo Presentation and Feedback
For the final submission, we presented a video and demonstrated the game live at an expo. The interactive and easy-to-play nature of the game engaged many participants, who enjoyed experimenting with different actions to influence the dog's behavior. The quick decay of emotion levels encouraged continuous play to keep the dog happy. Our project was well-received, earning first place in the hackathon!
Reflection
Overall, although the time pressure of the hackathon was stressful, I really enjoyed making such a cute, wholesome game that I could see other people enjoying! One of the judges' comments was that a big component that made our project stand out was its interactivity and attention to UI. This hackathon reaffirmed the importance of good UI/UX design and interactive elements in making a project stand out.