Daniel Acevedo

Best Friends Forever

Lead Programmer

Platform: PC
Engine: Unity
Team Size: 3
Duration: 6 weeks

Description:

Best Friends Forever is a 2D platformer and AI interactive experience. You play as Cassie, a tech-savvy and music loving 16 year-old girl, who is dealing with the loss of her best friend, Jamie. In order to cope with Jamie's passing, Cassie trains an AI chatbot to talk just like Jamie. Using the OpenAI API, the player is able to chat with Jamie directly.

My Role:

I worked in a team of three, where each person took on a leadership role - either Lead Producer, Lead Artist, or Lead Programmer - while also contributing as a Game Designer. Although we had defined roles, we all actively collaborated on every aspect of the game, going beyond our primary responsibilities. As the Lead Programmer, my responsibilities included:

  • Oversaw the technical development of the game, coded core mechanics and enemy behaviors, implemented systems, art assets, and animations
  • Designed and iterated the game's narrative, ensuring it aligned with gameplay mechanics and themes, while refining player engagement throughout the process
  • Integrated the OpenAI API, enabling players to chat directly with the AI-powered version of Jamie
  • Wireframed and implemented the UI, including the dialogue and texting screen
  • Conducted formal playtests, created a questionnaire to gather player feedback, and analyzed results to refine gameplay mechanics
  • Drew, planned, and designed a platforming level

Tools Used:
  • Unity
  • C#
  • OpenAI API
  • Perforce
  • Design Documentation
Postmortem:

Best Friends Forever was the final project for CTIN 541 Design for Interactive Media with Tracy Fullerton, during my first semester at USC. Working on this game was an incredible learning experience. One of the most unique and intriguing aspects was our implementation of ChatGPT. We received a wide range of reactions from players - some felt disconnected from the narrative, while others found the AI to be highly immersive. This became one of our biggest challenges, as much of the experience hinged on how players interacted with the AI character. To ensure the AI responded in a meaningful way, we had to pre-prompt it by describing the character it was meant to portray, outlining how it should engage with players, and guiding its responses to make sure the narrative was effectively communicated.

< Back to Portfolio