Project: Inkantation Role: Programmer
What is Inkantation?
Inkantation is mainly an experimental project. Completed for the course Production 1 (sophomore year), this was a team project where I was one of two programmers, and the overall directive of the project is an alternative controller, with alternative meaning "not keyboard & mouse, and not a standard controller". We chose to use Wii remotes and Wii Nunchuks. In concept, Inkantation is a prototype game in which the player must escape the clutches of corrupt law enforcement in an endless runner style, except in first person. The player has a supernatural ability to summon a variety of demons by drawing symbols in the air and on walls, in a graffiti style. This way, the player can set traps and defend themselves from advancing enforcers known as "Sicklers".
Personal Contributions
Main Contributions:
Interface Wii with Unity & PC
Gesture recognition
Drawing using a Wii remote
Audio management system
Cursor motion smoothing
Development Challenges
We developed this using Unity, which may seem weird considering we are using Wii technology as our controllers. This is just the first challenge. I took on this task. First, I found an old library that someone had created that acts as a driver for Wii remotes, however it did not support Nunchuks, and it only works when Unity is in play mode. This isn't ideal, since that means the remotes will disconnect from the computer once gameplay is over. After a ton of searching, I found the DolphinBar, which is from Dolphin, a well-known emulator for Wii games. The DolphinBar is a USB sensor bar that also holds the drivers and data interfacing for Wii to PC usage of Wii remotes, including the Nunchuk. Originally intended for use with Wii games played through the emulator, I figured we could use its "Desktop Control Mode" for our own purposes, since it just turns the Wii remote into an extra fancy mouse. All I had to do was smooth the motion of the cursor when in-game, as it was just using raw IR data by default. The next major challenge was gesture recognition. If the player is to draw shapes, we need a reliable method of recognizing those in order to summon the corresponding demons. I found a package on the Unity Asset Store that does just that, except it was meant to handle 2D pictionary-style games. I had to modify its math and data to handle 3D world coordinates and rotations, which was quite a task. I was able to design a method that actually allowed me to accomplish this without changing the fundamental mathematics of the application, just the data types. My method basically took the drawn points, projected them into a normalized 2D space, then passed that result into the plugin, which calculated the approximate accuracy of the drawn shape to a static asset.
コメント