This paper describes a general architecture for real-time game software. The architecture is designed to maximize reusability in both single player and networked multiplayer modes. The architecture separates generic components from game-specific components by positioning the object system to minimize coupling. As a result, the architecture is easily adapted to a clientserver configuration for multiplayer modes. In addition to presenting the general architecture, that architecture is used as a framework in which to discuss several design options and the tradeoffs between them. In particular, we will discuss how the choice between an object-centric and a component-centric object system affects the design of other components of the game software. In addition, issues related to the synchronization of object systems for networked multiplayer modes are discussed.
[1]
Amir Geva,et al.
Beginning Direct3D Game Programming
,
2001
.
[2]
Richard Hull,et al.
Language Constructs for Programming Active Databases
,
1991,
VLDB.
[3]
Gregor Kiczales,et al.
Aspect-oriented programming
,
2001,
ESEC/FSE-9.
[4]
Rudy Rucker,et al.
Software Engineering And Computer Games
,
2002
.
[5]
Richard Hull,et al.
Database Programming with Delayed Updates
,
1991,
DBPL.
[6]
Karen Gail Lewis,et al.
ON THE BOOKS
,
1988
.
[7]
Dave H. Eberly.
Game Physics
,
2003
.
[8]
David H. Eberly,et al.
3D Game Engine Design
,
2001
.
[9]
Richard Hull,et al.
Structures for manipulating proposed updates in object-oriented databases
,
1996,
SIGMOD '96.
[10]
D. Bourg.
Physics for Game Developers
,
2001
.