Freedom of Motion Alpha 4

by Taylor Hadden | 0:01

A Refinement Update

It’s been seven months since Alpha 3. A bit long, but we’ve been keeping busy.

The advent of the fully-featured Personal Edition of Unity 5 let us integrate the Mecanim inverse kinematic solution. The motion and behavior of this system was dramatically different from our previous home-brewed solution, and that meant that we had to edit nearly every part of the climbing code, sometimes significantly. We also spent a lot of time looking for and ironing out jerky transitions between motions. The result is a feature set that isn’t all that different from the last alpha, but we hope those behind-the-scenes changes make the gameplay as a whole more enjoyable.

We did add a few new features though: falling damage, death, and checkpoints. Simply put, landing from too high a height will kill you, though you can hold crouch to roll when you land and cushion your fall considerably. This makes high places feel particularly precipitous and lends a new dimension to levels. We also made movement over half meter blocks and stairs much smoother, and you no longer stutter-fall down them.

Included in this release are three levels: Pillars, The Pit, and Tower. Their alphabetical order is also their order of difficulty (and Tower is very difficult). They all assume that you’re familiar with the controls, so check the readme included in the download.

An incomplete changelist, in no particular order:

  • Added a couple new textures
  • Added the ability to generate levels with a different starting texture
  • Entity and player data can be arbitrarily stored in a level (supporting custom player information per level)
  • The player now saves the last spawn point it touched and will spawn there upon death
  • Integrated the Unity 5 IK system
  • Sprinting has different maximum values depending on which direction you are going
  • Ledges now track obtuse corners
  • Ledge information is used to facilitate going up and down half-meter blocks and stairs
  • Moving into a ledge hang or cling now uses spring dynamics to preserve momentum and provide a smoother transition
  • Made it so hands must be a minimum distance from one another
  • Hands moving on a ledge accelerate out of a standstill
  • Feet transition between ledge positions more smoothly
  • Fixed several cases where you could mount a ledge at inappropriate times (such as through walls or behind you)
  • Fixed an issue where when moving laterally between ledges you sometimes moved too far
  • Added back the ability to edit blocks on the octree grid by holding Alt
  • Added the ability to climb up and vault into gaps that are at least 1m high (previously only allowed for 2m gaps)
  • Added falling damage
  • Added damage from going too fast (allows for death by bottomless pits)
  • Pulling up onto a ledge first separates your hands to an appropriate distance. Which hand is chosen by which direction you are trying to move.
  • Holding the high profile button (sprint) speeds up all ledge movements
  • Added a threshold where if you are going too fast when you grab a ledge, you take damage. If you are damaged past a certain threshold, you cannot hold onto ledges and will fall.
  • Made it so that you can vault up 1 meter ledges without holding high profile
  • Some motions require that the player has settled somewhat into a static ledge hang before they can activate
  • Fixed a bug where settings weren’t being reverted and applied correctly in the Options menu
  • Restricted the player’s head while hanging from a ledge so that you can’t clip the camera into the wall
  • Fixed an issue where if you transitioned from a slide to a crouch in a 1m high tunnel the camera would clip into the ceiling
  • Fixed an issue where going around a ledge was blocked if the ledge was .5m wide and next to a wall
  • Added a soft-targeting system to ledge jumps where the jump will try to sent you in the appropriate trajectory to land on the ledge you are looking at.

Future Plans

For the next release, we will be focusing on improving the editing tools. This will include a new tool for editing voxel data, an interface for selecting what blocks you have selected, and an interface for browsing and placing entities like lights, text, and spawn points. We also have a custom material editor in the works that will let us quickly create new block types. We’re trying to keep the scope of this cycle a little more controlled, as it took a little too long to get this update out the door. As with the previous alpha, you can follow our progress on Trello.