Thursday, January 15, 2009

Closing the Loop

The game development process includes many stages from different disciplines ranging from pure technical tasks to pure artistic tasks. Every stage needs a to be deep in order for every aspect of the game to be acceptable, however one really important necessity in the whole process is the links between these stages which can be as important as the individual areas of expertise. These communications, for example exporting a 3D model from a 3D authoring tool into the game engine, would require special tools. Any problems in such tools will cause negative effects on the efficiency of the whole development pipeline.

Major game engines such as Unreal 3 are very well known to have such integrated tools that can stitch together the different stages. Some dev houses implement their own specific tools.

Up to now we have had a few tools to let us connect our development stages together in the form of a one way pipeline. The main features have been, Concepts to 3D Max for modeling, 3D Models to Char Studio for animations, Char Studio and Max to our in house level editor for laying out the scene, level editor to our in house game engine to build the actual game. This pipeline was all we needed for building a demo level but since our focus is more on making the actual final game levels, we need to pay attention to the fun factor regarding game design issues a lot more now. Level building and tweaking is done in our editor but the final scene finish up is done in 3D Max since we do use a few features that are handled by Max very well and it will not be feasible in our current time frame to re-implement those features in the editor. This would require a ping pong between Max and the editor since we would need to come up with an overall spatial model of the environment built in Max, load it into the editor, arrange the game play related elements in it, play test, tweak, and then resend these basic level element positions to Max to finish up the aesthetics related features, maybe return to the editor, tweak and then back to max again. For this we obviously needed a loop back in our one way pipeline which we created very recently thanks to a few Python scripts and Max Script. This reverse direction in the pipeline will help us a lot. A few more communication channels would probably be needed in our quest towards achieving a rather lean process.