Dreaded Portal Engine


Welcome to the webpage of the Dreaded Portal Engine (DPE). This is a 3D engine created from scratch using C++ and OpenGL. The engine is free of use under the BSD-2 License and you can make any modifications you like. If you spot a bug, please file a ticket of contact me.


DPE is a free and open source engine that is designed for indoor environments. Work started in 2012 and I have worked on this project on and off in my spare time. This engine has been used for multiple academic projects, including PANDORA where it rendered underwater environment and controlled an AUV as it traversed through seabed facilities.

The core feature is the use of portals to render levels, which makes it very suited for indoor environments. Outdoor environment can also be rendered, but the engine is not tailered to it. Levels can be created using Blender, I have created a build-in portal level format (.PLF) is used to load levels. A script is provided to export these levels from Blender.


The following features are currently supported:

  • Create levels and models using a Scene Manager.
  • Collision detection.
  • Dynamic lights and shadows, including self shadowing.
  • Bloom.
  • Normal Mapping.
  • Animated models using skeletons.
  • AI pathfinding using navigation meshes.
  • GPU Particle engine.
  • Volumetric lighting.
  • Sky boxes.
  • Can load multiple image formats.
  • Custom level format (Portal Level Format PLF).
  • Cross-Platform (tested for Linux and Windows).
  • GUI system.

Future developments (already part of games created using DPE):

  • Sound.
  • Networking.


Assimp (3.3.1)

Glew (1.9.0)

glfw (3.2.1)



Here are some youtube videos to get an idea of what the engine can do.

First video shows a number of tech demos that I have created, these tech demos informed the design of the 3D engine and increased it capabilities.

The next video is of my game Dreaded Spectre, which is a 3D FPS with networking capabilities. It is the 2nd game that I developed using DPE. The first being a simple platformer.

DPE has also been used in multiple research projects, such as PANDORA and ASUR. Here is a video showing the capabilities of the Simulator created for the PANDORA project.

Setting up


  1. Getting started with creating a simple scene.
  2. Improve the scene by adding dynamic lighting.
  3. Render thousand of cubes.
  4. Navigation using a navigation mesh.

Getting started

The source code can be acquired using SVN, the URL is:



Documentation is generated using DoxyGen and can be found here: http://www.bramridder.com/docs/dpe/

Projects using DPE

The FPS called "Spectre": Dreaded Spectre (an FPS)


If you have any questions, please do not hesitate to contact me.