My last NASA project is complete. There's a physics bug in Leadwerks 4.6 that will get resolved this weekend. Starting Monday I am going to focus on the new engine again and move us forward so we can release in 2020. I am really looking forward to getting back in the game.
After about four days of trying to get render-to-texture working in Vulkan, I have everything working except...it doesn't work. No errors, no clue what is wrong, but the renderer is not even clearing the depth attachment, which is why the texture read shown here is flat red.
There's not much else to say right now. I will keep trying to find the magic combination of cryptic obscure settings it takes to make Vulkan do what I want.
This is very hard stuff, but once I have it working
The beta testers and I are are discussing game programming in the new engine. I want to see C++, Lua, and C# all take a near-identical approach that steals the best aspects of modern game programming and ditches the worst, to create something new and unique. To that end, we are developing the same simple game several times, with several different methodologies, to determine what really works best. One thing I realized quickly was we really need a way to load prefabs from files.
I started im
Since previously determining that voxels alone weren't really capable of displaying artifact-free motion, I have been restructuring the GI system to favor speed with some tolerance for latency. The idea is that global illumination will get updated incrementally in the background over the course of a number of frames, so the impact of the calculation per frame is small. The new GI result is then smoothly interpolated from the old one, over a period of perhaps half a second. Here's a shot of the r
Happy Friday! I am taking a break from global illumination to take care of some various remaining odds and ends in Ultra Engine.
Variance shadow maps are a type of shadowmap filter technique that use a statistical sample of the depth at each pixel to do some funky math stuff. GPU Gems 3 has a nice chapter on the technique. The end result is softer shadows that run faster. I was wondering where my variance shadow map code went, until I realized this is something I only prototyped in OpenGL a
An update has been posted with the following fixes:
http://www.leadwerks.com/werkspace/topic/7847-undo-does-not-refresh-gizmos/
http://www.leadwerks.com/werkspace/topic/7842-bsp-mesh-export/
Here are some things I did in the last couple days to fix a computer that was basically unusable.
It seems that Superfetch was rebranded to "SysMain" in an update and automatically re-enabled. If your computer is grinding away either the CPU or disk usage while doing nothing, this is the culprit. Disable it in Windows services.
The XBox games bar is suspect. I recommend disabling it now that FRAPS supports Vulkan.
Some features in Visual Studio are making it unusably slow.
In
The addition of our plugin system makes the engine feel different. There is a stronger distinction between core and non-essential functionality. I removed a lot of third-party libraries from the project and am just focusing on graphics, physics, pathfinding, and other features that are core to the functioning of your game. Things like file importers terrain generation, etc. can be stored away in self-contained optional plugins, or can be part of the editor project, and do not need to reside in t
Adding emission into the cascaded voxel cone step tracing global illumination and dynamic reflections system (SEO ftw) was simple enough:
There's some slight trailing but it looks okay to me. There is a bit of a "glitch" in that when the emissive surface gets near the wall, the ambient occlusion kicks in, even though the sphere is self-illuminating. This happens because the emission color is mixed with the light voxel during the rasterization step. I could fix this by storing emis
You may have noticed our deferred decals (presently in beta) tend to shift with distance. Something was wrong with the screen space to world space conversion, but it's a hard problem to describe. I wrote a function based on the work Igor did for his SSLR shader, like this:
vec4 ScreenPositionToWorldPosition(in vec2 texCoord)
{
float x = (texCoord.s / buffersize.x - 0.5) * 2.0;
float y = (texCoord.t / buffersize.y - 0.5) * 2.0;
float z = texelFetch(texture5, ivec2(texCoord),gl_Sampl
This code added to main.lua actually works:
--Create a window
local windowstyle = window.Titlebar
if System:GetProperty("fullscreen")=="1" then windowstyle=windowstyle+window.FullScreen end
window=Window:Create(title,0,0,System:GetProperty("screenwidth","1024"),System:GetProperty("screenheight","768"),windowstyle)
window:HideMouse()
--Create the graphics context
context=Context:Create(window,0)
if context==nil then return end
--Create a GUI
local gui = GUI:Create(context)
local widget = Wid
I'm happy to say the physics joint class in the new engine is completed. I made all the members that are not meant to be accessed private. One interesting part is the parent and child public members, which are constant pointers to private members. This should result in a read-only member in C++. A sol property is used to expose this to Lua in a read-only manner.
The upvector joint will align an object's Y axis to any vector you set, but still allow rotation around the axis. This is perfect
In Vulkan all shader uniforms are packed into a single structure declared in a GLSL shader like this:
layout(push_constant) uniform pushBlock
{
vec4 color;
}
pushConstantsBlock;
You can add more values, but the shaders all need to use the same structure, and it needs to be declared exactly the same inside the program.
Like everything else in Vulkan, shaders are set inside a command buffer. But these shader values are likely to be constantly changing each frame, so how do you hand
A new update is available to beta testers.
I updated the project to the latest Visual Studio 16.6.2 and adjusted some settings. Build speeds are massively improved. A full rebuild of your game in release mode will now take less than ten seconds. A normal debug build, where just your game code changes, will take about two seconds. (I found that "Whole program optimization" completely does not work in the latest VS and when I disabled it everything was much faster. Plus there's the precompile
Version 4.5 will feature official support for VR (Vive and Oculus) and a new super realistic vehicle system. These features are more or less already done, but need some work to make them release-ready. The new vehicle system is so good, and I am so grateful to Julio for his help making this happen, that I think we might do a racing-themed winter tournament. I am trying to think of a clever pun to call it.
At the same time, I have implemented the first build of version 5 in the same sour
A bug fix patch has been uploaded. Run the Leadwerks updater to download the new files. You may need to update projects (see File > Project Manager) and recompiled.
Recent bug fixes can be viewed here:
http://www.leadwerks.com/werkspace/forum/80-bug-reports/
Additionally, the following improvements were made:
Physics interpolation will be much smoother now.
Character controller was adjusted, works great on terrain.
A bug in the PhysicsSetRotation() command was fixed, though
I've begun a Lua script for a Treeview widget. This is arguably one of the most complex widgets to implement, but after having done this in another language I have a design that I think is pretty simple. The script sorts all tree view nodes into a linear list-like table so that they can be drawn quickly. Like other widgets, the script will calculate where the starting point in the list is to display just the visible nodes. This is very important because it prevents the program from slowing d
I hired a local Android developer to get Leadwerks 3.0 running on Android devices. We don't know a lot yet, other than that we have an OpenGLES renderer, and everything should be cross-platform compilable. The Android version of LE3 is using a minimum requirement of Android 2.2, which is the lowest version that supports OpenGL ES 2.0. This will run on about 75% of Android devices:
As you can see here, the proportion of 2.1 devices is steadily dropping. If a linear rate of decrease i
About a year ago, before I even had my cool hat, I wrote a blog post called What's the Big Idea? that talked about some big-picture ideas about where Leadwerks is going:
Well, a year later, this idea is coming to fruition. I previously broke down the user journey into Education, Collaboration, Promotion, and Distribution. This has now been distilled down to the new Leadwerks tagline: Learn, Build, Play. I had our logo reworked and I am very proud to present to you this beautiful design:
An update is available on the beta branch, which includes the editor and Lua executables, for Windows only. The following issues are resolved:
http://www.leadwerks.com/werkspace/topic/14934-materials-go-crazy-when-used-on-a-prefab/
http://www.leadwerks.com/werkspace/topic/15644-latest-43-beta-causes-crawler-to-rotate-at-wrong-direction/
http://www.leadwerks.com/werkspace/topic/15597-wrong-issues-with-z-sort-materials/#entry104462
Version 4.5 is updated on the beta branch on Steam.
Fixed small projection error in VR mode.
Added fog settings in editor and into map file format.
Fixed Workshop browser back button not working.
Added VR project template.
Added VR player script
Added friction to hinge joint script.
Added ball and slider joint scripts.
Joint scripts will now use the entity parent for the other joint connection (if it exists).
We've only got about 24
A new build is available on the beta branch:
Fixed character controller physics.
Added SSR effect in AI & Events maps.
Renamed "Advanced FPS template" to "FPS template".
Toned down specular reflection on crawler skin.
Updated syntax highlighting for new commands.
Fixed quaternion Slerp function creating nan values with GCC release build.
Fixed Linux mouse down/hit bugs.
Leadwerks Game Launcher can now be used on SteamOS. I fixed a bunch of little issues that were preventing this from running. The interface is not optimal right now for controllers, and there is much left to do, but your games do run. It's pretty fun to play your games on a console, when most of them were developed on Windows and never even run on Linux before.
If you have a Steam Machine give it a try!
The terrain system in Leadwerks Game Engine 4 allows terrains up to 64 square kilometers in size. This is big enough for any game where you walk and most driving games, but is not sufficient for flight simulators or space simulations. For truly massive terrain, we need to be able to dynamically stream data in and out of memory, at multiple resolutions, so we can support terrains bigger than what would otherwise fit in memory all at once.
The next update of Leadwerks Game Engine 5 beta suppo
We've transferred the site data to a dedicated server hosted with wiredtree. I've filed a ticket with invision power services to configure the new server. When that is confirmed to be working I'll retransfer the database to make sure all posts are saved and change the domain nameservers and A record.
I also have an update for the site skin that is supposed to fix most of the issues reported, but I want to make sure things are working right before installing it.
Then we'll get back to w