TJHSST Computer Systems Lab Senior Research Project Modular Architecture for Computer Game Design 2006-2007 Teddy McNeill November 3, 2006 Abstract Common current game architectures limit program flexibility and modularity. With the advent of middleware and the increasing complexity of games, this is no longer acceptable. In this project I will attempt to design and implement a highly modular, Data-centered architecture based on the "System of Systems" approach. The final implementation need not have any significant complexity within each system (e.g. graphics, AI, etc.) but rather must demonstrate the successful interaction of independent systems. Keywords: software engineering, software architecture, objectoriented programming, games 1 1.1 Introduction - Elaboration on the problem statement, purpose, and project scope Scope of Study This project involves both an adequate design and a complete implementation of a game. The design is based on the research presented by Jeff 1 Plummer in "A Flexible and Expandable Architecture for Computer Games" and requires the implementation of several independent systems that a game requires. The final implementation requires that each of these systems is present, modular, and interacting to form a working game. It does not require any level of complexity within each system. For example, the graphics system could involve only cubes, the sound system could only use beeps, etc. The proof of concept in this project lies not within the systems themselves but rather in their interaction. 1.2 Expected results The expected result from this project is a working, modular, System-ofSystems game implementation. The purpose of this is to understand more the necessities of such a design and to produce a modular prototype that could be used for further game engine design. 1.3 Type of research This project is an example of pure applied research. The goal of the project is to create a working implementation rather than to promote fundamental knowledge. 2 Background and review of current literature and research As mentioned before, this project is primarily based on the design promoted by the paper "A Flexible and Expandable Architecture for Computer Games" by Jeff Plummer. The paper reviewed current games and their architecture requirements before comparing different designs and concluding that the System-of-Systems approach is the most desirable. Why, Plummer asks, must a game be rewritten if the only change between the two is a different graphics system? By isolating individual systems this can be resolved. 2 3 Procedures and Methodology After prototyping and gaining an understanding of the various algorithms necessary for individual systems, I now plan to begin with the complete design of the program. During the coming months this design will be implemented. Throughout this process, testing and verification will be performed primarily through evaluating visual feedback. Systems such as physics, collision detection, graphics, and AI can be evaluated by examining correlative visual output. Screenshots and traces of movement over time within the game world provide the best means of testing and verifying the program. Naturally, different inputs will be used for different systems (such as displaying differing textures within the graphics system). The proof of concept of the project as a whole will come after the majority of the game architecture has been completely implemented; at this point, I will attempt to add a working sound system into the completed game. Since the value of the project is in the evaluation of development practices, the ultimate research will come from my own evaluation of the process of adding a new system to an otherwise completed game. 3