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
LithTech
JAlice
3D Studio niceness (animations,bones,etc...)
Established JamODrum Input
Stability
Rapid prototyping
Speed with polygons
Easy programming
Speed with sound
Cons
LithTech
JAlice
???
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!