Instructions:

Join to run commands (you need a Twitch account): https://www.twitch.tv/k8ii3

Inspiration

The game’s premise is inspired by a 4chan Tumblr repost story, where the original author wrote a horror short story. The cast of Scooby Doo also inspires the game's characters. Regarding gameplay, the team pulled inspiration from Twitch and Discord games such as “Twitch Plays Pokémon” and “Letter League” which allow individuals to connect and play with each other despite being in different locations and not knowing each other. Both Twitch and Discord pride themselves on connecting individuals in their own way, and a game like ours is a quick and fun way for multiple people to have fun all at once. For example, Twitch streamers who are often very appreciative of the connection they build with their viewers, and vice versa. Scare Parts gives them a way to play games and "Connect" with their chat to get their streams more interactive, without having to give our any personal information (In-Game ID's, Discord usernames, etc.) and without having the viewer take extra steps to have fun with their favorite streamer! As our team was split between one group in Albany and another in Rochester, it was important for us to create a game that exemplified the teamwork required to work together without having instantaneous communication. The Driver trusts the Support to do their job, and vice versa, just as how our teams trusted each other to deliver their work.

What it does

You and your friends are a group of spirit hunters. One unfortunate night has your ragtag team run into the cursed Hand Hook Car Man who fuses all of your souls with your spirit hunting car. Navigate your way through the forest collecting spirits to fuel your car, avoiding obstacles in the road, and destroy evil robot cryptids to repair your car as you track down the man and regain control of your mortal bodies.

Primary Game Mechanics

Driver

  • Performed by the main player (the individual hosting the game)
  • Control the vehicle’s movement (side to side)
  • Goal: Get the vehicle to the end of the path by avoiding obstacles and collecting resources

Support

  • Performed by the audience (chat participants)
  • Control the vehicle’s support system (weapons)
  • Gun #1: Net Weapon (captures cryptid robots for mechanical parts)
  • Gun #2: Capture Tool (captures spirits for fuel)
  • Goal: Get the vehicle to the end of the path by getting rid of enemy mobs and generating resources

Twitch Integration

Twitch Chat is essentially read by connecting to a stream's chat through an authorized account and reading through chat logs using a File Stream. By reading and parsing these messages appropriately, we were able to create a Unity Event that runs every time a message is sent and performs the correct task based on message content.

How we built it

We chose Unity as our game engine for this project based on our previous skills and knowledge. We carefully designed the gamespace to leave room for any potential Twitch overlays. Twitch Chat was integrated and connected using a built-in TCP client. In the case that no one sends a message in chat, it is constantly reconnecting to the chatroom every 60 seconds, ensuring there is a constant connection. Using File Stream, we are able to read, write, and parse the chat logs and call appropriate events and functions based on message text. In addition, there is a cooldown on all commands to prevent spamming the chatroom and game with requests and events.

Challenges we ran into

Art

We ran into a few issues during our asset production. First was classic art block and finding inspiration for our assets. We are not well versed in top-down art so we had to search for good references to base our perspective on. Secondarily we each had individual struggles without art pieces trying to capture exactly what we wanted to capture, but everyone was super supportive of each other and gave each other feedback and help where needed which helped us all lift our art up together. Lastly, we struggled with our time limit as art can be very time-consuming and we were nervous about hitting our deadline. However, we paced ourselves and scoped back slightly, and accomplished what we wanted to accomplish.

Twitch/Discord Integration

The first roadblock I had encountered with the coding part was an inability to get winget working. This app installer was needed to download node.js, discordSDK, and most applications the documentation for setting up a discord app recommended to use. This led me to lose hours due to troubleshooting before I made the switch over to WSL (Windows Subsystem for Linux) as I have more experience debugging and setting up servers with Linux-based OS. Our game was able to compile as a web application and run locally after build, but when it came to try and connect it to a Cloudflare tunnel I had running on port 5173 the HTML would not load the HTML with the game. At times it would show an empty square seemingly trying to load and start the game, but with hours of testing different ways to have my local server run our game, I was not able to get it to work. The main two errors I was getting were ‘CORS request’ not ‘http and source URI is not allowed in this document’ which I have never encountered before on web servers as I primarily use Apache.

Gameplay

We worked through different aspects of the game such as Collisions and Movement pretty easily. The issues started popping up once we started to integrate other aspects of the game into one product. These issues were minimal though, as we worked together to fix these bugs together.

UI

For all but one person on our team, Unity’s UI Toolkit was an entirely new tool for us to learn. We had three people working on UI, one person dedicated to it, and two people working on it partially as part of everything else they were doing. Learning UI Toolkit was a steep learning curve but thankfully we had prior experience with CSS which helped carry over knowledge. Additionally, the person on our team who had used it before provided us with helpful tutorial resources and assisted directly when it was needed. Learning an entirely new system cost us a lot of time, especially due to us learning with the tools in ways we did not have prior experience with, nor tutorials for. We created our designs with some lofty ideas that needed to be scoped down as progress continued. One of these was our idea to use a car gas gauge as a UI element to intuitively show the player their gas level. We were unable to fully finish the functionality of the gas gauge as programming the rotations of it gave us too much trouble and was taking too long that we needed to move on. It was replaced with a functioning bar.

Accomplishments that we're proud of

  • Very good work pace
  • Well organized and kept our cool during roadblocks
  • Twitch/Discord Integration
    • Getting a webserver up on my localhost machine as i am used to using vms
    • Learning how to use unity and vue
  • Team communication was strong, team assisted one another when needed
  • Putting together all of the art, programming, and pieces while split between in-person and remote groups
  • This was the first game jam for many members of our team !!!
  • Making top-down art/assets that were consistent with one another despite different artist working on them
  • Creating new types of creatures/assets that artist had not previously made before

What we learned

  • Going in with a fleshed-out idea and detailed list of things to do helped us start our work easily
  • Having separate teams streamlined the process → delegated tasks more easily and knew who to ask for help with certain bugs and tasks
  • Regular check-ins across teams helped us ensure everything was clear
  • Advanced our pixel art skills. We were able to streamline the process after getting into a steady flow
  • Learning various tools and new ways to use previous tools when creating assets, found new ways to mix colors for blending and creating visual depth

What's next for Scare Parts

Art

  • More in depth animations (ex: guns swapping out, ghosts running)
  • Ending cutscene
  • More enemies
  • Longer map with new obstacles

UI

  • Spend more time with and implement a working gas gauge with a rotating stick
  • Recreate the gas gauge and health bar to be on the sides of the player vehicle, and follow the player as they move around the screen
  • Create a pause menu
  • Create an options menu

Twitch/Discord Integration

  • Twitch polls between levels that vote for either event during the level or different level maps
  • Research discordSDK more as it is so new. Would love to see a concept like this integrated and playable on Discord

Gameplay

  • Diegetic tutorial episode where the players are walked through the mechanics and story of the game together.
  • Multiple levels
  • Boss mobs
  • Upgrades to weapons and car
  • Pause and settings screens

Audio

  • Multiple different background songs
  • Sound effects

Built With

Share this project:

Updates