I've been working to upgrade Leadwerks to the latest Newton Dynamics 3.14, and I want to change it so the engine imports Newton as a DLL. This will allow the Newton developer to debug some of my applications when needed.
World Factions has raised an important bug / issue and this the best route to solve it.
I've been tinkering with some improvements to some of the physics stuff with promising results, but it needs more work and I don't want to say anything else about it yet. If I can g
Textures in Leadwerks don't actually store any pixel data in system memory. Instead the data is sent straight from the hard drive to the GPU and dumped from memory, because there is no reason to have all that data sitting around in RAM. However, I needed to implement texture saving for our terrain system so I implemented a simple "Pixmap" class for handling image data:
class Pixmap : public SharedObject
{
VkFormat m_format;
iVec2 m_size;
shared_ptr<Buffer> m_pixels;
int
If you entered the Winter Games Tournament, I am shipping prizes to you now (late, I know).
You will receive a friend request from the Leadwerks Software Steam account. Please accept this. I will need your mailing address in order to ship your prize.
A full update for Windows and Linux is now available on the beta branch which addresses several small problems:
http://www.leadwerks.com/werkspace/topic/15772-standalone-build-wont-launch/
http://www.leadwerks.com/werkspace/topic/15761-entity-gets-has-stopped-working-error/
http://www.leadwerks.com/werkspace/topic/15766-crash-anything-since-last-update-object-already-deleted/
The version of the VC redistributable has also been updated in Steam and will fix this problem if you are having t
I want to streamline some of this website. We went through a lot of changes since the release on Steam in 2014 and learned what works and what does not.
The "Marketplace" is just called the default "Downloads" name now, and that literally is what it is for. It's a place to keep a permanent copy of your files. Paid files are still supported, and any purchased items are still available to download, but I do not have any aspirations of building this up unless it just happens spontaneously. Ins
An update is available for Leadwerks 5 beta on Steam that adds a World::SetSkyColor() command. This allows you to set a gradient for PBR reflections when no skybox is in use.
I learned with Leadwerks 4 that default settings are important. The vast majority of screenshots people show off are going to use whatever default rendering settings I program in. We need a good balance between quality and performance for the engine to use as defaults. Therefore, the engine will use SSAO and bloom effe
A new build is available on the beta branch:
Reverted to Visual Studio 2015 for final release. Information on downgrading your 2017 projects can be found here.
Added soft particle shader.
Added smoke and soft smoke particle prefabs.
Added SSR post-effect (by Igor, Shadmar, and myself).
Added trigger material and updated doors example map.
A launch option has been added to Leadwerks on Steam that allows you to launch the Leadwerks Game Player outside of the editor. When you launch Leadwerks Game Engine from Steam, a dialog box appears and lets you choose whether to run the editor or the Leadwerks Game Player. (If you just launch the app from a desktop or start menu shortcut, the editor is run automatically.) You can subscribe to other users' games in the Leadwerks Workshop on Steam, and play them by launching the game player.
A new update is available on Steam for Ultra App Kit.
A TEXTFIELD_PASSWORD style flag has been added and is used for the password entry form:
A WINDOW_CHILD style flag has been added. I found this was necessary while implementing a Vulkan 3D viewport in a GUI application. You can read more about that here.
Pressing the Tab key will now switch the focus between widgets.
The "Learn" tab in the project manager has been moved in front of the "Community" tab.
The Visual
A new update is available on the beta branch. A few months ago, Valve introduced the SteamUGC API to Steamworks SDK. This replaces the original RemoteStorage API, and allows unlimited file sizes and a simpler command set. I also suspect the internals in the Steam client and servers are more reliable, because it is a second-iteration design. The beta build can download Workshop items published with the old legacy API, or with the new one. However, Workshop items published with the beta build
It's funny how all of the various features in the new engine are interconnected and development just flows from one to another. I was working on terrain, and I needed to save out some texture data so I implemented Pixmaps, and I wanted to add Basis support and DXT decompression, and then I started converting texture formats, and now I need a way to manage this all. This is an idea I have had for several years and I finally got to try it out.
Leadwerks Game Engine 4 has a strictly defined wo
The following changes have been made to the GLTF model loader:
Correctly loaded rotations and orientations.
Mesh collision caching for faster loading.
Supports transforms with negative scale and correct face orientation.
Support for adjustable alpha cutoff value.
Support for KHR_materials_unlit extension (full bright materials).
This model from SketchFab was useful for testing because it uses so many features of the GLTF format:
https://sketchfab.com/
In designing the new engine, I have found that there are three distinct types of optimization.
Streamlining
This is refinement. You make small changes and try to gain a small amount of performance. Typically, this is done as a last step before releasing code. The process can be ongoing, but suffers from diminishing returns after a while. When you eliminate unnecessary math based on guaranteed assumptions you are streamlining code. For example, a 4x4 matrix multiplication can skip the calc
An update is available on the beta branch with the following changes:
Fixed System::Print() command which was printing char* values as bools.
Added optional parameter to the end of Entity::SetInput().
Add optional parameter to the end of Emitter::SetVelocity()
Fixed light occlusion culling bug.
Fixes a sound source position bug.
A new update is available on the beta branch. This adds automatically generated hitboxes for animated characters, and a new tool to calculate physics shapes using convex decomposition.
Existing C++ projects require a small modification due to the addition of the VHACD library. The VHACD includes directory must be added to the project header search paths.
Visual Studio:
$(LeadwerksHeaderPath)\Libraries\VHACD\src\VHACD_Lib\inc
Code::Blocks:
$(LeadwerksPath)/Include/Libraries/
Working to improve the implementation of the code known as framework. It needs to be able to talk to Lua, with all programming languages. I can't really go on documenting the script until this is finalized, so the time to do it is now.
An update is available on the beta branch. This adds the Window::Center style back into the new refactored Window class, and adds a missing header file in the Professional Edition.
If you'd like to try out a basic implementation of the new GUI, download and extract the attached scripts:
Scripts.zip
This code will create a GUI on the rendering context. It simply consists of a solid background filling the screen and a textless button.
--Initialize Steamworks (optional)
Steamworks:Ini
2020 was the most intellectually challenging year in my career. Many major advancements were invented, and 2021 will see those items refined, polished, and turned into a usable software product. Here is a partial list of things I created:
Streaming hierarchal planet-scale terrain system with user-defined deformation and texture projection.
Vulkan post-processing stack and transparency with refraction.
Vulkan render-to-texture.
Major progress on voxel ray tracing.
Putting all the pieces together, I was able to create a GUI with a sprite layer, attach it to a camera with a texture buffer render target, and render the GUI onto a texture applied to a 3D surface. Then I used the picked UV coords to convert to mouse coordinates and send user events to the GUI. Here is the result:
This can be used for GUIs rendered onto surfaces in your game, or for a user interface that can be interacted with in VR. This example will be included in the next beta upd
I have procrastinated testing of our new 3D engine on AMD hardware for a while. I knew it was not working as-is, but I was not too concerned. One of the promises of Vulkan is better support across-the-board and fewer driver bugs, due to the more explicit nature of the API. So when I finally tried out the engine on an R9 200 series card, what would actually happen? Would the promise of Vulkan be realized, or would developers continue to be plagued by problems on different graphics cards? Read on
The beta branch on Steam has received an update with some important changes.
A new project template called "Tutorial Samples" has been added, which includes the files you need to complete the new tutorials found here.
A new script, Main.lua, has been introduced to take over the main entry point of your program. As explained in detail here, this will have no effect on your existing projects.
The screenshot publish feature is fixed.
Flowgraph arguments no longer require the EnableLegac
A new build is available on the beta branch:
Fixed animation bug found by tumira
Multiple animations will now be a bit faster.
Fixed probes not rendering bug found by reepblue
If all is good this will go out on the stable branch this Sunday.
The beta testers have done a great job. Thanks for your help!