Leadwerks Engine
Encyclopedia
The Leadwerks Engine is a 3D game engine
powered by OpenGL
2.1. 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 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 lightmap
s 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
.
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 of 2011 all existing users who hadn't bought the upgrade were given it for free.
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.
A license costs $200 per user. A full source code license is available for an undisclosed price.
The demo was published on the Download.com
, TechRepublic
, ZDNet
, and OpenGL
websites.
Another evaluation kit for the current major version of the engine, Ledwerks Engine 2.3, has been released in November 2009 .
and newer versions of the Windows operating system
. Future support for Mac OS
has been proposed as well as support for XBOX360 via the Microsoft XNA
platform.
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.
Another constant point of criticism is about the built-in terrain system. Although this allows to have a terrain of 4096² gridpoints in size (heightmap resolution), it supports only 5 texture layers due to hardware limitations and speed concerns. There may also be only one terrain at a time, making it impossible to implement a paging system for unlimited sized worlds.
Furthermore, the SDK's API commands can not be called in a multithreaded
manner, complicating the implementation of streamed media loading.
Game engine
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...
powered by OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
2.1. It was designed by Leadwerks Software
Leadwerks Software
Leadwerks Software is a game middleware company founded by Joshua Klint and Annika O'Brien, who have developed middle-ware applications for gaming and 3D game design since 1999. Leadwerks Software is most well known for 3D World Studio and has partnerships with The Game Creators. Leadwerks Software...
. Leadwerks Engine 2.0 made its debut in The Game Creators
The Game Creators
The Game Creators, Ltd. is a British game development software company formed through a partnership between programmer Lee Bamber and Richard Vanner in 1999, located in Lancashire, England, United Kingdom. The company was formerly known as DarkBASIC Software Limited.The company primarily develops...
May Newsletter on May 1, 2008. The engine makes use of the Newton Game Dynamics
Newton Game Dynamics
Newton Game Dynamics is an open source physics engine for realistically simulating rigid bodies in games and other real-time applications. Its solver is deterministic and not based on traditional LCP or iterative methods....
SDK 2.0 (Newton Archimedes) for physics, and OpenAL
OpenAL
OpenAL is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL.- History :...
and EAX
Environmental audio extensions
The environmental audio extensions are a number of digital signal processing presets for audio, present in Creative Technology's later Sound Blaster sound cards and the Creative NOMAD/Creative ZEN product lines...
for sound and 3D sound effects. The engine is based around a deferred renderer as of Leadwerks 2.1 and a unified lighting system
Unified lighting and shadowing
Unified shadow and lighting is the lighting model used in the Doom 3 game developed by id Software.Previous 3D games like Quake III Arena, used separate lighting models for determining how a light would illuminate a character or a map...
that allows for dynamic lighting and soft shadowing without the use of lightmap
Lightmap
A lightmap is a data structure which contains the brightness of surfaces in 3d graphics applications such as video games. Lightmaps are precomputed and used for static objects. Quake was the first computer game to use lightmaps to augment rendering. Before lightmaps were invented, realtime...
s or any pre-compilation. Occlusion culling is performed on the GPU to remove the need for binary space partitioning
Binary space partitioning
In computer science, binary space partitioning is a method for recursively subdividing a space into convex sets by hyperplanes. This subdivision gives rise to a representation of the scene by means of a tree data structure known as a BSP tree.Originally, this approach was proposed in 3D computer...
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
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, C#, VB.NET, and Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, but C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, BlitzMax and Lua are its originally targeted and officially supported languages. The engine is unofficially supported in any language that can load a DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...
.
History
Leadwerks Engine first began as a 2D render/physics engine for the Blitz BasicBlitz BASIC
Blitz BASIC refers to the programming language dialect that was interpreted by the first Blitz compilers, devised by New Zealand-based developer Mark Sibly. Being derived from BASIC, Blitz syntax was designed to be easy to pick-up for beginners first learning to program...
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 of 2011 all existing users who hadn't bought the upgrade were given it for free.
Screen-Space Ambient Occlusion (real-time ambient maps)
Screen Space Ambient OcclusionScreen Space Ambient Occlusion
Screen Space Ambient Occlusion is a rendering technique for efficiently approximating the well-known computer graphics ambient occlusion effect in real time...
is a technique used to simulate real-time global illumination
Global illumination
Global illumination is a general name for a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting to 3D scenes...
. This technique has been used by Crytek
Crytek
Crytek is a German video game company founded in 1999 by three Turkish brothers: Cevat, Avni and Faruk Yerli. Crytek's main headquarters are in Frankfurt, Germany, with five other studios in Kiev, Budapest, Nottingham, Sofia and Seoul. The company is best known for developing the game Far Cry and...
in Crysis
Crysis
Crysis is a science fiction first-person shooter video game developed by Crytek , published by Electronic Arts for Microsoft Windows, and released in November 2007. It is the first game of a trilogy. A separate game entitled Crysis Warhead was released on September 12, 2008, and follows similar...
and has since been developed and added to the Leadwerks Engine. Leadwerks Engine also features real-time ambient maps
Ambient occlusion
Ambient occlusion is a shading method used in 3D computer graphics which helps add realism to local reflection models by taking into account attenuation of light due to occlusion...
. 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.
GPU skinning
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.Licensing
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 is available for an undisclosed price.
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
Download.com
Download.com is an Internet download directory website, launched in 1996 as a part of CNET. Originally, the domain was download.com.com. The domain download.com attracted at least 113 million visitors annually by 2008 according to a Compete.com study....
, TechRepublic
TechRepublic
TechRepublic is an online trade publication and social community for IT professionals, with advice on best practices and tools for the day-to-day needs of IT decision-makers....
, ZDNet
ZDNet
ZDNet is a business technology news website published by CBS Interactive, along with TechRepublic and SmartPlanet. The brand was founded on April 1, 1991 as a general interest technology portal from Ziff Davis and evolved into an enterprise IT-focused online publication owned by CNET...
, and OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
websites.
Another evaluation kit for the current major version of the engine, Ledwerks Engine 2.3, has been released in November 2009 .
Compatibility
Leadwerks Engine is supported on Windows XPWindows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
and newer versions of the Windows operating system
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
. Future support for Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
has been proposed as well as support for XBOX360 via the Microsoft XNA
Microsoft XNA
Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates video game development and management. XNA attempts to free game developers from writing "repetitive boilerplate code" and to bring different aspects of game production into a single system...
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 WikiWiki
A wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include...
dedicated to documentation. It offers tutorials, documentation
Documentation
Documentation is a term used in several different ways. Generally, documentation refers to the process of providing evidence.Modules of Documentation are Helpful...
, an API of the SDK, and examples of different applications you can make and techniques you can use.
Criticism
The engine is written primarily in BlitzMax not C/C++. This is a barrier for console support, limiting access to a much larger customer base.Another constant point of criticism is about the built-in terrain system. Although this allows to have a terrain of 4096² gridpoints in size (heightmap resolution), it supports only 5 texture layers due to hardware limitations and speed concerns. There may also be only one terrain at a time, making it impossible to implement a paging system for unlimited sized worlds.
Furthermore, the SDK's API commands can not be called in a multithreaded
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
manner, complicating the implementation of streamed media loading.
See also
- 3D World Studio3D World Studio3D World Studio is a map/level editor for use with Torque Game Engine, DarkBasic Pro, Leadwerks Engine and Blitz3D. The program is developed by Leadwerks Software and is distributed by both Leadwerks Software and The Game Creators in a Standard Edition and a Builder Edition.Both editions include...
- OpenGLOpenGLOpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
- OpenALOpenALOpenAL is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL.- History :...
- EAXEnvironmental audio extensionsThe environmental audio extensions are a number of digital signal processing presets for audio, present in Creative Technology's later Sound Blaster sound cards and the Creative NOMAD/Creative ZEN product lines...
- BlitzMax
- Newton Game DynamicsNewton Game DynamicsNewton Game Dynamics is an open source physics engine for realistically simulating rigid bodies in games and other real-time applications. Its solver is deterministic and not based on traditional LCP or iterative methods....
- List of game engines