Jump to content
  • entries
    941
  • comments
    5,894
  • views
    870,189

About this blog

Learn about game development technology

Entries in this blog

Games Database Expanded

I've added display pages to the games database, so you can now fill in more information about your game, receive comments, post a video, and add additional images if you wish: http://www.leadwerks.com/werkspace/page/games/_/rogue-system-r17   In the future I will add a file upload option so you can distribute your games here if you want to. Some games in the Downloads section have received a pretty high number of downloads, even though they were hidden away and weren't promoted at all: http

Josh

Josh

Windows 7

This is my opinion of Windows 7. When I tried Vista, I immediately disliked it, but used it for eight months. At the end of that period I still disliked it for all the same reasons.     Source

Josh

Josh

Leadwerks 5 beta Update

A new beta is available with the following changes: Script prefixes are now changed to lowercase entity:Update(), entity:Start(), etc., as well as widget:Draw(), etc. This is because Entity() and Widget() are going to be functions to cast an object to that type. Sprites are now created on a sprite layer object. A sprite layer is created in a world and added to a camera. This allows control over what camera sees what set of sprites. See the examples for details. GUI system i

Josh

Josh

Leadwerks Game Engine 5 Beta Update

An update is available for beta testers. What's new: GLTF animations now work! New example included. Any models from Sketchfab should work. Added Camera::SetGamma, GetGamma. Gamma is 1.0 by default, use 2.2 for dark scenes. Fixed bug that was creating extra bones. This is why the animation example was running slow in previous versions. Fixed bug where metalness was being read from wrong channel in metal-roughness map. Metal = R, roughness = G. T

Josh

Josh

Workshop Store picking up steam

Over the recent months the Leadwerks Workshop Store has experienced a noticeable increase in sales, correlating to an increased number of products offered. Although Workshop Store sales are quite a bit lower than DLC sales, the Workshop Store is more scaleable because it allows third parties to submit a greater variety of products.   We're also able to send out payments to Russia and other regions that other stores and websites may have trouble sending payments to, because our transaction sys

Josh

Josh

More Work on Shadows

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

Josh

Josh

Zip File Import

Leadwerks Engine 4.5 will add ZIP files to the list of file formats you can import into the editor.  This isn't really anything special except that it works in a very specific way.  Source art files will be extracted first, followed by final game-ready formats (mdl and tex), followed by .meta files, which contain thumbnails and conversion settings for each file.  The resulting behavior is that you can import a zip file of game assets, with source art files, and the files will be copied in a way

Josh

Josh

Workshop Browser now on beta branch

You can now try out the new Workshop Browser by opting into the beta branch. This makes it simpler to install Workshop items, and allows you to browser, install, and uninstall items without having to switch to the Steam window.  

Josh

Josh

Leadwerks 5 Beta Update Available

An update is available for beta testers. All Lua errors should now display the error message and open the script file and go to the correct line the error occurs on. The voxel raytracing system is now accessible. To enable it, just call Camera:SetGIMode(true). At this time, only a single voxel grid with dimensions of 32 meters, centered at the origin is in use. The voxel grid will only be generated once, at the time the SetGIMode() method is called. Only the model

Josh

Josh

C++11 for Linux

The beta branch now contains an update that adds C++11 support for GCC on Linux. To use this you must enable C++11 support in the compiler settings in Code::Blocks. Select the Settings > Compiler and Debugger... menu item and then check the box indicated below.     All new projects created from the Leadwerks templates will work correctly out-of-the-box.   Your existing projects need a couple of new libraries added to them. The easiest way to do this is to open the CBP project file i

Josh

Josh

Finalizing Direct Lighting

I have not used the engine outside the editor in a while, but I needed to for performance testing, so now I am back to real-time rendering. During the development of the GI system I broke most of the light types, so I had to spend a couple of days getting those to work again. While doing this, I decided to resolve some longstanding issues I have put off. First, the PBR lighting will use a default gradient in place of the skybox, if no reflection map is set for the world. This is based off t

Josh

Josh in Articles

Beta update available

An update is available on the beta branch. This will improve rendering speed of uncollapsed brushes in-game. You may also see a speed increase in the editor when viewing maps with lots of CSG brushes. You can read about this in detail in this thread.   Lunarovich's suggestion here has also been implemented.   I also tweaked a few stock prefabs and the FPS example map. The crates and boxes will now all use the dynamic shadow setting, and the red cage light prefab is set to only cast stati

Josh

Josh

Script Update [beta]

