719A game object class hierarchy usually begins small and simple, and in
that form, it can be a powerful and intuitive way to describe a collection of
game object types. However, as class hierarchies grow, they have a tendency
to deepen and widen simultaneously, leading to what I call a monolithic class
hierarchy. This kind of hierarchy arises when virtually all classes in the game
object model inherit from a single, common base class. The Unreal Engine’s
game object model is a classic example, as Figure 14.3 illustrates.
14.2.1.3. Problems with Deep, Wide Hierarchies
Monolithic class hierarchies tend to cause problems for the game develop-
ment team for a wide range of reasons. The deeper and wider a class hierarchy
grows, the more extreme these problems can become. In the following sec-
tions, we’ll explore some of the most common problems caused by wide, deep
class hierarchies.
ActorBrushControllerAIController
PlayerControllerInfoGameInfoPawnVehicle
UnrealPawn
RedeemerWarhead
ScoutLightInventoryAmmunition
Powerups
WeaponHUDPickupAmmo
ArmorPickup
WeaponPickup.........
............ ......Figure 14.3. An excerpt from the game object class hierarchy from Unreal Tournament 2004.
14.2. Runtime Object Model Architectures