In this article, I'll be focusing on getting started with GlovePIE, but there are other programs that use the Wii Remote, or translate its input. WiinRemote is a fun program to start off with. Its primary function is to turn your Wiimote into a virtual mouse, but it also gives you a visualization of what the Wiimote is detecting when you motion with it, and what its IR sensor "sees".
GlovePIE is an easy-to-use application which, through the running of custom scripts, allows input from the Wii controllers to emulate another form of input, such as a keyboard or a mouse. Carl Kenner originally developed GlovePIE as a tool to get his P5 Glove to work however he wanted, in whatever programs he wanted, and with the advent of the Wii Remote, he saw that his program could be modified to support it as well. Through GlovePIE, the Wii Remote's buttons and D-pad, tilting and motions, or full gestures can be mapped to keyboard keys, mouse movements, or virtual joystick controls (more on this later).
Writing scripts for GlovePIE doesn't require any heavy programming experience – though having some doesn't hurt, either. It's designed to be user-friendly, and since it's rather lenient about syntax, it's easy for BASIC, Java, or C programmers to make the switch. But even if you've got no programming experience at all, there is still hope. There is a large community of GlovePIE scripters across the net, and many of them are willing to share some tips and code with novices. You can try to figure out how things work by picking apart some of the Wiimote scripts that come bundled with GlovePIE, but if it all reads like Martian to you, don't worry -- you can use the GUI and let GlovePIE bang out some script code for you. For instance, if you want to have the "Enter" key pressed whenever you shake the Nunchuk, simply shake the Nunchuk while GlovePIE is in detection mode, and then tell it to hit the "Enter" key for that motion. Writing a script really can be that easy!
The GlovePIE GUI tab makes it easier to learn input and output commands
GlovePIE is only compatible with Windows operating systems, though there are other programs for utilizing the Wii Remote in other operating systems. There's CWiid, lg3d-wii, Libwiimote, PerlWiimote, and WMD for Linux, and for Mac OS X there's DarwiinRemote, Remote Buddy, and The Wiinstrument. Of course, GlovePIE isn't the only game in town if you're running Windows, and we will be covering some of the other mods and applications in future installments of Revolutionary.
You don't need much in the way of hardware to get your toes wet. Just a Wii Remote and a computer with a Bluetooth interface are required, but the Nunchuk, Classic Controller, and Sensor Bar are also supported. In GlovePIE, there's a specific function for checking to see whether or not a Nunchuk or Classic controller is attached, so it's possible to switch between entirely different control schemes by simply plugging in or unplugging one of those attachments.
Rez switches between analog stick and motion controls by plugging and unplugging the Nunchuk
Unlike the Xbox 360 controller, or the Wavebird for Gamecube, the Wii Remote uses Bluetooth, a non-proprietary wireless interfacing standard, to connect to its mother console. That's great for us, because it means we can also connect the Remote to other devices that use Bluetooth. Cell phones, PDAs, and computers have all been found to connect with the Remote. However, efforts to get it to do something once connected to anything other than a computer or Wii, are in their infancy.
If you haven't got a compatible Bluetooth interface device built into your computer, you can purchase a USB Bluetooth adapter. Wiili.org and Wiibrew.org have lists of compatible Bluetooth devices, and you can also ask for tips and get help in forums. Shopping from the products among these community-updated lists is probably the best way to be sure you'll get a setup that's Wiimote-compatible, though you may get lucky with something that isn't listed.
To initiate communication between your Wiimote and the PC, you need a Bluetooth stack - a set of protocols for transmitting and receiving data between Bluetooth devices. The most popular Bluetooth stacks for Windows are Widcomm and BlueSoleil, and you may use one of them (and only one at a time) to connect your Remote to your computer. The first time you connect your Wiimote, it might seem like a long, convoluted process that you won't want to go through repeatedly, but it does get easier with experience, and the reward is definitely worth the small bit of hassle.
The Widcomm Bluetooth Setup Wizard showing devices in range
The Wii Remote has a deceptive appearance, in that the sparse distribution of buttons and complete absence of any analog sticks make it look downright archaic in comparison to the standard of modern controllers with dual-analog sticks and an abundance of pressure-sensitive buttons. But the simplistic look of it belies its immense potential as an interactive input device. Motion, gestures, and tilt can be used to perform a lot of the tasks usually delegated to analog sticks and buttons, and the pointing feature that the IR sensor provides, allows objects, characters, and the camera to be interacted with and manipulated with a degree of swift and acute precision that isn't afforded by analog sticks. A racing game that puts all the buttons and sticks to work on a traditional controller may have all the same features covered through motion-sensing and the buttons of the Wii controller. It's even possible to play a first person shooter using just the Remote with no attachments.
Up to 4 Remotes (plus any assortment of Nunchuks or Classic Controllers) can be connected and scripted for, and feedback such as LEDs and rumble can be controlled by other connected devices. For example, Remote #1 can have a rumble or LED sequence activated by pressing a button or performing a motion on Remote #2.
One of the most ingenious traits of the Remote is how its shape allows it to be held any number of different ways. You can hold it in one hand like the remote control for your TV; turn it sideways like a NES controller, or if you run short on ideas you can always consult Wario Ware: Smooth Moves.
The Nunchuk features the same tilt and acceleration sensors as the Remote, and also has an analog stick and two digital trigger buttons. Its small, rounded shape and button/stick layout allows it to be held and in ways that are simply inconceivable with standard controllers. Turn it horizontally and it's a flight throttle with hat switch. Hold it out in front of you with the underside turned toward your abdomen and you can use it to strum a virtual guitar. Hold it vertically with the Remote in the other hand and you can have dual air-joysticks for Robotron. The possibilities are as broad as your imagination.
The Classic Controller doesn't have the motion-sensing capability of the Remote or Nunchuk, so given its traditionally familiar shape, its button layout, and dual-analog sticks, it's often used as a standard gamepad. Through GlovePIE, the analog sticks can be made to act like digital joysticks, semi-analog (variable responses at different angles or positions), or fully analog. With some determination, it's possible to mount the Classic Controller on top of the Remote, and then run scripts that utilize the features of both.
One simple way to get your Wii controllers to act like standard game controllers is to use PPJoy, a virtual joystick driver that GlovePIE natively supports. With PPJoy-specific code in a script, a Wii Remote, Nunchuk, or Classic controller can have its sticks, buttons, d-pads, or even motions mapped to generic joystick functions. For instance, the left stick of the Classic controller could be mapped as a joystick for a flight sim, while the right stick is mapped as the hat switch, or taking a more radical approach, the Remote and Nunchuk could be the joysticks through motion and tilt detection.
To get smoothly responsive controls analogous to using a mouse, you'll need a Sensor Bar, or other source of infrared that the IR "camera" at the front of the Remote can "see" and track. By foraging about your home, you may find any number of items that fit the bill from A/V remotes, to candles, to Christmas lights. You could make your own wireless or USB Sensor Bar, or if your Wii is in proximity with your PC, just turn it on (after pairing your Remote[s] with the PC) and use the Wii' Sensor Bar.
When the Wii controllers were first unveiled at TGS 2005, gamers immediately began imagining the possibilities of playing their favorite games in new ways. Some of those games just can't come soon enough to the Wii, while others stand little or no chance of ever being brought to the system. Others yet will need for the developers and/or publishers to become aware of the possibilities before embarking on the challenge that is Wii. In each of those cases, the homebrew community can play a part.
The potential for novel interfacing with Wii controllers is immeasurable. In the lifetime of the Wii itself, we may never see all the possibilities, but if we all apply our imaginations and contribute a script, a program, or an idea, we can use the Wii controllers to play games and virtually interact like never before.