Cleanup Clash
Project Details
Role:
Tools Used:
AI Programmer
Animation Programmer
Unreal Engine 5.2
Trello
Google Docs
Time Frame:
Link to game:
March 22nd - 31st 2024
" You must do the thing you think you cannot do."
About the project
Ah, my last game jam as a student of Shawnee. Senior classes had ramped up as the semester went on, but my team couldn't pass the last jam. Much of this jam was done over Discord, with members dropping in and out of calls to either go to classes or work on assignments. In the end, we scraped together a funny little game about competing trash collector companies.
With the theme "trash," Violet jumped on designing the game (See our previous jam together in Trash Panda Part Pack). Two waste management companies would fight for total control of the city's trash collection by duking it out in the filthiest alleyway. Whoever collected the most garbage would win, but who wants to play fair? Employees would smack, raid dump trucks, and drive raccoons to assault the opposition!
With the time available to me, I programmed the AI and animations. I worked closely with our animator Gabe Martinson to implement his cartoony animations into the game. We would talk back and forth on a call, tweaking animations and working through the right export settings to work with Unreal. Once I got them running in engine, we'd review them together and revise from there. I believe these animations became the heart of our game. The inspiration from Looney Tunes soaked the gameplay in a slapstick style humor that fit the hectic gameplay well.
The AI was simple: Have a hazard that attacks players and makes them drop some trash. The day before the project was due, a party was planned. Instead of going and hanging out with my wonderful friends, I stayed back and coded the entire thing that night. Tyler Cobb, a good friend and roommate of mine, came back from the party and said something along the lines of "I'm so proud of you." That was my favorite moment in this jam.
How it works
Animation Implementation
The animation blueprint may look familiar to Unreal's starter content users, specifically Manny! When making the animation blueprint for the player characters, I went through Manny's animation blueprint piece by piece and replicated its structure. I am so thankful for the helpful comments left behind by the makers of the starter content!
Following Manny's ABP design, I made a simple blend space with the walking and running animations. This lets the characters have smooth changes when starting and stopping movement.
The Raccoon
It all comes back around with the return of the trash panda. The raccoon follows a simple behavior tree: moving toward a random player, moving toward the closest player, then returning to its spawn location.
Instead of having a passive/hostile state like my other AI, I wanted this one to be attacking the players as soon as it spawned in.
After moving toward a player, the AI sight perception will take over, finding the closest player in the vision cone. This is taken from my Cowboy Defence Force project. The raccoon will attack once it reaches the player, causing said player to drop trash.
Finally, after attacking the raccoon will return to where it was spawned. Upon reaching its target, it will despawn, seeming to disappear into the trash.
One Big Bug
I'd love to be able to tell you that the AI works just as described, but uh, it doesn't. It's an issue in the sight sense. The raccoon can only see the first player. I changed some things around thinking I was optimizing the code when, in reality, I removed the option to see other players. If the raccoon sees the first yellow player, it will only target it. No one on the team noticed the bug until the jam was finished, but man, what a bummer.
What I learned
Rewards of an Unwanted Task
Sometimes, you have to step up when no one else will. While I never planned to make animation programming a part of my career, it was wonderful to work with Gabe and learn something new!
Crank That Theme to 11
When discussing the tone of the game, we kept pushing harder and harder for cartoony gameplay. I think we got that feeling down and it carried the lesser parts of the project.
Embracing Imperfection
A game doesn't have to be perfect to be enjoyable. During live demos of the jam games, we had the whole assembly cheering on the trash collector teams. The raccoon was loved as well!
People See What You Do
Having Tyler compliment me on putting in the hours after working so hard in such a short time was the best reward I could get. Doing similar things for others will bring the team together.
Gallery



