Unicycle Samurai Alt Controls

Project Details

Project Duration: 8 months
Project Completion Date: December 2022
Development Environment: Arduino, Unity & C#
Team Size: up to 10 (see Unicycle Samurai team section)
Project Link: UnicycleSamurai.com (includes videos)
Awards: Finalist at the 2023 alt.ctrl.GDC ShowcaseArticle 1Article 2

My Contributions

Human Factors Designer
  • Designed physical controls for use by a wide range of players
  • Conducted multiple rounds of user testing and iteration
Hardware Engineer
  • Selected appropriate microcontrollers, sensors, and connectors
  • Fabricated, assembled, and wired controls using selected components
Software Developer
  • Programmed Arduino microcontrollers to take sensor input
  • Researched and used game controller libraries for proper emulation
  • Adapted Unity input settings and C# programming for satisfying gameplay using different controls

Summary

How do you give players the feeling of being on a unicycle? Put them on a cycle seat and make them move around!

Unicycle Samurai was prototyped in MSU's MI 455: Game Design & Development II. At the end of the semester, teams have to pitch games to move on from preproduction into a full semester of production in MI 497: Game Design Studio. One of the criteria for advancement is what conferences, exhibitions, and competitions the game could be shown at, and during the pitch development process our professor suggested that we could do something with a balance board and then enter it in the alt.ctrl.GDC Showcase. We took it from there, and I personally took the lead on the hardware development, Arduino software, and the aspects of the Unity game that interfaced with the alt controller.

You can also view the Alt Controls Design Binder for more detail about our iterations.

First Prototypes

There wasn't much time left in the pitch process, so I ordered a few things and built the first prototype that weekend. It was an Amazon Basics balance board with a cheap gyroscope sensor mounted on it; I had an Arduino Due sitting around so I wrote code to take two axes of the gyro and then fed them into an Arduino gamepad library so they'd be used by the game as the X and Y axes of the left game controller stick, which Unicycle Samurai used for movement.

After an afternoon of tinkering I had a working prototype that controlled a unicycle on-screen, was pretty fun, and provided a heck of a core workout. During the pitch process I also got a sword prototype working using a more advanced gyro from which I could get absolute positioning, but it was fairly skittish and just controlling the unicycle proved to be enough to occupy players' attention, so as with the regular Unicycle Samurai game we kept our focus on driving for the alt controls.

Me standing on the alt ctrls Mark I, an Amazon balance board with gyro sensor

Refinement

In May 2023, after the completion of the pitch process but before we knew if the game would advance or not, I continued to refine the controls. I built a base for the balance board to sit on, which would help keep it centered and provided some resistance through four large springs, helping the player balance a bit. I also modified the Unity prototype to provide an over-the-shoulder third person perspective rather than the top-down camera of the original game, and since we didn't have a second controller or an AI opponent, I made a version of our Japanese Garden level where players could ride around and pop spheres with their swords. I took this version to the IGDA Ann Arbor chapter meeting at the end of the month and got feedback from several players.

Based on that feedback, I expanded the base with a heavy-duty PVC bar which players could hold onto for balance. I took this to the Indie Showcase at Replay Cafe in Detroit that weekend where a dozen or more people played it. Feedback was very encouraging; players enjoyed it and the stability bar really helped them be safer and more successful at the game. However, between some lingering safety concerns and the feeling that while the board provided a balance mechanic but didn't really feel like riding a unicycle, it was time for a major evolution in the alt controls.

Alt controls version 3 at the Indie Showcase at the Replay Cafe in Detroit, May 2022

Final Form

After the three iterations with the balance board, I knew I wanted something with a bicycle seat to provide a greater feeling of embodiment with the game. In the end, I settled on an automotive universal joint (u-joint) which would allow a pipe with the bicycle seat mounted on it to pivot in all directions, with surgical tubing to provide resistance and re-centering. I built a new iteration and brought it back to the IGDA Ann Arbor July meeting where several people tried it. People liked the idea but it wasn't a huge success because the seat was too low, which combined with the type of movements required made playing very difficult on player's knees.

I also realized that unicycle riders don't turn by leaning to the side so the fifth prototype separated out two movements, a forward-backward lean for acceleration and a side-to-side pivot for turning. (Unicycle riders don't lean foward to accelerate either, but we're going to ignore that.) At this point the alt controls could no longer use a gyro for everything, so I used a pair of through-bore encoders to tell me the absolute angles of the two axles. At some point along the way I had switched from the Arduino Due board to an Arduino Leonardo Mini clone. The fifth prototype was also taller; testing with classmates showed it was still too low, but the separate pivot was a step in the right direction.

Another iteration proved to have some structural flaws before it was even tested, but the sixth main iteration proved very successful. This is essentially the version that was played by a couple dozen people at the pLANet Lansing MSU LAN Party in October 2022 (including an opponent AI by my teammate Adam, so for the first time people were really playing Unicycle Samurai), then by around a hundred players in head-to-head competition at Youmacon in Detroit in November and a few dozen more at the MSU Game Showcase in December. While the core mechanism and sensors stayed the same, I continued to iterate on how players would activate powerups and dash. These minor iterations included:

  • A panel with buttons for hand activation
  • Foot touch sensors that players could toe-tap
  • Haptic pads with vibration motors to give players feedback
  • Heel-kick buttons on the sides of the unicycle base
  • Finally, backward pedals next to the unicycle column so players can just put a heel down to trigger a powerup or dash forward
We stuck with foot activation rather than hand as an accessibility move; while the game requires full use of lower limbs, this provided us a way to accomodate players with upper limb differences.

A selection of some of the iterations of the alt controls

Future Ideas

I believe the alt controls are now basically in their final form but there is still room for improvement. The two main things I'll be working on for alt.ctrl.GDC are moving the back stops for the unicycle column forward a bit so players feel more in control, and finalizing the wiring through standard connectors to make setup easier and quicker.