To develop interesting behaviors with our intelligent algorithms, first we must understand our system. We must have a model, so let us start with a simple one and refine it later. Then, the next step is to try and develop interesting algorithms based upon our refined model to effect how the objects change upon each iteration of the program to promote something... intelligence? player fun? etc.
The Objects data is contained in memory, a file, etc.
The Objects properties (e.g. velocity, color, mode, etc.) are changed via the player inputs, our algorithms, and confined to certain constraints (e.g. game type, devices, etc.)
The Objects are rendered through some devices.
The Player is the game player which attains information through various devices (e.g. monitor, force feedback, etc.) and outputs information to play the game through other devices (e.g. keyboard, mouse, joystick, etc.)
Ok off to reading or sleep which ever comes first.