Developing the Rascal

The Rascals were originally supposed to be classical board game pieces, the ones that are sort of shaped like a truncated egg with a sphere stuck on top.  This was meant to anchor the game in the real world with an object that the player would expect to find in a board game.  Realizing that the nature of the Rascal and the personality we might be able to give it are extremely important to the player's impression of the game, we spent a lot of time figuring out how it should be.  To quote the original design document:

The player avatar is essentially a capsule clipped ~60% into the floor. The head is a sphere, which only rests in a fixed position at the tip of the capsule when the piece is not under player control. The eyes are textured circles, which change to a cross-eyed configuration on stun, and to crosses on death. The hands are disembodied half spheres, slightly stretched, with the truncated face towards the body.  The overall impression should be in the uncanny area that bridges cute and creepy.

Figuring we finally had the right idea, we knocked together a quick prototype and took it for a spin.  This immediately uncovered several issues, the most serious being that we would run out of space.  As seen from early sketches, the pieces hit the cuteness sweet spot when the width of the body was roughly 2/3 of its height. For a 7 cm tall piece, this gave a width at the base of roughly 4.6 cm, nearly half the width of the 10x10cm square, which meant that you could only just cram four pieces into a square with no room to move about.  Obviously, this severely limited the number of players that could interact in a limited space, prohibitively affecting the core gameplay loop.

Simply scaling the pieces was completely out of the question, since the head needs to rest at the height of the player's head when he is in first person view.  Just decreasing the width at the base made the pieces tippy and frustrating to place on the board.  This we could have fixed in a number of ways, but the slender pieces just didn't look very good, and that's not such an easy thing to fix.

When Lars went to work the first bullet point on the roadmap, "Create phys. env. w./ scaling transition", he based all the interactions on position snapping.  The pieces snapped to your hand when you picked them up, and they snapped to a preassigned spot on the square you dropped them on.  This had the advantage of being quick and easy to implement, giving us the foundation for testing basic gameplay concepts, but it didn't feel good *at all*, and did not in any way comply with the physicality requirements.  A lot of time was spent on trying to establish a physics framework that allowed you to move the pieces naturally, yet provided a precise mechanism for anchoring the pieces in place and preventing them from tipping over.

Every time we did a joint session, we reached a stage where most if not all the aspects of piece movement were governed by physics, while introducing a bunch of jank.  Every time Lars developed on his own, he fixed these bugs by re-introducing some level of snapping.  This took a surprising amount of time, and we were still struggling with how to prevent slender pieces from falling over when I got the idea for a radical design change:  What if we make the pieces hover above the board?  This would solve the tipping issues, but more importantly it would solve the space problems by allowing us to scale down the pieces drastically.  However, hovering pieces don't exactly rhyme with how I wanted everything to seem physical, and I found myself in the frustrating place of knowing I had the right idea, but hating it vigorously.

In the end, we constructed the Rascals around an invisible anchor sphere resting on the board, which has an artificially low center of mass so that it really wants to face one way.  The body of the Rascal is attached to this by means of a flexible joint that holds it roughly one body height above the board, and the head is attached by yet another flex joint to the body so that it can be batted around by physics interactions.  Ever try stacking joints on joints in Unity?  Much fun can be had, but that is a story for another time.  After lengthy tuning of joint strength, mass and friction parameters, we ended up with these adorable little egg shaped guys that can be picked up and tossed to whichever square you go.

This might not be what I had in mind at all, but it feels good in the hand and looks just right, which is way more important than what it says in the design document.

Note: This was first posted to r/Virtualreality, but has been re-posted here to keep the dev notes complete.