Game Development Reference
It's hard to read through a topic on the principles of magic without glancing
at the cover periodically to make sure it isn't a topic on software design.
Each and every tool is unique, but there are always core elements that are common
to them all. Designing these core elements to be modular and reusable is advanta-
geous and will save money and time when building subsequent tools that need the
same functionality. Many developers build elaborate solutions to a simple prob-
lem, often reinventing the wheel in the process. These solutions are often complex
and hard to maintain, costing additional resources that are better spent on other
areas of an application that are more deserving of the time.
The chapters in Part II cover arbitrary elements that are applicable to almost any tool,
independent of the feature list or specifications. The accompanying components to the
chapters are also flexible enough that they can be plugged into these arbitrary tools
with little to no modification. It is this reusability that will save a project additional
resources that can be spent elsewhere. The majority of the chapters cover techniques
that are relevant to the storage and manipulation of arbitrary data in a common form.
Some techniques include data compression, encryption, printing support, using the
PropertyGrid control, and a generic framework for handling batch file processing.