Skip to content
kfprimm edited this page Dec 27, 2011 · 2 revisions

MaxB3D is a large project that lacks extensive documentation. Therefore, this document is an attempt to familiarize anyone interested in what's 'under the hood', or a developer who simply wishes to get the most out MaxB3D in their application.

Central to MaxB3D's design is the utilization of BlitzMax's object-oriented type system and existing infastructure.

It has been designed to be extremely modular, a luxury afforded by the module system. This allows a developer to import only the necessary components required, thus reducing executable size. For an engine developer, it assists in maintaining such a large project.

Core Engine: MaxB3D.Core

At the heart of MaxB3D is the core module. This contains all the platform/API/implementation-independent code required to run a MaxB3D program.

The core module defines the following functional types:

  • Textures and brushes
  • Entities (Camera, lights, meshes, etc.)
  • Worlds

And, the following abstract types:

  • Animators
  • Graphics drivers
  • Physics/collision drivers

Textures and brushes

Entities

Every object that is drawn by MaxB3D is derived from TEntity.

Worlds

In MaxB3D, every object belongs to a world, TWorld.

Graphics drivers

In the spirit of being modular, the core engine can be run alone, without the need for a graphics context. This could be useful in server environment where a GPU is not available, and most likely not needed. In addition, this independence also means that the graphics driver can be switched dynamically, without the need to restart the program.

Graphics Drivers: MaxB3D.GLDriver, MaxB3D.D3D9Driver

Clone this wiki locally