Engine Clients

From FIFE development wiki
Jump to: navigation, search

This article is part of design documentation. Design 32.png

Design documentation describes how software is implemented or is about to be implemented. It focuses on system structure (e.g. dependencies), module interactions and relevant algorithms. Concepts described in these articles should form the terminology that is used when discussing about the software that forms FIFE.

This article is outdated and needs to be reviewed! Outdated.png

The content of this article is outdated and should be treated as such. We cannot guarantee the accuracy of the information presented here.

High level view

Engine clients are illustrated in the following picture:

High level view to the engine clients

There are two categories of games that might use engine's functionality. First (and the most common one) is games made with scripting language. These use engine extension APIs that provide convenient way to access engine level functionality. Some games however might already have large existing c++ based codebase. This kind of clients can use engine core services directly and "cherry pick" the functionalities that they see useful. Examples of this kind of services are e.g. audio functionality (OpenAL + format support) or virtual file system capabilities (e.g. direct reading from zip files).

Engine utilities are helper applications built on top of engine functionality. Example of such utility is fallout content extractor. Engine extensions should provide sufficient apis for this kind of utilities.

Editor can be used to generate engine compatible contents, e.g. map layout. Engine extensions should provide sufficient apis for editor.

Engine tests can test basically any aspect of engine, thus they might need access to several levels of engine APIs. In general tests should work as automated as possible.


You can proceed to the lower abstraction levels using the following links.

Module Descriptions