HPL is the name given to the in-house, cross-platform 3D game engine that empowers the games released by Frictional Games. It is written in C++, with three major versions released thus far.
The HPL Engine is compatible with both 32-bit and 64-bit environments and the Microsoft Windows, MacOS(x86), Linux, Xbox One, Xbox Series X/S, PlayStation 4, and Nintendo Switch platforms.

A box is opened using the physics engine.
Overview[]
In general terms, a game engine is the software portion of a game that enables and manages several aspects of a video game, in order to run on a computer or a dedicated game console, such as:
- Graphics: light and shadow management, visual effects such as SSAO and radial blur, camera perspective, texture rendering and interaction with graphic APIs such as OpenGL in order to accelerate calculations using available hardware.
- Scripting on scenario objects and events.
- Enemy AI management.
- Sound management, generation, panning, post-processing, mixing and other tasks.
- Memory allocation and management for the duration of the execution of the game.
- Processing of player's input from mouse and keyboard so these reflect in actions inside the game.
And other necessary tasks during the game's execution.

Interaction with box using Physics Code in Penumbra Overture
In older game generations (circa the 1980's), games were usually written as a whole contained program, and reutilization of parts of the code from one game into another was rarely seen (one case being the NES game Kid Icarus using Metroid 's engine, although this is more of an exception). During the 1990's decade and later, a trend began with companies like iD Software and their games Doom and Doom II: Hell on Earth (built using their in-house idTech engine, also known as the Doom Engine) to create a game and reuse its underlying framework in other games with tweaks and -sometimes- major enhancements (eg. Heretic, Hexen: Beyond Heretic, Strife, Quest for the Sigil), whether by themselves or by licensing it to other developer companies, thus giving birth to the modern concept of game engines.
Building a game engine from scratch can take considerable amounts of time and resources, to the point that several companies have chosen to license one for their own games from another company. Because of this, it can be considered that Frictional Games making their own engine is quite a remarkable feat, especially when taking into account that this is an independent company, with no support or resources from powerhouses like Electronic Arts or Ubisoft, for example.
Industry Standards support[]
HPL supports the following cross-platform libraries:
- OpenGL, for graphics rendering and display.
- OpenAL, for audio rendering and playback.
- Newton Game Dynamics, for realistic physics simulation and interaction.
Versions[]
Version of the engine greatly depend on the game they're for, thus things like features, documentation, and mod support can vary greatly from version to version of the engine, and from game to game.
HPL 0[]
HPL0 is the earliest version of HPL Engine. The first version was created in December 1994 as a 2D game engine for a college thesis, to run a game called Energetic in 2005. This Engine supports normal map and lighting in 2D World. While unlike later iterations, entirely lacks 3D Rendering feature. but files and setting structure remains same to this day.
The name, "HPL 0" was named retroactively. HPL 0 has been used for these games:
- Energetic
- Fiend
HPL 1[]
From first iteration, HPL Engine was overhauled to accommodate 3D graphics and the first demonstration of its capabilities was the Penumbra Tech Demo. An open-source, GPL V3-licensed version of HPL 1 was released on May 12, 2010.
In 2010, Penumbra: Overture was included in the Humble Indie Bundle, an initiative to sell bundle games and raise funds for charity. Once it reached the $1 million milestone, the source code from Overture as well as some modding tools were released under the GNU General Public License.
HPL 1 has been used for these games, and other works:
HPL 2[]
The second version of the engine received several technical upgrades. While the first one used a portal system to do occlusion culling (a process which determines what objects should be culled, and which should not), HPL 2 uses a dynamic culling system technique called Coherent Hierarchical Culling. Other enhancements included are support for SSAO and shadow maps instead of shadow stencils, allowing for more realistic environmental light and shadows, rising the minimal hardware requirements to run when compared to previously released HPL games. This version of the engine was used for the first two Amnesia games, with a modified version dubbed HPL 2.5 being used for the second one.
On September 23, 2020, it was announced that the HPL 2 Engine source code from both The Dark Descent and A Machine for Pigs were officially released as Open Source software, once more under the GPL v3 licence.
HPL 2 has been used for these games:
- Amnesia: The Dark Descent and its expansion Amnesia: Justine
- Amnesia: A Machine for Pigs (HPL 2.5)
- Gone Home (Prototype version, Retail game used Unity)
HPL 3[]
The third version of the HPL Engine includes more features such as global sunlight along with shadows, allowing fully lit outdoor scenes, a feature not implemented in previous versions, level streaming (no loading screens between levels), in-engine terrain generation and dynamic terrain LOD. HPL 3 was used in Frictional Games' existential science fiction horror game SOMA; While for the Amnesia series, Amnesia: Rebirth and Amnesia: The Bunker use a modified version of the engine dubbed HPL 3.5.
HPL 3 has been used for these games:
- SOMA
- Amnesia: Rebirth (HPL 3.5)
- Amnesia: The Bunker (likely HPL 3.5)
HPL 4[]
HPL 4 is upcoming version of HPL Engine for untitled upcoming game from Frictional Games.
Modding Tools[]
While HPL1 - mainly due to time and personnel unavailability constraints - did not have any major modding tools from Frictional, HPL2 received several more tools and documentation available in this regard.
Available tools consist of a Level Editor, a Model Editor, a Particle Editor and a Material Editor, with a dedicated wiki containing instructions on the use of said tools.

HPL Engine 2 Level Editor
Custom Stories in Amnesia: The Dark Descent[]
These modding resources enabled players to create mod maps and levels for Amnesia: The Dark Descent called "Custom Stories" in-game, some of them with remarkable craftsmanship displaying elements such as new, original game stories, new items with special properties, custom maps, custom voice records for Notes and Quotes, custom Loading Screens and even new 3D models imported into the game.
Currently, the Frictional Games' Forums host dedicated sections where creators and players of these Custom Stories can gather and showcase their work, as well as discuss the development and provide feedback on them.
Trivia[]
- The engine received its name after initials from the name of the American horror, fantasy and science-fiction writer Howard Phillips Lovecraft, popularly known as H.P. Lovecraft, whose work is a strong inspiration for the crew at Frictional Games.