Paul Mannering

Screenshots Logo 1 2 3 4 5 6 7 8

Project Realism Engine

November 2004 to February 2007

  • The Project Realism Engine (PREngine) was my first C++ 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 Microsoft 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, .dds textures, .wav sounds, and .fx HLSL effects)


    • Keyboard, Mouse, Gampad, and Xbox 360 controller support


    • 2D 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)


Screenshots Logo 1 2 3 4 5 6 7 8 9 10

Project Realism Editor

January 2003 to February 2007

  • The Project Realism Editor (PREditor) was a custom map creation tool I wrote for the Project Realism Engine (PREngine)


  • Written in Visual C++ (MFC)


  • Runs the PREngine inside the viewport(s) for a WYSIWYG (What You See Is What You Get) experience


  • Allows for:


    • Positioning of 3D assets (Meshes, Billboards, Lights, Cameras, etc)


    • Adding and testing 3D sound placement


    • Setting up physics and testing the outcome


    • Previewing HLSL shaders


    • Altering all global and local settings within the level; such as the ambient background colour and level of detail (LOD) meshes for each mesh node in the scene graph


  • The reason for its development was that as the PREngine grew in size it became increasingly difficult to write whole scene graphs for complex levels (even though the map files use XML)


Screenshots Logo 1 2 3 4 5 6 7 8 9 10

Boy Racer

October 2006 to April 2007

  • Boy Racer was my final year project at University


  • It was developed by a group of 4 people


  • I was the only programmer on the project. The others worked on the art and sound


  • Our aim was to make a 3D street racing game, set in a much more down to earth setting than most 3D racing games. No Ferraris here, just a bunch of beat-up old cars


  • The game was powered by my own 3D game engine (Project Realism Engine)


  • Every car was fully moddable, with some rather wild and (to be honest) tasteless mods


  • The car modding system was a data driven pipeline, with each car mod being loaded into the car modding garage with a single line of XML. This allowed all the non-programmers on the team to get the cars into the game without asking me to add them


  • Because the deadline was so tight (6 months) I also did some of the 3D car and track modelling


  • I designed and programmed the frontend for the game


  • The game was programmed in C++, and the game engine uses DirectX 9 to render the graphics


  • The software I used was:


    • Microsoft Visual Studio.NET 2005 for C++ programming and debugging


    • Newton Game Dynamics for the physics


    • Maya for the 3D modelling of cars and tracks


    • Photoshop for the textures and user interface (UI) elements in the game


    • After Effects for video cut-scenes


    • Flash for mocking up the frontend flow and user interface screens


  • I also wrote the website HTML code