Every (other) Tuesday, Mike Sylvester brings you REVOLUTIONARY, a look at the wide world of Wii possibilities.
The rhythm gaming genre, while relatively young, is already on the verge of becoming stale. Hitting buttons in time with a visual cue only remains as fresh as the accompanying song. But there's a new game that's set to turn the genre on its ear and destroy your preconceived notions of what a rhythm game can be. Today we'll be giving Audiosurf the GlovePIE treatment.
A few weeks ago I expressed my disdain for wipEout XL, which I had been playing to test its worthiness as a comparative platform for the Wiimote versus the SIXAXIS. It's admittedly a good game, but my experience with it at the time had been anything but. For a few months prior to the showdown, I was building a script for the game to demonstrate one of my favorite aspects of the Wii controller design. The script was to feature several different control methods that could be automatically selected by just holding the controller a certain way or plugging in a Nunchuk or Classic Controller.
Well, the PC version of wipEout XL, being old, does not run very well on today's machines. The already-fast game plays at hyper speeds on a modern machine and real Jedi reflexes are needed to control it. So I completely wiped it out of consideration for scripting, and suspended work on those projects which involved that game. And then came Audiosurf – a game that, at its core, is the embodiment of the "have it your way" sensibilities I wanted to express with my multifunctional script, and at the same time, it incorporates the high speed thrill ride dips and dives of a futuristic racer like wipEout.
Audiosurf lets you load up your own music, which the game analyzes to build levels. That alone is not an entirely novel idea, but the twist comes from the puzzle-style gameplay. The tracks are littered with colored blocks for you to collect and arrange, until they disappear and you're rewarded with points. It's a simple concept that's been the basis for countless great puzzle games, but the musical element dictates the placement of the pieces and the tempo of the music sets the speed at which the game runs.
At first I wanted to try controlling the game with just the IR sensor pushing the virtual mouse cursor. But the game is designed in such a way that miniscule flicks of the mouse can slide your ship from one side of the track to the other. I could have designed an IR script to accomodate for that, but I also wanted to keep the full range of mouse motion available for navigating menus and clicking on the pop-up dialogs that give you tips in the tutorial levels. So what I ultimately decided on was to have the IR sensor control the mouse pointer's full range, and limit the mouse range on the other controls.
var.MinXRes = (Screen.Width * .45)
var.MaxXRes = (Screen.Width * .55)
If (Wiimote.HasNunchuk = False) or Nunchuk.ZButton
// Mouse movement
(Mouse.X /2) = Wiimote.PointerX
(Mouse.Y /2) = Wiimote.PointerY
Mouse.CursorPosX = smooth(MapRange(Wiimote.GX,1,-1,var.MinXRes,var.MaxXRes))
Mouse.Y = smooth(MapRange(Wiimote.GY,-.5,.5,1,-1))
Mouse.CursorPosX = smooth(MapRange(Nunchuk.JoyX,-1,1,var.MinXRes,var.MaxXRes))
Mouse.Y = smooth(MapRange(Nunchuk.JoyY,-1,1,0,1))
Fewer than twenty lines of code gives us three ways to control the mouse pointer, which controls your "car" in the game. A couple more lines could add in Classic Controller support, which might even work well for Audiosurf's "Double Vision" mode. But we'll save that for another Revolutionary.
// Mouse Buttons
Mouse.LeftButton = True
Mouse.LeftButton = False
Mouse.RightButton = True
Mouse.RightButton = False
Key.Space = Wiimote.Home //Help
Key.Escape = Wiimote.Minus //Options
Key.Enter = Wiimote.Plus //Enter
Wiimote.Rumble = Wiimote.B //Rumble when firing
Shift + P + I + E = Wiimote.Two //Stops script running
My inspiration for this project came from using my iPhone. It, like the Wii Remote and Nunchuk, has an internal accelerometer for detecting tilt and motion, and the iPhone's iPod interface can change from a standard media player interface to the Cover Flow interface by just rotating the device. Around the time that I realized the brilliance of this simple trick, I was working on a script for Star Fox 2, and thought it would be neat if I could change from my Excite Truck style of Arwing control to a more natural joystick style of control when transforming my ship to the landwalker mode. Titles with varied gameplay are made all the more interesting with adaptable controls, but if transitioning between control methods initiates the change in gameplay style-- that's another degree of coolness.
Imagine a Rogue Squadron game in which you point your Remote at the screen to pilot your X-Wing in pursuit or evasion, and turning the Remote sideways "locks S-foils in attack mode" and gives you finer motion controls for banking and rolling. There are so many possibilities to explore, and I'll be exploring some of them in future GlovePIE scripts.
If you've got ideas for a game that might benefit from a control conversion, let us know in the comments.