Home

Tutorials
Game Engine
Documentation
Papers
Alt. Projects
Audio Projects
The Team
Contributors
Places
Things

We work in the dark
We do what we can
The rest is the art of madness
- Henri James

Summary

... a flexible 3D utility knife, which enables artists and technical professionals to rapidly build their vision.

The DarkWynter engine is designed for students, researchers, and industry personnel interested in rapidly prototyping 3D applications. It has been constructed in response to the vizualization community's need for a modular system which can support a variety of research and educational gaming requirements. We focus on extending simple override systems to the user, making it easy to prototype new technologies quickly. The student or researcher is provided a flexible architecture with default behaviors built-in. The specific area of research can be overridden with minimal support development. Through our efforts we hope to provide the flexibility and horsepower necessary to generate modern 3D applications within the 3-5 months students have available in the semester.

 

Download and Setup

    Getting Started

Tutorials and Overviews

GameObject          - 3D data-centric object model.
ObjectLibrary       - Object Management and Scene Wrapper.
Override Systems    - Extend or override engine sub-systems.
Pipeline-Processing - Data moves through pipeline stages which extend gpu principles to the cpu.

 

Full Documentation

Development Strategy  - Project Management Strategy.
Technical Design      - Software descriptions and usage.
Known Issues          - Problems and Milestones.
 

Features

Far from being a simple XNA engine, we integrate approximately 30k C# lines of code with around 3k GPU graphics and computational code.
Project development interfaces allow for extension (or replacement) of major engine components using a simple override pipeline.
Drawing shaders, terrain generation, animation, particle physics, all run on the graphics card.

 

Layered MVC-extended architecture with data-centric pipeline execution

Layers consist of Shell, Application, Data, Game, Engine, and Stream packages.
Shell layer loads .Net User-Controls from Application layer dll's using a simple XML file.
Game/Engine/Stream layer pump/pipeline execution applies GPU-pipeline concepts to CPU-processing.

 

3D Object Data Model

Hierarchical data-centric object-model with virtual Load, Update, Draw, and Postdraw methods.
Simplified X3D-like XML-based loading system.
Each GameObject has access to the entire data-model during Load and Update methods.
Object-Object and Terrain Collision virtual methods receive callbacks from Physics.

 

Engine Override Hooks

Entry-point overrides include Init, Update, Draw, and Exit functions.
Controllers are event-based and bind keyboard and mouse keys to public static engine components.
Menu system is composed of atomic UserControls which bind to public static engine components.
Game Logic override class provides a "sandbox" for working on strictly "in-game" logic.


Draw and GPGPU shader architecture

GPU-based terrain auto-forming, true-vision for AI, and physics processor.
Partially successful results for GPU collision and an object-oriented data model for 3D computing.
Gpu-based Object Encapsulation maps OOP concepts to gpu, proving a data-centric "chambered-pipeline" architecture.


Build and Deploy Tools

Support for network based distribution of episodic-content across http.
Dependency installation support (missing from XNA).
Level Editor which allows .Net UserControls to be added as plug-ins.