Leadwerks Engine
{{ infobox software | name = Leadwerks Engine | developer = Leadwerks Software | screenshot = | operating_system = Windows XP,Windows Vista | genre = Game engine | latest_release_version = Version 2.20 | latest_release_date = February 9, 2009 | website = http://www.leadwerks.com/ | license = EULA | Shader Model = Shader Model 3.0, Shader Model 4.0 }}
The Leadwerks Engine is a 3D game engine powered by OpenGL 2.1.2. It was designed by Leadwerks Software and made its debut in The Game Creators May Newsletter on May 1, 2008. The engine makes use of the new Newton Game Dynamics SDK 2.0 (Newton Archimedes) for physics, and OpenAL and EAX for sound and 3D sound effects. The engine is based around 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 Joshua Klint of Leadwerks Software, and was written in BlitzMax.
Modules have been created by members of the community to allow the use of the engine in languages such as C, C++, C#, VB.NET, LUA, and Python, but C++ and BlitzMax were its originally targeted languages. The engine is unofficially supported in any language that can load a DLL.
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.
By version 2.0 of the engine in 2008, Leadwerks had implemented OpenGL 2.1, and now required Shader Model 3.0 as a minimum, with Shader Model 4.0 recommended to get the best quality and speed. The engine used a forward renderer for lighting, but suffered from large overhead and a hardware limit of 8 lights total.
From version 2.1 on, Leadwerks switched to a deferred renderer and moved lighting to a post pocessing step that required 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.
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.
Limitations
Leadwerks performs animation / character skinning direcly on the GPU, as opposed to the CPU. While this increases speed, it limits the number of bones in a single animated mesh to the bone limit of the GPU, commonly 60 for nVidia cards and up to 75 for ATI cards.
Licensing
The base license for the Leadwerks Engine is a commercial license allowing the creation of any type of game/simulation 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'. Leadwerks includes a full EULA and hosts the same file on their website.
The base license costs $150, with a full source code license to be rumored at $10,000+.
Evaluation
As of version 2.12, an evaluation of Leadwerks Engine has been released that features 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 has been published on the Download.com, TechRepublic, ZDNet, and OpenGL websites.
Compatibility
Leadwerks Engine is supported on Windows XP and Windows Vista. Future support for Mac OS has been proposed as well as support for XBOX360 via the Microsoft XNA platform.
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.
See also
- 3D World Studio
- OpenGL
- OpenAL
- EAX
- BlitzMax
- Newton Game Dynamics