Technical Design

Jul 8, 2008 at 8:26 PM


Dividing the engine into separate projects allows us to cleanly define access based on a person's technical background. This enables artists and programmers of various disciplines to work in their areas without the overhead of not having personnel to fill other project requirements. This is especially advantageous for students and interns who want to demonstrate visualization technology or game ideas and are limited to a semester or even a year for research and development.

SHELL - Loads and Manages User-Control

 UCAD handles the automatic loading of UserControls from a dll with meta-data provided by the developer in matching xml schema.
No recompilation of the exe is necessary, allowing end-users to add or "mod" new interfaces to the existing system.

TOOLBOX - Business Logic and Event-based Control Layer

 A form-based user interface with built in compiler.
We are working to expand this layer with level design, cut-scene generation, and game-building utilities.
Data generated by the Application layer is stored in template descriptions in the Xml layer for consumption by the Model Layers.

CONTENT - Portable Data Layer

 Generated from the Application layer data files.
Loaded in by the Game and Engine layers at load time.
Contains art assets and xml files which configure assets into Model Layer loadable components.
Definition of this intermediate data layer allows for iterative distribution of new content to the end user.

GAME - Object Processing, or Creative Model Layer

 Allows easy expansion of the Engine by extending abstract objects and using public systems.
This enables game programmers to build specialized game logic without effecting core operating functionality.
Overrides can be used to re-configured, extend, or replace most of the Engine core functionality and allow access to the main entry for new systems.

ENGINE - System Processing, or Technical Model Layer

 Uses a data-centric Pipeline pattern which allows each world object to modify it's own behavior
during Load, Update, Collision, and Draw stages. Objects can also access any other object in the same Object Library.
The Pipeline pattern extends the Gpu processing pipeline into Cpu software stages.
It allows the user to override standard functionality in a way similar to the Gpu shader languages.

STREAM - Visual Feedback, or View Layer

 Contains draw libraries, a Graphical and Computational shader architecture, and Heads-Up-Display access.