Creating an End State for Ragball from start to finish
As Technical Director of the Ragball team, I did tasks that pushed the boundaries of art and code to try and bring some juice into the game and help get it to where it is today.
Features:
Find how many characters are on each team, their sizes, and colors
Transition animation with built-in functions to run all game changes (list of changes down below) and displays correct UI for winning team
Mocapped dancing animations for the team that won and losing animations for the losing team
Skip to 1:06 to see the End State in its somewhat final form. Will update video once I get a chance :)
2020-02-19 01-13-59.mp4
Background:
Every game needs some kind of end, whether it be a cinematic, a new screen with results, or in our case...dancing ragdolls.
People were dissatisfied when a text object popped up on the screen showing which team won but it didn't have options to play again, it was hard to read the text, and they didn't feel like winning was a big thing.
In Workshop 1, the end win state and how it looked was put on the back burner since we had so many other problems going on and we had to deal with "God Script" but in Workshop 2 we had time to get the juice (stuff that looks good and helps to give the game a fun and engaging feel) into the game.
Process:
The game was coming along nicely but we still needed to have some form of an end state for the game. Initially Ryan and I got together to brainstorm ideas of what the end state could look like. We drew inspiration from Smash Bros. and Duck Game and were going to just make another screen that got displayed with the results for the players/teams. I continued to think about what the end state could look like and remembered that I did a mocap dancing animation at the beginning of Workshop 1. I wanted to incorporate that into the game somehow.
I started to think of where i could put the players where you can see them clearly and use the animations that we had to give them some life. I wanted to keep them in the current scene they were in so I decided to put the players on the "bleachers". I wanted to move the players transforms to the dancing positions and then give them a dancing animation.
Moving ragdolls AND giving them an animation? With that amount of loose joints and ragdolliness? Wasn't going to happen. So I took some time to think of what I could do and came up with an idea. Have hidden FBXs with the dancing animations and activate them when a team wins. Easy, right? WRONG! I had to find all of the current players sizes and colors, determine who the winners were, and adjust the dancing characters values to match that without the player seeing it all happen.
I created a shutter animation that closes and opens over the game scene. I placed a script onto the animation that ran functions only when the shutter was fully closed. Within this script I find all of the players, see if it was a tie or if a team won, set the dancers values to the correct setup, take control away from the players, move the camera, and display buttons so that you can either play again or go back to the menu.
i was able to set all of this up but then a problem came about. The master branch was changed and the main scene was renamed. I had to package and take all of the stuff I did and move it into a new branch off of Master and then i had to fix my code and adjust it to the new Player scripting setup. Took an entire night to merge my final win state changes over but it got in.
In Conclusion:
A good end state was created showing the players an up close view of the ragdolls (which have beautiful textures if I do say so myself) and allowed the players to play through the game multiple times without having to restart. Players enjoy the sense of accomplishment and end to the game and the end state is made just for that.