The assignment me and my team were given during this project was akin to a game jam - we were tasked to create a prototype for a game in less than three weeks. The only constraint that we were given was a theme in form of a picture.
We saw the clouds that looked like snow, and we saw angels, so naturally, we decided to make a game about snow angel racing with unique controls. I loved the idea as soon as I heard it, and our team set out to make it a reality.
We managed to create a very fun small two-player game with interesting controls that people enjoy playing. People that are skilled with their thumbs are able to pick up the controls and race each other, while the rest just have a good laugh looking at their characters rolling around in the snow. Of course the game is very rough in many ways, but such is a nature of a prototype.
This picture is what we've been given as a "Theme" for the game jam
I took up a leading role during this project. I was the person who was responsible for the vision, and tried to steer the team in the right direction.
I was a gameplay programmer on the team. I came up with and developed the custom physics and controls for character movement.
All physics are based on friction. I used unity's rigidbodies for integration and collision, but took over control over velocities myself. There are several points on the arms of the character that apply an impulse to the character's rigidbody opposite to their movement during the frame. The closer arms are to the body, the less they push it. In addition, there are four points on the body itself that apply their own friction. To make the movement more smooth, I also tweaked other things. There is higher friction when moving sideways, and the body won't rotate until it reaches a certain angular force.
I snap the body's rotation based on the normal of the landscape below it, and apply force based on it to make the character slide down slopes. All physics values are tweakable per surface type that is under the character (less friction on ice for example)
Movement of the arms themselves is pretty straightforward. I just extend all the joints away from the body, based on the joystick positions, and the ragdoll's arms snap to that.
As all of this was done in very short time, there are a lot of things that can be improved. One major mistake in development was that I developed and tweaked movement of the character based on my own temporary character before our artist delivered a character with completely different proportions, which changed physics completely. The ice also came along pretty late, so I didn't tweak it as I wanted, and instead of being a surface with it's own strategy (you can get more speed, but there is less control), it is just very uncontrollable.
You can also hear my voice in the trailer that I made, above.