Samba de Amigo developer diary #3
Last time, we learned how Gearbox approached the task of updating Samba and bringing the experience to the Wii, but I saved the best part: the controls. How did Gearbox translate the fun of the original game’s maracas to the Wii Remote? What were the challenges we faced and how did the controls evolve over development? These burning questions and more will be answered!

Shake, Shake, Shake

Samba de Amigo is a game about shaking maracas, and the original game could be purchased alongside a set of maraca peripherals. When you play Samba, you shake the maracas in high, medium, and low positions according to the targets on the screen. Sounds like a perfect fit for the Wii, with its built-in motion sensing remotes, doesn’t it? Well, it is, but making the controls perfect was no small task!

The hardware inside the original maraca peripheral is different than what makes the Wii Remote work. In the maracas for the Dreamcast, there were two sets of input: one that determined the height of the device and one that detected shaking motions. The accelerometer inside the Wii Remote only has input that can tell you direction and force. The trick with getting the controls to feel perfect was figuring out a way to use the data we could get from the Wii Remote to replicate the feel of maracas – shaking and all.

Turning Remotes into Maracas

Because of the differences between the Dreamcast maracas and the Wii Remote, we basically had to start from square one when it came to implementing controls. We knew this would be our greatest challenge in development; the control mechanics are the core of the game. Get them wrong, and it’s just not Samba!

First up was research into the technology employed by the Wii Remote. “We spent a bit of time researching accelerometers in general, spanning areas from robotics where they are used to estimate position and tilt and measure tactile feedback, to areas that measure human body movement,” Shawn Green, Lead Programmer, was intimately involved in creating the controls. “After getting some basic understanding of practical uses for the accelerometer data in general, we wrote some visualization tools to see the data in action and determine how to apply the input to the context of a person holding, moving, and shaking a pair of maracas.”

The first pass at controls involved selecting low, medium, and high note targets. The accelerometer inside the Wii Remote measures two kinds of movement: static acceleration to determine tilt when the device is at rest (affected only by gravity), and dynamic acceleration for when the device is moving. To determine which target the player is selecting, we used the static acceleration data to figure out the orientation of the Wii Remote as it relates to the ground. Challenge one: solved!

So, now we can select a low, medium, or high note target. That just leaves the fun part, shaking! We could have used button presses for shakes, but then the Wii Remote wouldn’t feel much like a maraca if you couldn’t shake it, right? We needed to deliver a faithful Samba experience to the Wii audience, and we needed to live up to the original, so we dug deeper for better solutions. Using the data from the Wii Remote, recognizing a shake is fairly easy; you can just watch for a strong movement or acceleration. The problem we had to address was that this movement could still affect which target the player was selecting. Remember that the Dreamcast maracas had different hardware than the Wii Remote – we had to use the data just from the Wii Remote’s accelerometer to determine both selection AND shaking.

This was the most challenging part of developing the controls. How would we differentiate a shake from target selecting motions while the player was in a maraca-shaking frenzy? We came up with a few possible solutions to the problem, but in the end the solution we stuck with was a system that took into account the intended target for the note and the target that the player had currently selected. If those two matched and the player shook at the right time (as the note indicator reaches the target), it would be interpreted as shaking instead of target selection. Problem solved!

Last Details

So at this point we had the controls implemented. You could select targets and shake, and it worked perfectly. There was one last control-related concern: Hustle Mode. In this mode, users still shake along, but must perform additional combinations of gestures such as shaking the maracas back and forth between two positions. Implementation for this mode turned out to be fairly easy; after all, measuring movement over time is one thing the Wii Remote’s accelerometer is good at! The gesture system looks at the direction the player is moving the device to determine a direction.
Once the controls were largely in place, it was time to test, test, test, tweak, fine tune, and test some more. Testing was integrated in the entire process of development, and as the controls emerged and became more solid, testers helped provide feedback to fine tune them. We spent a lot of time even after the system had been nailed down testing and making the controls more responsive. There were lots of tired arms in the Gearbox QA department!

Until Next Time

Sounds like a lot of work just to get a remote to pretend to be a maraca, doesn’t it? Now you know the down-and-dirty details behind how Samba’s controls scheme works on the Wii platform. When you play it (and I know you will), you’ll be able to fully appreciate the efforts we took to reproduce the fun of Samba for your Wii! Special thanks to Shawn Green – without him this inside look at technical challenges wouldn’t be possible! Stay tuned, because next time we’ll be talking about the music selection for Samba!