I've been a little worried that I wont be a good judge of what a fun challenge is, because at this point I've played a lot of it, I know all the in's and out's of how it works, and I know how I've intended it to be played. So for the last week or so my game has been the the hands of some playtesters and I've also taken it with me to work/game meet ups/lunches/just everywhere, shoving it into as many hands as I can. With a couple exceptions, the resounding results were:
THIS IS WAY TOO HARD!
I knew it was going to be a hard game but oh my, not like this
What did I learn from the playtesting?
From watching people play and reading between the lines from the feedback from the online playtesters. There seemed to be an over reliance on "Lean" mechanic ( you could use left and right to nudge your balance back into place). The way I intended the game to be played was that you'd pedal back and forth to try to keep your wheel under your centre of gravity, only tapping left and right to help out in dire situations. Most people I watched play didn't do this, instead when they lost balance they would stop turning the crank entirely and hold left or right while planted until they got their balance back, this often meant they overshot and lost and if that didn't happen they'd end up very gingerly inching down the track while holding lean. This is really not the game play experience I was looking for.
How do I fix this?
Well if the issue is over reliance on the lean mechanic, why don't I remove it? This is a little easier said that done, but yeah, that what I did.
Before I go further, lets explain how the game currently work. I using verlet integration, often used for mesh/ragdoll simulations, example - Pikuma. I'm only using 2 nodes and 1 link, 1 node for the head and 1 for the wheel. I apply a constant gravity downwards to the head (red), and when you lean I apply a perpendicular force to the head (blue). Moving the crank moves the wheel.
This worked fine, I had a few know to tweak to try to try to balance, could lower gravity, adjust the lean force, the length of the link.
The resulting game felt a lot like trying to broom on your palm, which was fun if your brain made that connection, I think the issue was for a lot of people they didn't see that connection, and without that it felt really hard and unintuitive.
So I can just remove Leaning and call it a day, I need to replace it with something.
This was simple enough. If your balance was over a certain threshold, apply a lean force the same was I was previously. There are 3 different force levels applied depending on how far you're leaning but this was quite simple to add.
Essentially, if you're leaning forwards, auto-lean will apply a force in the opposite direction to try to regain your balance, but if you're also pedalling forwards while leaning forwards you'll have a stronger force applied in the opposite direction to regain your balance faster.
With just auto-lean and pedal-assist it was definitely much easier to regain and maintain your balance, however, moving forwards was still very slow and difficult.
When riding an actual unicycle, to move forwards you need to move the wheel slightly behind you so your centre of gravity is slightly forwards, they when you pedal you're moving the wheel back under you while you're leaning forwards to keep your centre in front. It's this constant balancing act and that's what I wanted to replicate.
If you're leaning forwards when you pedal, there'll be a small force applied to the back for your head to keep you leaning forwards while you move forwards.
The last thing I needed was some damping for the verlet integration. My character ping-ponging between leaning all the way forwards and all the way back. Wasn't too hard, just multiply the acceleration applied by a factor slightly less than one.
With all this done, I think I have a pretty good feeling game, but I know I'm a terrible judge So back to the playtesters!