Monday, June 29, 2009

Modding a COTS Game

In October 2008 the Elon University Digibahn Project began modifying The Elder Scrolls IV: Oblivion, a commercial off-the-shelf (COTS) game with a freely available game editor (TES Construction Set) in order to build a proof-of-concept game prototype. By April 2009 we had imported a few basic 3D meshes, developed an instructional blueprint, and programmed some basic NPC dialogue and interactivity:



Although creating game mods TES Construction Set considerably lowered the barriers to game 3D game development by freeing the programming team from developing difficult game engine components (e.g., physics engine and collision detection), the platform also imposed serious limitations. First, each development team had its own industry-standard software and proprietary file formats, which made it difficult to import model meshes created by the 3D art team into the game development kit used by the programming team. Files needed to be reformatted via intermediary software and then exported in a different file format, which in turn could introduce errors into the model meshes. Second, Oblivion-based mods retained the graphical user interface (GUI) of the commercial off-the-shelf (COTS) game, with its concomitant fantasy role-playing game elements, which the content and instructional development team thought would be distracting to player/learners. Finally, although the final game mod could be freely distributed, playing the mod would require player/learners to purchase The Elder Scrolls IV: Oblivion.

Based on these concerns, in May 2009 development on the DigiBahn Project shifted from modding a COTS game to developing our own stand-alone product. After much debate, the development teams decided on using the Blender 3D content creation suite as a game development platform as it is free and open-source, can run on all major operating systems, and comes with a built-in Python-based game engine containing audio support, collision detection, and game physics. Game Blender, which uses a system of logic bricks with link lines to develop logic within a game, allows non-programmers easily to develop 3D computer games, although more complex games will require programmers fluent in Python programming language. In addition, Blender can easily import Wavefront (.obj) and COLLADA (.dae) file formats, which would allow the 3D art team to continue developing in their industry-standard Autodesk Maya platform and then to export their work into Blender. The move to Blender will significantly simply the project workflow by reducing the number development platforms to only two. Future game development may see an eventual transition to a more powerful graphics rendering engine such as OGRE.

No comments:

Post a Comment