1. Leadwerks Game Engine
  2. News

Leadwerks Game Engine News

Ultra App Kit: Let's Solve the Desktop UI Problem

Native user interfaces like Win32 and Cocoa are limited and dated. Web-based technologies like Electron look nice, but the final product runs slow and feels sluggish. These problems caused me to rethink user interface design and come up with a new paradigm to deliver the best possible experience for desktop applications on the PC.

Check it out on Kickstarter now!



Purchases will also be available through IndieGoGo, Steam, and direct through our website before the product release.

[previewyoutube][/previewyoutube]

[h2]Background[/h2]
A few years ago I launched a crowdfunding campaign to bring Leadwerks Game Engine to the Linux operating system. The software went on to become a success, with over $1 million in sales and more than 30,000 customers, including NASA, Northrop Grumman, and Lockheed Martin. I learned a lot from that experience and as I began a new software application, I wanted to revisit the user interface and see if there was any way to deliver a better user experience.

[h2]Close-to-the-Metal Design[/h2]
Ultra App Kit provides a fast and customizable user interface for building game development tools and other desktop programs. The SDK is built around the same low-level APIs as the native user interface, with a customizable easy-to-use core updated for desktop applications in the 2020s.



[h2]Usage[/h2]


[h2]Supported Widgets[/h2]
  • Label
  • Button (push, checkbox, radio, and toggle styles)
  • ProgressBar
  • TextField
  • TextArea
  • ComboBox
  • ListBox
  • Slider (scrollbar, trackbar, and stepper styles)
  • Draggable multi-select TreeView
  • Create your own!

[h2]API Design[/h2]
  • C++ shared pointers everywhere
  • Extensible widgets system
  • Extensive documentation with examples for each command
  • Can be made to interface with C# and Lua

[h2]UI Features[/h2]
  • Resolution independent for any DPI (16K+)
  • Load SVG vector images
  • Filter and sort widget items by name
  • Set widget and item image
  • Change mouse cursor
  • Custom color schemes stored in JSON files

[h2]Other Features[/h2]
  • File I/O
  • File system watcher
  • Memory allocation and management
  • Image loading, saving, processing
  • Package system for loading files from compressed / encrypted archives
  • Plugin system
  • Thread management
  • String manipulation (split, match, conversion, etc.)
  • Message boxes and file / folder requester

[h2]Stretch Goals[/h2]
  • $20,000: C# and Lua programming support
  • $50,000: Linux and Mac support
  • $80.000: Visual UI Designer


[h2]Other Ways You Can Help[/h2]
Some people just can't contribute, but that doesn't mean you can't help. Get the word out and make some noise about this campaign!

Thank you for your support!

[h2]About Leadwerks 5[/h2]
Leadwerks Game Engine 5 is in development, with an initial release scheduled for spring 2021, with Vulkan graphics and 64-bit floating point support, Join our community and help shape the final design of our most advanced technology yet.

Leadwerks 5 Feature Spotlight: glTF Models

Leadwerks Game Engine 5 will be backwards-compatible with asset file formats used in version 4. In addition, we are adding support for glTF 2.0 (GL Transmission Format), a new open-spec model format from Khronos with support for skinned animation and PBR materials.

What's so great about the glTF file format?

[h2]Documented and Human-Readable[/h2]
Unlike the "black box" FBX file format, which can only be read using Autodesk's proprietary SDK, glTF is an open specification based on JSON. This makes it easier for us to reliably support import and export of glTF files without worrying about future changes or different versions. Your data remains easily accessible and the files can even be edited in notepad! (For faster-loading files, vertex and indice data can be packed into a second binary file, while the main .gltf file is encoded in text).



[h2]Widely Supported[/h2]
glTF aims to be "the JPEG of 3D" and most of your favorites programs already support it! Blender includes import and export capabilities by default, and there are plugins available for 3ds max suppot. Even Windows Explorer includes a glTF previewer so you can just click on a file to view it.



