In 2005 Aspyr Media published Stubbs The Zombie™ in Rebel Without a Pulse™ on the Xbox® video game system from Microsoft, PC and Mac. Stubbs, an original IP created by developer Wideload Games and its founder Alex Seropian, was built primarily for the Xbox using the Halo engine that Seropian worked with during his time as co-founder of Bungie. With Wideload focusing its development resources on the Xbox version of the title, Aspyr Studios was tasked with reengineering the code for the PC and Mac SKUs.
Aspyr Studios was tasked with reengineering the code for the PC and Mac SKUs.
Stubbs is a game that is built on a very Xbox-centric engine. Technology-wise, porting the game to the PC and Mac was difficult because it relies on very specific low-level shader functionality that is unique to Microsoft’s console. Replicating this for a more generic set of PC and Mac video cards was going to be considerable work. Additionally the code base for the game was continuously changing, with major content additions and changes coming even up until very late in the project, making it difficult for the PC and Mac versions to stay up to date. Finally, Aspyr Studios was up against very tight deadlines. In order to maximize marketing dollars and sales, the game needed to ship on the PC and Mac very close to the Xbox SKU and before the crucial Holiday season.
In order to make Stubbs for PC and Mac a success, Aspyr Studios leaned heavily on its expertise in porting graphics engines from various gaming platforms. Coordinating the development of the two SKUs could have presented problems, but the studio chose to have the PC and Mac versions of the game live in a unified codebase. This allowed for dual builds at the same time, and meant that Xbox code merges and general bug fixes propagated to both platforms immediately. The decision to use OpenGL also contributed to the ease of doing multiple platform SKUs simultaneously, as did using OpenAL for sound.
Because the Stubbs Xbox version achieved performance almost exclusively by directly feeding the Xbox video hardware at the register combiner level and dynamically compiling its shader programs at runtime, a unique solution to tuning performance on the PC was required. Aspyr Studios decided to implement the PC and Mac versions of Stubbs with OpenGL rather than DirectX because OpenGL supported nv_register_combiners natively, which allowed for the Stubbs shaders to run with minimal reworking on comparable NVIDIA hardware. For ATI hardware, Stubbs used arb_fragment_program shaders, which were dynamically translated at runtime from the Stubbs Xbox register combiner shaders. To maximize performance, after translating the shaders from register combiner to PC specific NVIDIA or ATI format, the resulting native shader was cached for later use. This also allowed the team to hand-optimize a small subset of shaders that commonly caused performance problems on the PC, by substituting the static hand-optimized shader for its corresponding cached shader.
In order for this entire process to go smoothly, and wrap up on time, working closely with Wideload was essential. Aspyr Studios’ lead engineer for Stubbs PC/Mac was able to visit Wideload early in the project for three days of intensive work with the lead Xbox engineer. This gave the studio immense insight into the engine and toolset. After the initial trip, our engineers kept in contact with the Wideload engineers via email and phone only as necessary so as not to impact the Xbox development team, which was working feverishly to finish the title on time.
In order to keep up with the pace of development for the Xbox SKU of Stubbs, especially late in the cycle when a tremendous amount of content and code features were being added, Aspyr Studios became very disciplined about segregating platform specific changes to the code base with #ifdefs. This allowed the team to do frequent code merges from the Xbox to the PC/Mac codebase, while maintaining the PC/Mac specific changes and bug fixes that had already been made.
Aspyr Studios, despite having to toil with one of the most hardware-specific game engines, hit all of its deadlines in developing Stubbs for the PC and Mac.
Aspyr Studios, despite having to toil with one of the most hardware-specific game engines, hit all of its deadlines in developing Stubbs for the PC and Mac. Aspyr created clean, stable and fun games that were true to the IP and was able to get the two SKUs in stores only two weeks after the Xbox version hit retail outlets.
