ABSTRACT

A game engine is a large and complicated software system. The principles of objectoriented software engineering and large library design apply just as they would to any other large system. This chapter presents a review of some basic issues of objectoriented infrastructure. In addition, specific issues related directly to implementation of object-oriented support in the game engine are also addressed, including naming conventions and namespaces, run-time type information, single and multiple inheritance, templates (parameterized data types), shared objects and reference counting, streaming, and start-up and shutdown mechanisms. The final section is about a generic structure for an application layer in order to support the various components of a game engine with as much decoupling as possible.