|This article relies too much on references to primary sources. (July 2010)|
|Stable release||Version 3.1 / January 6, 2014|
|Operating system||Linux, Windows Vista, Windows 7, Windows 8|
|License||Proprietary, see LE-EULA|
The Leadwerks Engine is a 3D game engine powered by OpenGL 4.0. It was designed by Leadwerks Software. Leadwerks Engine 2.0 made its debut in The Game Creators May Newsletter on May 1, 2008. The engine makes use of the Newton Game Dynamics SDK 2.0 (Newton Archimedes) for physics, and OpenAL and EAX for sound and 3D sound effects. The engine is based on a deferred renderer as of Leadwerks 2.1 and a unified lighting system that allows for dynamic lighting and soft shadowing without the use of lightmaps or any pre-compilation. Occlusion culling is performed on the GPU to remove the need for binary space partitioning or portal zones. The engine was developed by Leadwerks Software, and was written in BlitzMax.
Modules have been made by members of the community to allow the use of the engine in languages such as Java, C#, VB.NET, and Python, but C/C++, BlitzMax and Lua are its originally targeted and officially supported languages. The engine is unofficially supported in any language that can load a DLL.
Leadwerks Engine first began as a 2D render/physics engine for the Blitz Basic programming language. After the development of the BlitzMax programming language, the 2D engine plan was discontinued, and work on a 3D, OpenGL-powered engine began.
At first, Leadwerks Engine 1.0 consisted mainly of basic rendering capabilities offered from OpenGL. After expanding to include physics and sound, Leadwerks Engine was released to the public.
By version 2.0 of the engine in 2008, Leadwerks had implemented OpenGL 2.1, and now required a Shader Model 3.0 graphics card as a minimum, with Shader Model 4.0 recommended to get the best quality and speed. The engine used a forward renderer for lighting. Because of this, it suffered from large overhead and a hardware limit of 8 lights total.
From version 2.1 on, Leadwerks switched to a deferred renderer which moved lighting to a post-processing step that requires input from color, depth, and normal buffers. This switch increased speeds by up to 50% in some places, removed the hardcoded lighting limit, and opened up a flexible shader framework for others to build on.
Version 2.3, released in November 2009 (11/23) added support for Lua scripting (per-entity and/or main program) and introduced an improved editor, now called Leadwerks Editor, replacing the Leadwerks Sandbox world building program. As of this upgrade, the price was raised from $150 to the current license cost of $200 ($199.95). Existing users could upgrade for the difference ($50), however towards the end of 2010 and in January 2011 all existing users who hadn't bought the upgrade were given it for free.
Version 3.0, released in February 2013 (02/24) is a complete rewritten engine in C++. The engine is now cross-platform for Windows, Mac, iOS and Android. A Kickstarter campaign was set up to get funds for the support of Linux as well. Furthermore are Steam integration and Ouya support on their way. The API is documented in both C++ as Lua. Lua is the scripting language that can be used to make objects script inside the editor. From its release OpenGL 2.0 is supported and OpenGL 4.0 is on its way. The editor allows the creation of CSG brushes and a flowgraph system for gameplay interaction. Terrain is lacking in version 3.0 but is planned together with the release of OpenGL 4.0.
See here  for a more complete overview of the engine's features.
Screen-Space Ambient Occlusion (real-time ambient maps)
Screen Space Ambient Occlusion is a technique used to simulate real-time global illumination. This technique has been used by Crytek in Crysis and has since been developed and added to the Leadwerks Engine. Leadwerks Engine also features real-time ambient maps. Soft shadows and lights are calculated dynamically with no pre-calculations or lightmaps. This allows level designers to place lights and geometry and see results instantly.
One major drawback of this technique is that it is performed on the full size of the buffer, and hence can cause slow down. The speed of the technique can be improved by performing SSAO on a half size or smaller buffer.
Leadwerks performs animation or character skinning directly on the GPU, as opposed to CPU-Skinning. This increases speed and supports up to 256 bones per mesh.
Leadwerks 3.0 The base license for the Leadwerks Engine is a commercial license allowing the creation of any type of game/simulation/visualization application with the exception of a game engine or overly modifiable game that will allow the end user to 'create something outside of the intended scope of the original product'. The base license gives access to Windows and Mac. There are also licenses available for Android and iOS.
A base license costs $200 per user. An iOS license costs $200 per user. An Android license costs $200 per user. Users can purchase the 'Indie' version, which lacks the ability to edit in C++ for $99 per user via Steam. A full source license can also be purchased for an undisclosed amount.
Leadwerks 2.* The base license for the Leadwerks Engine is a commercial license allowing the creation of any type of game/simulation/visualization application with the exception of a game engine or overly modifiable game that will allow the end user to 'create something outside of the intended scope of the original product'.
A license costs $200 per user. A full source code license can also be purchased for an undisclosed amount.
As of version 2.12, an evaluation of Leadwerks Engine had been released that featured 2 demos, an outdoor Island scene, and an Underground tunnel, as well as the Leadwerks Sandbox Map Editor, Material Editor, Model Viewer, and various content conversion tools.
Another evaluation kit for the current major version of the engine, Ledwerks Engine 2.3, has been released in November 2009.
Documentation has been provided in the past in both CHM help files, PDF files, and HTML documents. Leadwerks Engine 2.x has a Wiki dedicated to documentation. It offers tutorials, documentation, an API of the SDK, and examples of different applications you can make and techniques you can use.
The previous version of Leadwerks allows to have a terrain of 4096² gridpoints in size (heightmap resolution), it supports only 5 texture layers due to hardware limitations. However, the developers have stated they are implementing a new system based on virtual texturing they say will do away with this limitation.
- The Game Creators May Newsletter Retrieved May 1, 2008.
- Leadwerks Engine Editorial - 4 Fat Chicks
- Leadwerks Engine 1.x - DevMaster Review
- Leadwerks Engine 2.x DevMaster Review
- Deferred Rendering in Leadwerks Engine
- Blog Entry
- Leadwerks 2.12 Evaluation Kit on CNET Download.com
- Leadwerks 2.12 On TechRepublic
- ZDNET - Leadwerks Evaluation
- Leadwerks Evaluation Published on OpenGL.org
- Leadwerks Engine Evaluation Kit 2.3 released
- Leadwerks Terrain System Documentation