Skip to content

yunxianding/CSC120-FinalProject

 
 

Repository files navigation

CSC120-FinalProject-Teddy Bot🤖

Contributors: Clare, Joyce, Tammy, Yunxian

Deliverables CheckList: 🚧(in construction) ☑️(finished)

  • Your final codebase ☑️
  • Your revised annotated architecture diagram ☑️
  • Design justification (including a brief discussion of at least one alternative you considered) ☑️
  • A map of your game's layout (if applicable) ☑️
  • cheatsheet.md ☑️
  • Completed rubric.md ☑️

Design Justification

Current Design:

Our game is a fun text-based adventure wrapped inside a sci-fi short story. The player begins the game waking up damaged, trapped in a robot's body. An exciting adventure is waiting for them to discover their identity and unreveal the hidden truth. Make your decisions wisely every step...They could lead to very different endings...

Alternative Considered:

One alternative idea we brainstormed early on involved implementing a Soul class. The concept was that Teddy’s human soul had been fragmented and scattered after the body swap. The player would collect these soul fragments throughout the game, and each soul would unlock parts of Teddy's memory and personality. This would create a longer, more exploratory experience that tied achievements to emotional and coginitive growth.Unfortunately, due to time constraints, we were unable to fully implement this mechanic — but it remains one of our favorite unbuilt ideas.

Layout Map

Teddy Bot Layout Map Figure 1: Visual layout of the Teddy Bot Adventure game

Additional Reflection Questions

  1. Our overall approach to tackling this project is coming up with a game plot first, then write the possible classes we need and their possible interations. After finishing the draft of the classes, we implement them in Main.java and write the game loop. 🕹️

  2. We definitely learned so much new thing(s) in completing this project: 🤩

    • We learned about contructing an architecture diagram;
    • We learned about how to effectively use Github for team projects;
    • We learned about how to implement a game loop;
  3. However, there are still many things we wish we had implemented differently: 👾

    • We wish we had implemented a Soul class and it would be an adventure of collecting the scattered souls along the way;
    • We wish we had implemented a puzzle that players need to solve before they are able to unlock the computer;
    • We wish we had implemented a display bar that displays the player's health bar and a help page that shows the commands available at each stage;
  4. If we had unlimited time, we would implement these additional features: 🧸

    • Add more rooms so that it will be a longer adventure;
    • Make more commands available;
    • Implement the Soul class;
    • Include more endings;
  5. The most helpful piece of feedback we received: 🤯

    • "Yunxian": The most useful feedback I got is from Tammy. She told me we can use switch-case instead of many if-elsestatements in the main game loop.
    • "Joyce": When I constructed the computer class, I was unsure about how to let players interact with different switches, but the suggestion from my friend to treat the control panel as a menu that reflects the current state of each system (like robot power and lab lasers) gave me a clear direction. It helped me build openControlPanel() with dynamic output and link toggle commands directly to in-game consequences.
    • "Clare": I learned a lot from my friends during this project and really admired how naturally and strategically they approached their coding. Their thought processes helped me see new ways to structure and improve my own work.
    • "Tammy": All of the members pointed me towards thinking realistically. For instance, would the toggled buttons belong to the Computer or the Robot, and which one would affect the other classes in the desired way? That helped me a lot to try and seek out alternatives rather than trying to compromise-code for what's already there
  6. If we could go back in time and give our past selves some advice about this project, we would give these tips: 😃

    • Start Small! We came up with so many good ideas but it's hard to implement all of them into our game, so we are abandoing ideas along the way. It could be frustrated if we have a very complicated storyline in our mind but we can't bring them to real life due to limited time.
    • Take advantage of github! Some features like opening an issue and assign people to work on it/ work on separate branches and merge later/reviewing each other's commit messages could be really useful working in a team!
  7. Our team dynamics really had a huge impact on our overall experience working on this project! Everyone was very devoted to our project and we learned so much new things, fixed so many problems together. It's very helpful to have our weekly meeting as we discuss what we've been doing throughout the week and we help each other out.🥰

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%