Six months ago I started thinking about my next game and I wanted to try something a little different. Still using Unity and 3D graphics but not using Unity’s physics engine. It had been a mixed blessing. Many of the early comments about Impossible Rainbow Road (IRR) complained about excessive bounciness especially at invisible cracks in the road. I spent lots of time working around the engine’s behavior.
Somehow I came up with an idea for a die rolling around a grid. A puzzle game with the objective of reaching the finish line (the tile marked with a checkered flag), not with a shortest path but with a path that maximized the sum of your pips. (About the same as the longest path.)
It was a somewhat interesting puzzle. I wrote an exhaustive solver to find the maximum-score path for any grid. The video above shows my quick manual solution with a score of 128. The solver found a path with a score of 170.
After playing it for a while I didn’t think it would make a good phone game. A difficult puzzle isn’t the kind of thing people want to play over and over. But it got me started down the road of a cube rolling around a grid. (All the rolling behavior was done with the DOTween tween-animation engine, not with physics.)
After several more months I ended up with Cubey McCubeface.
It’s still sort of a puzzle game but that’s not the primary challenge. It’s more of a twitchy arcade-type game. I was influenced by the old 80’s arcade game Q*Bert. Visit all the tiles to make them all the same color, while being hindered by various randomly-appearing enemies.
I’d be interested in hearing people’s comments about the levels. I worry that Level 4 is too hard, with a two-step color sequence (yellow – violet) but losing a step (back to yellow) when you revisit a tile. Q*bert was popular with this kind of sequence but I found it somewhat frustrating.
Level 5 was my new thing, with tiles that vanish instead of changing color. (You can see it at the end of the promo video.) I like it, but in the first release nobody ever saw it because they gave up in the harder levels. In the second release I removed the restriction of playing the levels in strict order.
More grousing about physics… I spent a couple of months trying to make a two-person game — starting with simultaneous players in IRR — with little success. I found it impossible to keep the two balls in sync between devices such that collisions looked realistic. A collision would look correct on one device but the balls wouldn’t be close to touching on the other device. My take-away message was that a physics engine doesn’t coexist easily with multi-player.
The final straw early in the year was the Unity 5.5 release which updated the physics engine (from PhysX 3.3.1 to 3.3.3). IRR’s physics started behaving unpredictably, especially when the ball made a glancing collision off a wall. It made the game essentially unplayable. I spent some more time on work-arounds but finally gave up and reverted to a previous Unity version.