Jump to content
  • entries
    941
  • comments
    5,894
  • views
    867,595

About this blog

Learn about game development technology

Entries in this blog

Documentation Update 2

I've taken your suggestions and incorporated the fixes into the new documentation system here: https://www.leadwerks.com/learn   All classes and commands are alphabetized, with classes listed first.   All pages in the API Reference should be working now.   If a page does not appear in the old docs, or if a command does not have an example, it will not appear in the new docs, as I am not changing the content right now.   Please let me know if the table of contents of pages have any error

Josh

Josh

Terrain Building API in Leadwerks 5 Beta

An often-requested feature for terrain building commands in Leadwerks 5 is being implemented. Here is my script to create a terrain. This creates a 256 x 256 terrain with one terrain point every meter, and a maximum height of +/- 50 meters: --Create terrain local terrain = CreateTerrain(world,256,256) terrain:SetScale(256,100,256) Here is what it looks like: A single material layer is then added to the terrain. --Add a material layer local mtl = LoadMaterial("Materials/Dirt

Josh

Josh

SteamUGC Upgrade Complete

A new update is now available on the beta branch. This completes our migration to the newer SteamUGC system for Workshop content. Downloads should be working reliably now, but please let me know if you experience any trouble.   Steam protocol calls are now supported on Linux. Most notably, the Steam interface will open the Workshop now, instead of it opening in a web page.   An extra color option for the perspective viewport has been added, as well as several new color schemes. Select th

Josh

Josh

Building a Steam Purchase Server

One of my main goals in 2016 is to build a built-in store for Leadwerks users to buy and sell 3D models and other items through Steam. It took me a while to understand how this works: The client (Leadwerks Editor) sends a message to the Leadwerks.com server requesting that a purchase be made. The Leadwerks.com server sends a message to the Steam server requesting that a purchase be initialized. Steam displays a dialog to confirm the transaction in Leadwerks Editor. The Steam server r

Josh

Josh

Leadwerks Engine 2.43, advanced optics, and more...

Leadwerks Engine 2.43 ...will be released tomorrow, along with a new source distro. I've fixed a number of bugs, but I don't like compiling releases when I am tired because there's a lot of little steps to mess up, so I will do it in the morning.   Leadwerks Engine 3 Optics was always my favorite subject in physics, and I've been getting some amazing results lately by modeling computer graphics after real lighting phenomena.   Once I decided to make the materials system like 3ds max, ever

Josh

Josh

Final touches on the script editor

I've been working with "Klepto2" to integrate the Scintilla text control into the new Leadwerks editor. Scintilla is very powerful and feature-rich, but is somewhat insane to work with. You've got to have a Scintilla expert onboard to integrate it successfully, which we fortunately do.   Previously, I was relying on calls to a Debug:Stop() function to control breakpoints. This was hard-coded into your script program, and breakpoints could not be dynamically added or removed. Since Scintill

Josh

Josh

Beta update: Submitting curated Workshop items

An update is available on the beta branch with the following changes: Implemented "CollisionMesh"-named limbs in models. Added "Strip vertex colors" option in model editor. Workshop items can now be submitted as free or curated paid items, although no mechanism is in place yet to actually purchase items.     Curated items appear in the Workshop and can be voted for, but cannot be downloaded.     You can enter your bank information for receiving payments, and you can even c

Josh

Josh

Coders Gonna Code, Haters Gonna Hate

Lately I've been talking a lot about making non-programmers happy, so here's something for the coders. B)   For Leadwerks3D documentation, I considered three possibilities: -IPB-based docs -Wiki -Offline CHM files   Each has their own strengths and weaknesses, as always seems to be the case.   IPB A bit slower, harder to organize, harder to edit, looks really good and consistent with the site, search requires quite a few clicks to get where you want to go, missing table of contents is

Josh

Josh

Ultra Engine glTF extensions

As I have explained before, I plan for Ultra Engine to use glTF for our main 3D model file format, so that your final game models can be easily loaded back into a modeling program for editing whenever you need. glTF supports a lot of useful features and is widely supported, but there are a few missing pieces of information I need to add into it. Fortunately, this JSON-based file format has a mechanism for extensions that add new features and data to the format. In this article I will describe th

Josh

Josh in Articles

Picking up speed

Lots of things are happening around here right now!   First up, we've got some free professionally made animations for you to use with our futuristic soldier character. You can download the files here.   Michael Betke of Pure3D has been cranking out AAA-quality 3D models ready to use in Leadwerks Engine. The following sets are available: Birch Trees 1.x (€22,00) Pine Trees 1.x (€22,00) Ground Plants 1.x (€19,00) Each set features new unreleased content. Buy a couple today

Josh

Josh

Character Sketches

The first step to building a character model is to establish the concept. Here are the images I have received. I have my favorite in mind, but what do you think? The purpose of this character is to serve as an enemy for a wide range of games. It could also be used as a main character with a third-person camera.   Which one do you like best?  

Josh

Josh

Double rainbow all the way across the sky

Here is the amazing first shot of Leadwerks Engine 3. Behold not one, but TWO triangles! It's a dual display of isosceles inspiration.     Believe it or not, this screenshot actually demonstrates a feature that's new for LE3...hardware multisampling. Look carefully at the edges of the triangle:     This isn't the first time I've done multisampling, but until now it hasn't been possible to use with deferred rendering. It's now possible to combine these techniques with OpenGL4. You'

Josh

Josh

Beta update available with deferred decals

