Monday, September 30, 2013

Mark of the Old Ones: Early Days

There hasn't been any activity on this blog in months. But there's been plenty of activity at the Hit the Sticks office. You see, we've been working our asses off on our new project: Mark of the Old Ones.

Here's the capsule description: you play as Thomas Lyle, a surveyor in 1920's Alaska. Thomas suffers a plane crash at the beginning of the game, rendering his legs useless. He's then bonded to a grotesque symbiotic creature with long, powerful tentacles. Gameplay consists of controlling the creature's tentacles to swing about the environment and interact with physical objects in the world. It plays a lot like an upside-down platformer. There's literally nothing out there like it. Go grab the demo at the project page I linked above.

There's no real art in demo game yet; that backdrop is just a concept image. But nonetheless, I want to take this moment to crow about something of which I'm already quite proud.

At its core, Mark of the Old Ones revels in its unique movement mechanic. You swing through the world on a pair of physically modeled multi-jointed limbs. We chose Box2D to provide the core of our simulation due to its robust support for joints and motors.

Layered on top of Box2D is the part I want to talk about: the SquiggleIK Toolkit.

SquiggleIK is the name of our in-house implementation of inverse kinematics. Inverse kinematics (IK for short) is a technology used to create animation in real time. So, instead of an artist creating an animation by hand, the IK system works out the motion just when it's needed, based on some complex math and a target position.

Before I implemented IK, Mark of the Old Ones was based on a simple rope-like movement mechanic. To build momentum, you were simply "thrusted" in the desired direction. It was simple, but it didn't feel "real" in any meaningful way. And because of how non-physical the implementation was, it made it impossible for Thomas to interact with the world in any meaningful way--he couldn't pick up or carry objects, for example.

With SquiggleIK, however, we can keep Thomas 100% in the physical world. SquiggleIK works out ideal motor speeds for each tentacle joint, and Box2D solves the interactions between Thomas, his tentacles, and the environment. The result is that Thomas moves, lifts, pulls, pushes, and swings like a real creature.

The SquiggleIK Toolkit is available for license at our website.