In this chapter, we focused a lot on creating flexible code. Since we are using the Component Object Model with our game objects, we want to make sure that, as our objects change, they handle that change well. This means we don't want to modify lots of other files as we playtest and balance our objects.
We said at the beginning of this chapter that the goal for our game objects is to completely define them in a file. Since we are using components in our objects, we want to define the components that are used by the objects within the file as well. By defining objects in a file, our programmers are free to work on other code and the designers can work on balance and play testing without fear of breaking the game or introducing bugs.
After looking at a simple example of the Prototype pattern, we looked at how it is used in the Mach5 Engine. We saw both the M5Component
class and the M5Object
use a Clone
method to make copying objects easy. These of course, were used by the M5ObjectManager...