Heya, Thanks for visiting!
edited

I recently participated in the 3 day 2014 GDSE Game Jam and created a fairly solid result: Super Bounce. You can download it for Windows and Mac at superbouncegame.com . Also, as per the open source guideline of the game jam, the game's source code is available on GitHub.

Play Now

The journey

Super Bounce is based on the super bouncing physics bug from Halo 2. To do a super bounce: just land on a mesh edge with a "crouch" and a relatively high velocity to soar to the sky. I did a lot of super bouncing back in the Halo 2, original Xbox days and even had my own bouncing clan. You can find a lot of super bouncing montages on YouTube if you want to see the original mechanic in action.

This was my first time participating in a game jam, and everything went smooth without many snags. I was able to start off with a nice base because I used another open source project I created, Radius, an open source Unity project reference that covered most aspects needed like multiplayer, UI, etc.

The biggest hurdle of this game was figuring out if you are landing on an edge. There are a lot of scripts out there will give you the closest vertex on a mesh but that was not good enough for this game. You can see what I am doing in the source code but the gist of it is that I loop through the mesh and find the closest vertex. Then, I find all connecting points to that vertex from the triangles array to form the lines and see if the player is close enough to be considered colliding with them. The current implementation is still not bullet proof but it does detect edge collision very well.

Another point of conflict was the character controller. I had a script from an earlier project that used SweepTestAll and the complex collider capability of a rigidbody. This worked well but you could easily walk/clip through walls. The second iteration still used a rigidbody but set the velocity attribute directly. This solved the walking through walls issue but messed with the bouncing mechanic. The player would sometimes bounce/slide off the edge and fall into/through corners. The latest version, 0.5, uses the standard capsule character controller in Unity because it works well for a humanoid and the other scripts were just something I made for complex shapes.

Gameplay

  • Jump off a building and land on a mesh edge while holding Shift to super bounce
  • When landing on an edge, you need have a velocity that is greater than a normal jump. Jumping off of a building is usually necessary for the initial bounce.
  • Land on multiple edges, for example on a corner, to bounce higher.
  • Chain bounces together by continuing to land on edges to get to taller buildings.

Note: I have not implemented the literal "crouch" as it was known in Halo 2. Instead, you just have to hold Shift while landing on the edge.