ONE Sequel

After having a great success with their previous N-GAGE mobile fighting game, One, Digital Legends developed this improved sequel, specially designed to push Nokia's new game platform N-GAGE graphic capabilities to its limits.

ONE Sequel features a cross-platform audio engine and 3 hardware abstraction layers for 3 different platforms (Windows, Symbian S60 and N-GAGE) The engine consists of a multichannel mixer based on an own message-based score format (Interactive Fast Translation Module), an own audio scripting system (Interactive Module Script, text-based) and an own uncompressed sample bank format (Isolated Sample Files & text-based Sample Lists) A module converter and a separate module optimizer were also coded to reduce sample data as much as possible. The result is very efficient: the final size of the music was 1.47Mb for 12:22 minutes from all music segments, 10 times less than could be achieved by an MP3.

The engine was also designed to keep CPU usage at a minimum to let the spectacular 3D graphics and animations shine. The setup used in the game (8 virtual stereo channels, 22050Hz 16-bit stereo output) takes 3.59% to 4.04% CPU raster time in a Nokia N73, the reference device. The engine features a 32-bit mixer with linear interpolation, a parametrizable environmental delay effect with custom presets for each scenario and mixed dynamic music support, handling horizontal and vertical dynamic music.

ONE Sequel features 8 original tracks, 7 of them interactive. Tracks feature real instruments, some of them multi-sampled by synchrnzr (electric guitar and bass, keyboards and other ethnic instruments). Samples feature single notes, but also fifths and chords and were carefully processed through a complex pre-mixing stage to maximize the final sound quality. Original samples were recorded at 48000Hz 24bit and downsampled to 22050Hz, using 8 or 16 bits depending on its harmonic content. A custom filter was specifically designed to keep high frequencies clear. Samples were also processed to attenuate the resonance peaks between 2KHz an 3KHz found in most Nokia phones.

Music was composed with a special module editor and manually scripted using an own format. Combat music starts with a short prelude loop which is immediately followed by a short transition to the action loops as soon as each round starts. Action loops use different instruments depending on the character's distance. When characters are far, some rythmical elements like the snare are softer or silent. As characters' lifebars are reduced and time runs out, music pitch raises using resequencing. Expected to create truly differents sequences, but simply there wasn't time enough. When each round ends, a transition fragment is played, waiting for the new round. When the combat ends, music immediately switches to an end combat loop before getting back to the menu. Each track contains more than 250 jump points to try to make music transitions as natural as possible.

Sound effect samples were packed in just 296Kb. We also syncronized them with all animation, a process which required a lot of time. Only 42 samples are used, though they appear almost 2000 times in the huge number of animations contained in the game. We wanted effects to be realistic, but they were probably too realistic in the end. Ambient loops for each scenery were also created but couldn't be included in the game due to RAM size constraints. All sound effect pitches and volumes are randomized trying to avoid repetition. However, the voice set is very small (again due to RAM size constraints) so voice effects can still feel a bit repetitive.

Despite the low sound quality due to platform restrictions and the short time for the project, it's still one of the best projects synchrnzr has worked on and the only one featuring truly dynamic music.