Specification of Games

Game programming is part of many IT study programs. In these courses and in game-programming texts games are not considered on abstract, implementation-independent level, but discussion is based on some specific implementation environment: a programming language (C, C++), a software package, preprogrammed libraries etc. Thus instead of discussing games on general, implementation-independent level only specific features of these programming environments are considered. Here is presented a framework for object-oriented, structural description and specification of games as event-driven object-oriented systems. At first should be considered game visual appearance and game mechanics --they create the “feel”, player's experience. Game structure and logic are considered on implementation-independent level using an easy-to understand specification language. The framework emphasizes separation of data structures from game engine and game logic and thus facilitates maintenance and reuse of game assets and objects. Mechanisms for automatic adjustment of game's difficulty --so that it will be just suitable, not too easy but also not too difficult --are also considered. The specification method is illustrated with several examples. Specifications of games created with this method are easy to transform into implementations using some concrete game programming environment; this has been tested in a game programming course.