T1: Source code layout and coding conventions

Source Code Layout

  • The base group is comprised of a bootstrapper/console executable, the scripting service, and a few support libraries. It is the engine kernel, so to speak, which provides the framework for the services to plug into. However, it is also useful on it's own as an extensible, performance-oriented Lua distribution.

  • The services group contains all of the engine services. These include:
    • Collider. Collision detection for basic shapes.
    • IO. Flexible data I/O system supporting file format plugins.
    • Render. High level 2D and 3D rendering API.
    • System. Windowing, user input, timers.
    • Text. Font generation and text rendering.
    • StdIO. A collection of reader/writers for common and F4 specific file formats.
    • StdLib. A collection of useful objects and services.
A collection of sample applications, mostly written in Lua, are available in F4/Samples.

The file F4/Base/Shell/Src/shell.cpp contains the bootstrapping code for the engine. This small application sets up the execution environment, then loads and launches the engine. Any script files specified on the command line are run. If you are interested in creating a new C++ application from scratch, you should start here.

At startup, the engine will attempt to run the file core.cfg from the application directory. The default version maps the generic subsystem names to some specific implementations.

Documentation

All of the documentation for this project is generated by Doxygen. The doxyfile configuration file and the sources for overview documentation (such as this) are stored in the Engine/Docs directory, while service specific documentation is written inline with the source code using formatted comments. Pre-generated documentation may be downloaded from the website.

I am particularly keen to improve the documentation for this project and would welcome any assistance in this regard.


Flat Four Engine
Copyright (C) 2001 by 379, Inc.
This page generated by Doxygen