Samba de Amigo Developer Diary #3

September 10, 2008

Samba de Amigo Developer Diary #3

Last developer diary, SEGA revealed how Gearbox
approached the task of updating Samba and bringing the experience to the Wii,
but they 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 they
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!