An update is now available on the beta branch.   A new decal entity type is available. Decals are used to project an image into surrounding geometry. A decal requires a material using a decal shader, located in the "Shaders\Decals" folder. The FPSGun.lua script has been updated to add bullet marks and gunshot wounds to objects a bullet hits. You can also place a decal in a map for adding large details to walls, terrain, or anything else.     Decals are rendered similarly to the way a

Josh

Josh

GUI Design

Just thinking out loud here, and I am considering designing the GUI like this:   The GUI class handles events, window clipping, widget layout, etc. Rather than having a bunch of C++ classes that extend a base Widget class, there would just be the Widget class with a Lua script attached to it. The Lua script would handle all events and drawing, so it would determine what kind of widget the C++ object is. For example, here's a script for a simple button:   function Script:Draw(x,y,width,h

Josh

Josh

"Finding" a "Path"...Get it? Wait a minute...

So after about three weeks of pain and frustration, I have successfully calculated my first path using Recast navigation. This has been a new experience for me. I've implemented half a dozen low-level C++ libraries, and never had any serious trouble, but Recast Navigation is something else.   The technology underlying Recast is impressive. First they take triangle geometry, convert it to voxels, then calculate navigation, and convert it back into rough polygons. You can read about the proc

Josh

Josh

Early Z-Pass in Vulkan

Vulkan is pretty wonderful because I can take all the optimal techniques I worked out in OpenGL and it just makes everything much faster. I've successfully completed the implementation of early Z-pass, which is important for our lighting system. We are using a forward clustered renderer, similar to the technique id Software's new DOOM games use. Because the fragment shader is fairly intensive, a depth pre-pass is rendered to ensure we only process each screen pixel once. This techniqu

Josh

Josh

The Zone video (take 1)

I recorded some clips from Dave's latest version of his scene he is working on. Somehow he managed to get more detail and faster speed. The octree optimizations in version 2.32 help a lot here. The renderer is really good at dealing with lots of small objects strewn across a scene, even if it did take some trouble before we got it working completely right. So here's a short video we'll be using to showcase the capabilities of Leadwerks Engine:   Please share this on Facebook, Twitter, YouT

Josh

Josh

Voxel Madness

After three days of intense work, I am proud to show you this amazing screenshot: What is so special about this image? I am now successfully uploading voxel data to the GPU and writing lighting into another texture, using a texture buffer object to store the voxel positions as unsigned char uvec3s. The gray color is the ambient light term coming from the Blinn-Phong shading used in the GI direct light calculation. The next step is to create a light grid for the clustered forward rende

Josh

Josh

Workshop Browser Preview

The implementation of the Leadwerks Workshop has always been planned in two steps: Initial implementation using the Steam interface. Implementation of built-in interface in editor.   I've been working on the second part for a couple days, and the results are pretty awesome so far. A built-in browser lets you view all items in the Workshop, search, and sort by rating or date uploaded.     When you click on an item, you can view its detail view. Pressing the "Install" button wil

Josh

Josh

Leadwerks 3 on Windows 8

I picked up an Intel SSD for fairly cheap and installed the Windows 8 Release Preview on it. With this configuration boots up in about 5 seconds. I actually spend a lot longer waiting for BIOS to finish than for Windows to start, which is fantastic.   Anyways, it makes sense to me to take screenshots for the docs from the newest version of Windows 8 since Windows is still the dominant operating system. I couldn't find a driver for my ATI 3850, so I swapped it out for a GEForce 480. Here's

Josh

Josh

Improved 2D Drawing Command Set

To provide support for advanced GUI rendering, some of the features I implemented in the refactored window class are being brought into the 2D drawing command set. This includes a lot of text rendering features like word wrap, multiline, horizontal and vertical centering, and viewport clipping.   A new text drawing function includes additional parameters for better control: Context::DrawText(std::string text, int x, int y, int width, int height, int style)   The style parameter can be

Josh

Josh

A Red Letter Day

Last week Valve founder and CEO Gabe Newell took to the stage at LinuxCon and proclaimed that "Linux is the future of gaming". Gabe talked about Linux gaming capabilities and promised to unveil something "on the hardware side" the following week. Today, Valve announced the upcoming release of SteamOS, a living-room operating system designed specifically to compete directly with the XBox, Playstation, and Wii console ecosystems. SteamOS will being openness to the console gaming world. This will h

Josh

Josh

Character Physics Improvements

I update to latest version of Newton and did a lot of work on character physics. All collisions below the step height will now be ignored, regardless of incline. Character collision in general is much more stable and accurate. Terrain collisions now work properly. Character collisions using an adaptive method that will be much faster overall.   Opt into the beta branch on Steam to get the update. If you're using Lua, be sure to update your project to get the latest EXEs.

Josh

Josh

Upsampling Textures with AI

I did a little experiment with FPS Creator Pack #75 by upsampling the images with Gigapixel, which uses deep learning to upsample images and infer details that don't appear in the original pixels. The AI neural network does a pretty impressive job, generating results that are look better than a simple sharpen filter: I doubled the size of the textures to 1024x1024. Then I generated normal maps from the high-res images using AMD's TGA to DOT3 tool, and saved the normal maps with BC5 DDS compressi

Josh

Josh

Leadwerks3D on Android

After some initial difficulty, Leadwerks3D is now running on Android, with the exact same code that runs on iPhone, iPad, Windows, and Mac. A big thanks for Aria for all his help and expertise with the Android platform. This means Leadwerks3D is now running on all platforms we intend to support at launch, and it can be easily extended to support new ones.     To celebrate, here's another cartoon I drew:

Josh

Josh

×
×
  • Create New...