[h2]PBR Materials[/h2]
glTF includes a well-defined specification for materials using physically-based rendering techniques, and includes options for transparency, emission, and alpha masking. That means when you load a model from glTF format, you never have to worry about creating new material files. It just works. (A Blinn-Phong material definition is still available for older models.)



[h2]Vast Libraries of Game-Ready Content[/h2]
SketchFab, Turbosquid StemCell, and other 3D model stores are adopting glTF as the standard file format for 3D game content. This means you can choose from thousands of game-ready models that will load up in Leadwerks Game Engine 5 without any touch-up or adjustment.



[h2]Making Game Development Easier[/h2]
For years, game developers have had to convert their editable source model formats into final proprietary game-ready formats. If the original files were ever lost, or if you forget which version you last saved, you were pretty much out of luck. glTF models, on the other hand, can be easily re-imported into a variety of 3D modeling programs, so saving a 3D model for games is now as simple as exporting a bitmap from Photoshop. This will make game development in Leadwerks Game Engine 5 easier than ever before.

[h3]About Leadwerks 5[/h3]
Leadwerks Game Engine 5 is in development, with an initial release scheduled for the second half of 2020, with Vulkan graphics and 64-bit floating point support. Join our mailing list for updates and special offers.

Leadwerks Game Engine 4.6 Updated

A new update for Leadwerks Game Engine 4.6 is available on the default branch. This fixes a physics bug that would cause boxes to float into the air after the player stepped on them.

Leadwerks Game Engine 4.6 Released

Leadwerks Game Engine 4.6 is now available on Steam! This free update adds Steam peer-to-peer networking, lobbies, voice chat, and more. A new multiplayer game template makes it easy to get started with your own multiplayer games, adding new depth and interactivity to the fun.



We've also added over 100 bug fixes, making this the most stable release ever to build your game on!

This update also introduces Leadwerks Marketplace, your easy-to-use shop for 3D models, textures, and other game assets. Register a Leadwerks account and download the Mercenary Action Figure for free this week.

Other changes:
  • New parameters for better control over physics springs.
  • World::Update() now has an optional parameter for number of sub-steps, can be used for improved physics precision.
  • Model editor view range is calculated from model extents, so if you load a model that is huge it won't be invisible.
  • Model editor displays number of limbs as well as vertices and triangles.
  • Settings file is now saved any time changes are made in the options editor.
  • Menu item added for Leadwerks Marketplace.
  • Menu item added for Discord chat.
  • Linux version of engine now built on Ubuntu 18.04.

Leadwerks Software to Assist NASA Building VR Applications



Leadwerks 3.0 was released during GDC 2013. I gave a talk on graphics optimization and also had a booth at the expo. Something else significant happened that week.  After the expo closed I walked over to the Oculus booth and they let me try out the first Rift prototype.

This was a pivotal time both for us and for the entire game industry. Mobile was on the downswing but there were new technologies emerging that I wanted to take advantage of. Our Kickstarter campaign for Linux support was very successful, reaching over 200% of its goal. This coincided with a successful Greenlight campaign to bring Leadwerks Game Engine to Steam in the newly-launched software section. The following month Valve announced the development of SteamOS, a Linux-based operating system for the Steam Machine game consoles. Because of our work in Linux and our placement in Steam, I was fortunate enough to be in close contact with much of the staff at Valve Software.

The Early Days of VR

It was during one of my visits to Valve HQ that I was able to try out a prototype of the technology that would go on to become the HTC Vive. In September of 2014 I bought an Oculus Rift DK2 and first started working with VR in Leadwerks. So VR has been something I have worked on in the background for a long time, but I was looking for the right opportunity to really put it to work. In 2016 I felt it was time for a technology refresh, so I wrote a blog about the general direction I wanted to take Leadwerks in. A lot of it centered around VR and performance. I didn't really know exactly how things would work out, but I knew I wanted to do a lot of work with VR.

