Tech

Dr. JamODrum
or:
How I Learned to Stop Worrying and Love LithTech



JamODrum Experiences have been built on multiple software platforms in the past. Rhythm Breaker was made with C modules for the Macintosh MAX program (good for musical game creation) and the original CircleMaze was made entirely in Java. The next iteration (CircleMaze II and HipHop) employed JAlice for multimedia presentation and game logic. It utilized Java foundation for input and interlayer communications. Musica modified this paradigm by putting all the game logic into Java and ran graphics and sound through JAlice.

So, while JAlice allows for 3D graphics in JamODrum experiences, it has serious stability problems due to program control and thread issuse. This leads to fatal crashes and game lags. After playing CircleMaze for awhile the game degrades ungracefully until it eventually halts. While the exact cause of this is unknown, this behavior exists. Musica also experienced problems with speed. The feeling nowadays is that JAlice is quick to create, great for some things, but not always quick to run.

JamOElvis is taking the JamODrum in a new direction! But when one moves forward, not everything comes along for the ride. In order to implement new code for Jam-O-Elvis DirectX 8 had to be installed. This caused the old jnidirectx.dll, the library that allows Java to talk to DirectInput, to fail. The library and some java files needed to be brought up to speed in order to run on the upgraded software system.

JamOElvis uses the LithTech gaming engine, also used for such ETC projects as Virpets, MasterMotion, ARRG, and Crowd Pleaser! Thanks to the large input code base already in existence at the ETC, adopting the JamODrum to C++ required only a bit of logic recoding. It is our belief that projects written using the C++/LithTech base will run faster, crash less, and provide an easier and more robust pipeline to artists then the previous software platforms used.

There was long deliberation put into choosing LithTech for the JamODrum. Everything from Flash to a revisitation of Java2D was considered, but it kept coming back to JAlice and established code or the new world of LithTech...

Pros

LithTechJAlice
3D Studio niceness
(animations,bones,etc...)
Established JamODrum Input
StabilityRapid prototyping
Speed with polygonsEasy programming
Speed with sound

Cons

LithTechJAlice
???Limited Animations
No skeletal animation
 Slow with larger environs
 Crashes


Ultimately we went with LithTech, and after that was decided we dove in! All the funcionality of the old Java classes have been implemented and expanded upon to include such perks as X10 control, which allows plug and play control of lights and any other appliance you could hope to use with a JamODrum. *cough* smoke machine *cough* Sound is amazingly easy and fast as are the graphics of the world.

The next step...

A framework for programming skits and gameplay is in place that is extremely modular and extensible so that future development should be quite rapid.

User Testing

As I mentioned before, everytime I conduct user testing I'm amazed at what I find. We tested the JamOElvis experience on everyone from CMU CS students, to art and design students, to just regular, random people. It was very rewarding, brought to light many bugs and areas that needed clarifying. User testing feedback was responsible for arrows on pads, length changes in various segments, more Elvis feedback, clearer instructions, and even the inspiration for the final win/lose conditions that are in place today. To take one example, I originally was lazy and had an 8 frame animation of the wheel turning to be displayed when people turned the wheel. However, that meant that the design on the wheel did not stay where your finger was. People did not like that, so we added 24 more frames and now it works like you would think it would. Also, it was interesting to see that most people just started whacking the pads to make as much noise as possible, while others simply turned through the selection, playing each one, listening, and choosing another. And even though Amy's narrator did not have a southern drawl as some wished it would have, we kept it in. Remember, Thank your user testers, and give them stickers when you can!