Games/Object version 0.02 ========================= INTRODUCTION This module is intended to serve as a base class for game objects. It is designed to take much of the burden from the game programmer by providing the mechanics for storing and manipulating game data objects. The functionality of this module can be divided into the following sections: Attributes This are arbitrary, named data items on an object. Rules for modification of attribute values, including automated update and persistent modifiers, can be set up with ease. For example, you could set up an attribute such that: - It stores its value as a decimal, but polling the attribute always rounds to the nearest integer. - It is confined to the range of 0 to 100, and attempts to modify it outside that range are truncated to the minimum or maximum automatically. - It automatically tends towards the maximum of 100 by 1 each time the object is processed. - A user-defined chunk of code is called if the value falls to 0. Modifications of attributes can be made to: - Persist such that they can be cancelled later and revert the attribute value back to what it was before the modifier was applied. - Persist but automatically time out after a given amount of time. - Persist but have its initial effect be delayed a certain amount of time. - Invoke used-defined chunks of code when changes to attributes applied. Flags Arbitrary, used-defined flags can be placed on objects. These flags can be made such that: - They are automatically set on objects when created. - User-defined code is invoked when a flag changes value. Load/Save Object data can be saved to an arbitrary file and then read back in later to produce an exact copy of the object. This essentially provides the bulk of save/load game functionality. CHANGES FROM LAST VERSION See the Changes file for details. INSTALLATION This is packaged as a standard CPAN module, thus you ought to be able to install the module with the following steps: perl Makefile.PL make make test make install This module is pure Perl code, thus there is no C code to be compiled. DEPENDENCIES Perl 5.005 or better is required. There are currently no dependencies on other modules other than standard Perl core modules. BUG REPORTS This is an ALPHA release. Please send all bug reports to stwrtpj@earthlink.net. Suggestions at future functionality are also welcome. COPYRIGHT AND LICENCE Copyright (C) 2002 Peter J. Stewart, all rights reserved. This module is distributable and modifiable under the GPL and the Artistic Licenses.