Jump to content
Here is a script for a first-person player. All of this is actually working now. It's very interesting that physics, rendering, culling, and Lua game code are all executing at the same time on different threads. CPU usage in a simple scene and some physics is about 35% on a quad core processor, which is good.
I think the most interesting thing here is that to break the kinematic joint used to control an object the player picks up, you simply set the variable to nil. However, I did run into
I've successfully converter the sliding door script over to the new API. This will all look very familiar, but there are some cool points to note.
The entity mass can be retrieved and set with a property as if it was just a regular variable. Underneath the hood, the engine is making method calls.
I decided to prefix most field names with "slidingdoor_" to prevent other scripts from accidentally interfering. The "enabled" value, however, is meant to be shared.
The Entity is
With Christmas approaching I am now turning my attention to finishing Leadwerks Game Engine 4.6. The major features planned are peer-to-peer networking and a new vehicles system, as well as miscellaneous bug fixes. A beta build will be made available early on Steam for testing.
A big update for the beta of the upcoming Turbo Game Engine is now available, adding support for VR and Lua script!
Turbo Game Engine now supports VR rendering, with support for true single-pass stereoscopic rendering on Nvidia GPUs. Other hardware will use a double-rendering path that is still faster than Leadwerks. To turn VR on simply call EnableVR(). Controllers are not yet supported, just rendering.
Lua script is now supported in Turb
During development of Leadwerks Game Engine, there was some debate on whether we should allow multiple scripts per entity or just associate a single script with an entity. My first iteration of the scripting system actually used multiple scripts, but after using it to develop the Darkness Awaits example I saw a lot of problems with this. Each script used a different classname to store its variables and functions in, so you ended up with code like this:
Virtual reality rendering is very demanding on hardware for two reasons. First, the refresh rate of most VR headsets is 90 hz instead of the standard 60 hz refresh rate most computer monitors operate at. This means that rendering must complete in about 11 milliseconds instead of 16. Second, we have to render the scene twice with two different views, one for each eye. Without any special optimizations, this roughly means that we have to pack 16 milliseconds worth of rendering code into five milli
I've uploaded a new release last night correcting the player's pickup to be much more reliable. It should be very rare for a case in which the player is in a object and releases it causing the player to fly backward. I could have kept objects solid but that caused another can of worms. I also posted this on my OneDrive due to issues of people not being able to download it from this site.
Yesterday I was working on implementation of the power balls and the launcher. I've written a rough draf
Hi Leadwerkers ⚙️,
today I have a cool announcement to make. In the past two years I was working on the Phodex Framework, which is a set of helpful tools, utilities and systems, created to unleash Leadwerk's true power and potential, to be able to create the games I had in mind. Now, that I have released my first Leadwerks game Bladequest: The First Chapter and the Phodex Framework has proven its worth in practice, I thought it is time to share some parts of the framework, especially those
About six months ago I filed a trademark for the term "Turbo Game Engine". Today I heard back from the US Trademarks Office.
I sent the requested reply. So it looks like we will get a trademark for the name "Turbo Game Engine" which means no one else can legally use it. 👍
This was the whole point of me announcing the name and putting it up for sale as a commercial product six months ago.
I'm using the excellent sol2 library to interface C++ and Lua in the upcoming Turbo Game Engine. I've decided not to create an automatic header parser like I did for tolua++ in Leadwerks 4, for the following reasons:
There are a lot of different options and special cases that would probably make a header parser a very involved task with me continually discovering new cases I have to account for.
sol2 is really easy to use.
Each class I want available to Lua will have a stat
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.
For who those who don't know (or remember) Vectronic was my first person puzzler project I was developing from 2013-2016 starting with the Source Engine and then onto Leadwerks. The goal of the project was to create a puzzle game and allow people the assets to make their own puzzles. Although it never saw it's end, you can still play the demo here.
So what happened? Vectronic was how I pretty much learned a lot about programing, art and game design in general. I kept going back working on i
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.
Luawerks has been updated to 1.2.6, making some small adjustments and fixes to the system. If you have previously purchased Luawerks, this update is available for free on the Leadwerks Marketplace.
Following changes include:
Fixed flag typo correcting LUAWORKS to LUAWERKS
Moved error.mat/tex to the Materials/Common folder
Added a useuisystem boolean to disable the menu,
Adjusted VR mode not to call any UI elements.
At this time, this update is only exclus
After three weeks of work, Pre-Alpha v1.1 is ready.
The terrain has seen some behind the scenes improvements with speed as well as visual improvements to geometry and texturing. When I manage to get Texture Arrays working I will be able to finish of the new texturing shader that will include Tessellation and over 16 different texture maps as well as various masks that will paint according to erosion and forest locations.
An image of one of the mountains randomly pl
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
Building on the Asset Loader class I talked about in my previous blog post, I have added a loader to import textures from SVG files. In 2D graphics there are two types of image files. Rasterized images are made up of a grid of pixels. Vector images, on the other hand, are made up of shapes like Bezier curves. One example of vector graphics you are probably familiar with are the fonts used on your computer.
SVG files are a vector image format that can be created in Adobe Illustrator and othe
There's a discussion on the forum that sort of veered into talking about Khronos' GLTF file format specification:
Some of this gave me some ideas for changes in the art pipeline in Turbo Game Engine. I was not feeling very concentrated today so I decided to do some easy work and implement a loader class:
class Loader : public SharedObject
virtual bool Reload(shared_ptr<Stream> stream, shared_ptr<SharedObject> o, const int f
The Seventh World is a Medieval Fantasy Survival game, inspired by the likes of Skyrim and ARK Survival Evolved.
It's been under development for the last two years but only in the last eight months has a real commitment been made to it. Spending every night after work and every other day working on it I've achieved a base from which to build on.
The cuboid landmasses are called fragments. They are arranged as a sphere to make up a planet. Game-play will eventually include mov
I found and fixed the cause of the cubemap seams in variance shadow maps so we now have nice soft seamless shadows.
I also changed the engine so that point lights use six 2D textures instead of a separate cubemap texture array. This means that all light types are sharing one big 2D array texture, and it frees up one texture slot. I am not sure if I want to have a hard limit on number of shadow-casting lights in the scene, or if I want to implement a system that moves lights in and out
As I work with the new engine more and more I keep finding new ways it makes life happy and productive.
I have talked about how great these are at length, but I keep finding new reasons I love them. The behind-the-scenes design has been a lot of fun, and it's so cool to be able to write lines of code like this without any fear of memory leaks:
What do you think that code does? It plays a sound, keeps it in m
Working out of this subject:
I tested a script for a simple "GoToPoint()" function for a customizable character controller for NPC. This may not be so good as the implemented LE character controller with classic navigation system but it could be promising to use it in open world (so not in much corridored dungeon game!) where the the NPC should crawl or swim or whatever do things as for example underscaled world (thats what I am actually interested in 😁)
The NPCs are using an "
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.