Paul James Mannering Portfolio
GamesProgramming3D ModellingMultimediaAbout

Project Realism Engine

November 2004 - February 2007


h

  • The Project Realism Engine (PREngine) was my first game engine.

  • It was developed while I was at university, as a side project for the first 2 years. In the final year it was used in its first game, called Boy Racer.

  • Written in C++ and Directx 9.0c, using Microsft Visual Studio.NET 2005, and FX composer 1.8 for HLSL shader development.

  • It went through many revisions and started out as just a learning experience with Directx, but evolved to contain:

    • A physics engine (using Newton Game Dynamics).
    • Lua scripting support.
    • XML parser.
    • 3D surround sound.
    • Complex scene graph (which arranges scenes by material, instance, or distance from camera, for max rendering speed on Directx 9 hardware).
    • Resource manager (loads .x meshes, textures, sounds, and .fx HLSL effects).
    • Keyboard, mouse, windows controller, and XBOX360 controller support.
    • User interface (UI) system.
    • Video player (using DirectShow).
    • Full HLSL shader support (that automatically scales for a range of graphics cards; from shader model 1.1 to 2.0b).
    h

Please e-mail me if you would like to see the C++ source code.

Car Paint

Car Paint Closeup

Parrallax Box

Parrallax Stone

Parrallax Stone Specular

Physics Experiment

Reflection Specular

 
Physics Demo

Effects Demo

August 2007

  • Displays 3 boxes with the following shaders on.

    • (Left) Texture Mapping
    • (Middle) Bump mapping with specular highlights.
    • (Right) Parallax mapping with specular highlights.
  • All shaders scale from pixel shader version 1 through to 2b (Set shader quality in settings box).
  • Shaders written in HLSL, using FX Composer 1.8.
m

Demo

Physics Demo

Physics Demo

July 2007

m

  • Uses Newton Game Dynamics for the Physics.

  • Uses the PREngine to load the scene and draw the graphics (Uses a Directx 9.0c powered renderer).

  • Shows a sphere being projected into a tower of blocks. The physics simulation can be paused and restarted at the touch of a button.

  • I've included the automatic Doxygen code documentation as well (which makes reading whole code bases much easier, although it's just here for demonstration purposes).

m

Demo.......Documentation

© Copyright Paul James Mannering, 2004-2011