1. Leadwerks Game Engine
  2. News

Leadwerks Game Engine News

New Features Coming in Leadwerks 4.4

Let's take a moment to review some of the great new features coming soon in Leadwerks Game Engine 4.4. The release is due out at the end of the month, but you can try it now by opting into the beta branch on Steam.

Leadwerks GUI
Leadwerks GUI provides you with an in-game GUI to handle all your game menus and interfaces. Each widget uses a Lua script that controls drawing and user interaction. You can choose from our provided scripts to create panels, buttons, sliders, and other interface elements, or create your own. Oh, and Leadwerks GUI is designed to be 100% resolution-independent, so it will render pixel-perfect at 4K, 8K, or any other arbitrary resolution.
Read more

Enhanced Visuals
Some of our post-processing effects have been updated, and a few new effects are included to make your games more beautiful.
Read more

Inverse Kinematics
The new Kinematic joint in Leadwerks 4.4 gives you precise control over the orientation of any physical object. You can even use this to create advanced IK systems for robotics (games are okay too!).
Read more

New Documentation System
All documentation has been migrated to a brand new easy-to-navigate system that lets you easily find the information you need.
Read more

These updates will be available soon. Thanks for your support!

Version 4.4 Updated

An update for version 4.4 beta is now available.  The Newton Dynamics library has been updated to the current version.  Vehicles are temporarily unavailable, but everything else should work.  The Newton DLLs have been moved into external DLLs, which allows the author of Newton to debug his own physics code in Leadwerks from Visual Studio.

You can get the update by opting into the beta branch on Steam.

Leadwerks Game Engine 4.4 Beta Adds OpenVR Support

Leadwerks Game Engine 4.4 beta is now available on the beta branch on Steam.  This adds support for virtual reality with the OpenVR library.  OpenVR supports both the HTC Vive and the Oculus Rift headsets.



To enable VR mode in your Leadwerks game, simply enable it as follows.  If a VR headset is detected and initialized, this function will return true:
VR:Enable()


Any cameras not attached to a rendering target will render directly to the headset views.  Both eyes will be rendered to automatically.  The camera's position and orientation will automatically be tracked, and will override any positioning you give it in your code.  You can switch between room-scale and seated VR tracking with the following command:
VR:SetTrackingSpace(mode)


Where mode is one of the constants VR.Roomspace or VR.Seated.  Use the command VR:CenterTracking() to re-center the camera, in seated VR mode only.  The VR system will automatically shut down when your game exits.  You also no longer need to call System::ShutDown in your C++ code, as this will be done automatically when the main() function returns.

Controllers will automatically be detected and render in your view.  You can use the VR::GetControllerButtonDown(devicenum, button) and GetControllerAxis(devicenum, button) commands to get button presses and movements.  The devicenum parameter will typically be zero or one, and the button argument can be one of the following constants:
  • VR.TouchpadButton
  • VR.GripButton
  • VR.MenuButton
  • VR.TouchpadAxis
  • VR.TriggerAxis
  • VR.TriggerButton


At this time, you cannot hide the default controllers.  Button motion will not be rendered in the virtual world.  Camera culling does not exactly match the VR render frustum, and some objects will pop out of view at the periphery of your vision.  Post-processing effects should not be used in VR, as they don't always look right, and the VR renderer uses a half-float RGB buffer to store screen positions, since depth reconstruction cannot be used with sheared projection matrices.  The current build is a beta and may change before the final release.

You can read more about Leadwerks VR here.