Leadwerks Engine

Leadwerks Engine
Developer(s) Leadwerks Software
Stable release Version 3.4 / February 23, 2015
Operating system Microsoft Windows, Linux
Type Game engine
License Proprietary, see LE-EULA
Website www.leadwerks.com

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[1] 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.[2]

With the help of a Kickstarter campaign, Leadwerks was ported to Linux.[3][4]

History

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.[5]

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.[6]

From version 2.1 on, Leadwerks switched to a deferred renderer[7] 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.

Features

See here [8] 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.

Terrain In Leadwerks

GPU skinning

Animation or character skinning is performed directly on the GPU, supporting up to 256 bones per mesh.[9]

Advanced graphics

Leadwerks supports hardware tesselation, geomerty shaders and deferred rendering with up to 32x MSAA.

Licensing

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.

Evaluation

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.

The demo was published on the Download.com,[10] TechRepublic,[11] ZDNet,[12] and OpenGL[13] websites.

Another evaluation kit for the current major version of the engine, Ledwerks Engine 2.3, has been released in November 2009.[14]

Compatibility

Leadwerks Engine 3.x is supported on Windows Vista, 7, 8 (or 8.1), 10 and Linux.[15] Future support for Mac OS X has been proposed.

Documentation

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.

Criticism

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.[16]

References

External links

This article is issued from Wikipedia - version of the Monday, April 25, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.