A month later I received a message on this forum inquiring about use of Leadwerks Game Engine for virtual reality applications for NASA projects. Now, Leadwerks Software has a long history of use in the defense and simulation industries, with orders for software from Northrop Grumman, Lockheed Martin, the British Royal Navy, and probably some others I don't know about. So NASA making an inquiry about software isn't too strange. What was strange was that they were very interested in meeting in person.

Trip to Goddard Space Center

I took my first trip to Goddard Space Center in January 2017 where I got a tour of the facility. I saw robots, giant satellites, rockets, and some crazy laser rooms that looked like a Half-Life level. It was my eleven year old self's dream come true. I was also shown some of the virtual reality work they are using Leadwerks Game Engine for. Basically, they were taking high-poly engineering models from CAD software and putting them into a real-time visualization in VR. There are some good reasons for this. VR gives you a stereoscopic view of objects that is far superior to a flat 2D screen. This makes a huge difference when you are viewing complex mechanical objects and planning robotic movements. You just can't see things on a flat screen the same way you can see them in VR. It's like the difference between looking at a photograph of an object versus holding it in your hands.



CAD models are procedural, meaning they have a precise mathematical formula that describes their shape. In order to render them in real-time, they have to be converted to polygonal models, but these objects can be tens of millions of polygons, with details down to threading on individual screws, and they were trying to view them in VR at 90 frames per second! Now with virtual reality, if there is a discrepancy between what your visual system and your vestibular system perceives, you will get sick to your stomach. That's why it's critical to maintain a steady 90 Hz frame rate. The engineers at NASA told me they first tried to use Unity3D but it was too slow, which is why they came to me. Leadwerks was giving them better performance, but it still was not fast enough for what they wanted to do next. I thought "these guys are crazy, it cannot be done".

Then I remembered something else people said could never be done.



So I started to think "if it were possible, how would I do it?" They had also expressed interest in an inverse kinematics simulation, so I put together this robotic arm control demo in a few days, just to show what could be easily be done with our physics system.
https://www.youtube.com/watch?v=K4gZpiXquzM https://www.youtube.com/watch?v=RMLApThAcpo
With the extreme performance demands of VR and my experience writing optimized rendering systems, I saw an opportunity to focus our development on something people can't live without: speed. I started building a new renderer designed specifically around the way modern PC hardware works. At first I expected to see performance increases of 2-3x. Instead what we are seeing are 10-40x performance increases under heavy loads. During this time I stayed in contact with people at NASA and kept them up to date on the capabilities of the new technology.

At this point there was still nothing concrete to show for my efforts. NASA purchased some licenses for the Enterprise edition of Leadwerks Game Engine, but the demos I made were free of charge and I was paying my own travel expenses. The cost of plane tickets and hotels adds up quickly, and there was no guarantee any of this would work out. I did not want to talk about what I was doing on this site because it would be embarrassing if I made a lot of big plans and nothing came of it. But I saw a need for the technology I created and I figured something would work out, so I kept working away at it.

Call to Duty

Today I am pleased to announce I have signed a contract to put our virtual reality expertise to work for NASA. As we speak, I am preparing to travel to Washington D.C. to begin the project. In the future I plan to provide services for aerospace, defense, manufacturing, and serious games, using our new technology to deliver VR simulations with performance and realism beyond anything that has been possible until now.

My software company and relationship with my customers (you) is unaffected. Development of the new engine will continue, with a strong emphasis on hyper-realism and performance. I think this is a direction everyone here will be happy with. I am going to continue to invest in the development of groundbreaking new features that will help in the aerospace and defense industries (now you understand why I have been talking about 64-bit worlds) and I think a great many people will be happy to come along for the ride in this direction.

Leadwerks is still a game company, but our core focus is on enabling and creating hyper-realistic VR simulations. Thank you for your support and all the suggestions and ideas you have provided over the years that have helped me create great software for you. Things are about to get very interesting. I can't wait to see what you all create with Leadwerks Game Engine and future technologies we develop.