The beta branch contains a small update which affects the SoldierAI and Projectile scripts. The SoldierAI script now has a modifiable field that lets you choose a prefab for the projectile his weapon fires. The default value is "Prefabs\Projectiles\tracer.pfb" so your existing instances of these objects will be unaffected.   By making the projectile prefab a modifiable value, we can use different types of projectiles with this script. For example, a medieval archer could fire arrows by crea

Josh

Josh

Textfield Widget

It took a few hours to add scrolling to the textfield widget. Now when the caret moves beyond the bounds of the box, text will slide over to keep the caret visible. This really isn't much different from a full text editor. The script is available now on the beta branch on Steam and presently weights in at 381 lines of Lua code.     The Draw function is pretty short and easy to understand. I think most people will customize the appearance of these widgets more than the behavior: f

Josh

Josh

Cryptocurrency Now Accepted in Store and Marketplace

We now accept popular cryptocurrencies in our store and Marketplace through Coinbase Commerce. That's right, you can now buy software like Ultra App Kit using Bitcoin, Ethereum, Litecoin, Dai, or Bitcoin Cash (if you can figure it out!). Right now it's a novelty, but it's worth trying. Maybe by 2022 it will be your only option? Sadly, Dogecoin is not one of the currently supported coins. Soon?

Josh

Josh in Articles

(A word that means a combination of stubborness and responsiveness)

I like how a sequence of decisions can lead in one overriding direction. It's very fun. The FPS weapons and zombie packs were released because I felt there needed to be a little more built-in gameplay available to users.   The Steam Community Choice sale resulted in a large number of new users, most of whom are completely new to game development.   The Winter Games tournament resulted in ten new games that were fun and very creative.   This finally gave me the ammo I needed to launch

Josh

Josh

Better Voxelization

My initial implementation of mesh voxelization for ray tracing used this code. It was good for testing, but has some problems: It's slow, using an unnecessary and expensive x * y * z loop No support for per-voxel color based on a texture lookup There are mathematical mistakes that cause inaccuracy, and the math has to be perfect My solution addresses these problems and only uses an x * y loop to generate the voxels. It does this by identifying the major (largest magn

Josh

Josh in Articles

Leadwerks 5 Beta Update Available

An update is available that adds the new refraction effect. It's very easy to create a refractive transparent material: auto mtl = CreateMaterial(); mtl->SetTransparent(true); mtl->SetRefraction(0.02); The default FPS example shows some nice refraction, with two overlapping layers of glass, with lighting on all layers. It looks great with some of @TWahl's PBR materials. If you want to control the strength of the refraction effect on a per-pixel basis add an alpha channel

Josh

Josh

Correction: Game Launcher installs

I previously reported that Leadwerks Game Launcher had obtained 4000 users. My records in Steam have changed and it now reflects a user base of 1765 users. I think the reporting for free applications was not working correctly, because this number is much closer to what I would expect based on game subscriptions.   The application is still in early release mode and has not been officially launched, and it will have low visibility before the final release. This gives us a period of time to wo

Josh

Josh

Logic Problem

I am working out the advanced logic and interaction by applying it to different problems. Messaging the way the original Quake engine was set up is pretty straightforward. Half-Life 2's input-output system is interesting, but requires an additional mechanism beyond the existing keyvalues system. Lua allows some really powerful stuff. You could enter a string in the property editor, and the script itself could execute this string! But if it's confusing for me, it's going to be really confusing fo

Josh

Josh

Starting with Shadowmaps on Vulkan

Now that we have lights working in our clustered forward Vulkan renderer (same great technique the latest DOOM games are using) I am starting to implement shadow maps. The first issue that came up was managing render-to-texture when the texture might still be in use rendering the previous frame. At first I thought multiple shadowmaps would be needed per light, like a double-buffering system, but that would double the number of shadow textures and video memory. Instead, I created a simple object

Josh

Josh

My Game Entry

Since it's not a competition, I'm actually going to enter the game tournament and publish a simple game to the Workshop. The game will be a third-person corridor space shooter like Starfox in which you simply shoot and dodge meteors. There are two types of meteors flying at you; red ones can be shot, whereupon they break into smaller pieces that can still damage you. Gray ones cannot be shot, and must be avoided. The longer you live, the more points you get, and it just gets progressively ha

Josh

Josh

Workshop page update

The Workshop in Leadwerks Editor has been updated to use the same web interface as the game launcher. Page numbers have also been added to both. In the future, the Leadwerks Workshop interface will probably start to resemble the Game Launcher interface more.  

Josh

Josh

×
×
  • Create New...