Jump to content
Entries in this blog
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. glTF will be our main 3D model format, for both development and final published models.
What's so great about the glTF file format?
Documented and Human-Readable
Unlike the "black box" FBX file format, which can only be re
The GMF2 file format provides the fastest possible load times for 3D models. A preliminary specification and SDK for loading and saving files in the GMF2 file format is now available on GitHub here:
A Quake 3 MD3 model loader is included as an example.
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 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!
New parameters for bet
A new update is available for Leadwerks Game Engine 4.6 beta. This fixes many bugs.
Slow kinematic joint rotation
Heightmap import flipped
Map switching crashes in VR
Project Manager cancel button bug
The Zone DLC map failing to load
Ball joints not working
Take a look at the bug reports forum to see all the recent fixes in the engine and documentation.
This is a full update, with new builds for Windows and Linux, for C++ and Lua games. You
The beta branch on Steam is now updated. Version 4.6 introduces peer-to-peer multiplayer capabilities with a new multiplayer game template. Check out the new features in the documentation:
The physics library is updated to the latest version of Newton.
The editor has some enhancements as well:
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 n
Here's a look at the new vehicle system that is being developed. The API has been simplified so you simply create a vehicle, add as many tires as you want, and start using it. The AddTire() command now accepts a model and the dimensions of the tire are calculated from the bounds of the mesh.
int AddTire(Model* model, bool steering=false, const float spring=500.0f, const float springrelaxation = 0.1f, const float springdamping = 10.0f);
void SetGas(const float accel);
I'm wrapping up the new multiplayer capabilities for Leadwerks 4.6, and I am very excited about what this offers developers.
We saw previously how the lobby system is used to create or join games, and how to retrieve Steam IDs for messaging. Once we have joined a game we can start sending messages with the P2P::Send command, which includes a few overloads:
static bool P2P::Send(uint64 steamid, const int messageid, const int channel = 0, const int flags = 0);
static bool P2P::Send(uint64
After using it for a few weeks, I previously deleted our Discord server for the following reasons:
Community activity was being taken from our site to Discord.
They weren't really providing anything of value.
There have been some problems with our Cometchat integration lately. I have noticed new messages are not popping up like they should, and selecting the link to view a user's profile does not work. So I set to fixing these issues.
Upgrading CometChat to the latest
The next update will include a new networking system with built-in voice chat for multiplayer games.
Voice communication is built into your game and can be enabled simply by turning it on when a specific key is pressed:
You can selectively filter out users so your voice only gets sent to your own team or to a specific player:
void Voice::SetFilter(const uint64 steamid, const bool state)
When another player sends their voice
The new Lobby system in Leadwerks 4.6 allows you to create a public listing of your multiplayer game for others to join. This uses the Steamworks library. You can tap into the Steamworks lib by piggybacking on the default "SpaceWar" example game, which uses the Steam app ID 480. This is set up by default when you create a new Leadwerks project.
Now you might think of a lobby as a place where people hang out and chat before the game starts. You can treat it like this, but it's best to keep t
A new build is available on the beta branch. This changes the model picking system to use a different raycasting implementation under-the-hood. Sphere picking (using a radius) will also now correctly return the first hit triangle. You will also notice much faster loading times when you load up a detailed model in the editor!
Additional parameters have been added to the Joint::SetSpring command:
void Joint::SetSpring(const float spring, const float relaxation = 1.0f, const float damper =
A small update has been published to the default branch of Leadwerks Game Engine on Steam. This updates the FBX converter so that the scene units (meters, feet, etc.) are read from the file and used to convert the model at the proper size. Previously, the raw numbers for position, scale, and vertex positions were read in as meters. The new importer also supports both smooth groups and per-vertex normals, so models can be imported more reliably without having to recalculate normals.
An update is available for the new Turbo Game Engine beta.
Fixed compiling errors with latest Visual Studio version
Fixed compatibility problems with AMD hardware
Process is now DPI-aware
Added high-resolution depth buffer (additional parameter on CreateContext()).
Subscribers can download the new version here.
TLDR: I made a long-term bet on VR and it's paying off. I haven't been able to talk much about the details until now.
Here's what happened:
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. Mobi
The Turbo Game Engine beta is updated! This will allow you to load your own maps in the new engine and see the speed difference the new renderer makes.
LoadScene() has replaced the LoadMap() function, but it still loads your existing map files.
To create a PBR material, insert a line into the material file that says "lightingmodel=1". Blinn-Phong is the default lighting model.
The red and green channels on texture unit 2 represent metalness and roughness.
The beta branch has been updated. The following changes have been made:
Rolled beta branch back to release version, with changes below.
Added new FBX converter.
Fixed Visual Studio project template debug directory.
Fixed Visual Studio project template Windows Platform SDK version problem.
If everything is okay with this then it will go out on the default branch soon.
Here are the results of the Summer Games Tournament. Make sure you update your mailing address, because posters are being sent out immediately!
The arcade classic "Space Invaders" has been re-imagined with modern graphics and cute 3D aliens!
Constant is an abstract game about capturing cubes. Make sure you read the instructions!
Procedurally generated levels and a lot of interesting rooms make this FPS worth trying. Watch out for traps
New content has been added to Leadwerks Marketplace to provide you with assets for your games. All items are sized correctly and completely ready-to-use with Leadwerks
You can now view detailed sales records of your game assets in Leadwerks Marketplace. First, log into your Leadwerks account and navigate to the Leadwerks Marketplace main page. In the bottom-right, below the categories, a link to your paid files will appear.
Here you can see a list of all your paid items:
When you click on an item, you can see a list of people who have purchased it, along with sales dates.
If you wish to give a free license to any member for any
Some of you are earning money selling your game assets in Leadwerks Marketplace. This quick article will show you how to request a payout from the store for money you have earned. First, you need to be signed into your Leadwerks account.
Click the drop-down user menu in the upper right corner of the website header and click on the link that says "Account Balance".
On the next page you can see your account balance. As long as it is $20 or more you can withdraw the balance into you
Steam Workshop was a compelling idea to allow game asset authors to sell their items for use with Leadwerks Game Engine. However, the system has turned out to have some fundamental problems, despite my best efforts to work around it.
Free items are not curated, causing the store to fill with low quality content.
Some people have reported trouble downloading items.
The publishing process is pretty tedious.
The check-out process requires adding funds to Steam Wallet, a
Summer is here, and you know what that means! Yes, it is time for another LEGENDARY game tournament. This year the theme is "Retro Gaming". Create a modern take on an arcade game hearkening back to the days of NES, Neo Geo, Sega, or just make anything you want. Either way, you get this totally radical poster as a prize!
How does it work? For one month, the Leadwerks community builds small playable games. Some people work alone and some team up with others. At the end of the mont
In evaluating possible company names I have come up with the following criteria which I used to choose a name for our new game engine.
Spelling and Pronunciation
The name should be unambiguous in spelling. This helps promote word-of-mouth promotion because when someone hears the name for the first time, they can easily find it online. Similarly, the name when read should be unambiguous in pronunciation. This helps the name travel from written to spoken word and back. Can you imagine telli
Internally, Leadwerks Editor uses an EventHandler class for every interface in the program. The material editor is a class extended from the EventHandler. So is the little window that has all the controls to calculate normals. So is every viewport.
The event handler class has one important function:
Every EventHandler has access to events as they occur. This is how all program actions are handled in the editor.
The plugin system will work by hooking int