Technical Design
From Elemental
game the game g@m3_th3_g@m3 g@|v|3_+h3_g@|v|3 - Engineered by Jason Hardman & Subhir Rao
Contents |
Diagrams
Game Development Overview
ObjectLibrary - Object Management and Scene Wrapper. GameObject - 3D data-centric object model.
Override Systems - Extend or override base sub-systems. Pipeline-Processing - Data moves through pipeline stages which extend gpu principles to the cpu.
Layer Summary
Artists and programmers of various disciplines can work in their specialty areas without having to develop unrelated engine requirements. This is advantageous to students and researchers who want to demonstrate visualization technology under limited time or resource constraints.
Dividing the engine into separate projects allows us to cleanly define access based on a person's technical background. Team or multi-team projects can develop independent of other aspects of the project. Each team simply updates their respective repositories as they reach major milestone goals.
Layers
CONTENT - Network Portable Data Layer
Accessible to Toolbox, Game, and Engine layers at load time. Contains xml-descriptions of art-assets. Xml definition of assets allows for episodic distribution of new content to the end user.
SHELL - Toolbox Loading and Layout Manager
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 - Event-based UserControl Layer
Traditional UI components encapsulated in Forms.UserControls(). Toolbox layer binds to Game, Engine, or Stream layers by accessing statically accessible variables and functions in the lowerlayers.
GAME - Object Model Layer
Game Layer allows for easy expansion of the Engine by overriding GameObjects or by using public systems. This enables game programmers to build specialized game logic without effecting Engine's 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 - Systems Model Layer
Engine Layer extends the Gpu pipeline into Cpu software stages, allowing users to override standard functionality similar to Gpu shader languages. It provides a data-centric pipeline which allows each GameObject to modify it's own behavior during Load, Update, Collision, and Draw stages. GameObjects can also access any other GameObject in the same ObjectLibrary.
STREAM - Visual Feedback, or View Layer
Contains draw libraries, a Graphical and Computational shader architecture, and Heads-Up-Display access.