Jump to content
  • entries
    941
  • comments
    5,894
  • views
    868,150

About this blog

Learn about game development technology

Entries in this blog

Global Illumination Research Pt 5

I was able to work out the shader fixes and now I can show you a good schematic of how the new lighting system works. Instead of a single light source, we now have three types of lighting that are combined for the final render. Direct lighting is the standard deferred lighting model you know and love from Leadwerks. This looks great, but shadowed areas have always looked pretty flat.   The second component is the new GI ambient lighting. This is a view-independent lookup on the local cube

Josh

Josh

Global Illumination Research Pt 4

I've been puzzling over a problem that exhibits itself on flat surfaces. Cubemap reflections appear "jittery" as if they are been rounded off to a lower-precision float. At first I thought this might mean that our best-fit normals routine using 8 bits per channel might lack the precision needed for cubemap reflections. However, when I changed the normal texture in the gbuffer to a 32-bit floating.point RGBA texture, the problem remained. This error is also visible in Igor's SSLR shader.  

Josh

Josh

Global Illumination Research Pt 3

The environment probe feature is coming along nicely, spawning a whole new system I am tentatively calling "Deferred Image-Based Lighting". This adds image-based lighting to your scenes that accentuates the existing deferred renderer and makes for higher quality screenshots with lots of next-gen detail. The probes handle both image-based ambient lighting and reflections.   Shadmar helped by implementing parallax cubemap correction. This provides an approximate volume the cubemap is rendered

Josh

Josh

Ambient Light Research Pt 2

After a resolving a few odd and ends I was able to create a proof of concept of the deferred environment probe idea I talked about earlier. The environment probe is basically the same as a point light. They have a range and affect a finite area. The color property can be used to adjust the intensity of the ambient lighting / reflections. Basically, you want to cover your indoor environments with these, but it's okay if you miss some spots. The environment probes fade out gradually so you do

Josh

Josh

Ambient Lighting Research

Previously I talked about the idea of implementing a new "Ambient Point Light" into the engine. This would work by rendering the surrounding environment to a cubemap, just like a regular point light does. However, this type of light would render to a color buffer instead of just a depth buffer.   The light could then be rendered to display ambient reflections and soft lighting on the surrounding environment. While it would not provide perfect real-time reflections, it would give an extra bo

Josh

Josh

Mercenary Action Figure released as DLC

The Leadwerks Mercenary Action Figure has been released as a DLC. Previously, I talked about how the Workshop Store was not selling much content, and that we need game-ready content to be available to use in Leadwerks. At the same time, DLC sales are quite good, which seems contradictory.   To date, this item has total sales of $299 since release and cost $2000 to produce. (Additional characters will be a bit cheaper if we reuse animations.) After Steam's cut, I've lost $1800 on this proje

Josh

Josh

Beta update available

An update is available on the beta branch with the following changes: Fixed System::Print() command which was printing char* values as bools. Added optional parameter to the end of Entity::SetInput(). Add optional parameter to the end of Emitter::SetVelocity() Fixed light occlusion culling bug. Fixes a sound source position bug.

Josh

Josh

Tighter website Steam integration

Yesterday I tried a plugin I've been meaning to try out for a long time, Steam Sign-in for IPB. It worked without a hitch and I was able to easily figure out how to locate a Steam ID from a forum account, and vice versa. You can sign straight into Leadwerks using your Steam ID, or you can add a Steam ID to your existing account. (See "Edit Profile".)   The gallery, videos, Workshop, and games sections will now correctly link to your Leadwerks profile page. Notice when you click on the auth

Josh

Josh

Update available on public branch

An update is available which fixes a problem when antialiasing is disabled on AMD hardware. You must update your project to get the new shaders and executables for the fix.  

Josh

Josh

Shifting to DLCs

As described previously, the open-market model store approach does not work for Leadwerks and I am shifting my focus to providing DLCs made by third-party authors. The first thing I want to do is create more consistent branding that all DLC model packs will use. Here's what I came up with:           I'm also developing terminology to apply consistently to say what the DLC contains. The meaning of "Material Pack" and "Model Pack" is obvious. "Action Figures" will refer to charac

Josh

Josh

Rethinking the Workshop

As discussed before, sales in the Workshop Store have been measly compared to what the DLCs regularly do. People just don't want to use it. Without revenue coming in, I can't convince third parties that it is a good idea to sell through this system (it isn't), and no new products will get added. We need a large library of content to be available for use in Leadwerks, but this isn't working. So I am moving on to another approach.   The "Workshop" menu item in the website header has been pla

Josh

Josh

Beta Update Available

An update is available on the beta branch which makes changes to the way DLCs are installed. The SciFi Interior Pack has been added as a paid Workshop item. You can obtain this item by either purchasing it through the Workshop Store interface, or buying the DLC on our Steam Store page. At the time of this writing, the other model pack DLCs have not been added yet.   To install the SciFi Interior Pack DLC you simply browse to it in the Workshop interface. If you own the DLC the "Buy" button

Josh

Josh

Building Turret AI: Part 2

I've expanded the turret AI to include a visibility test. This is performed initially when selecting a target, and is also performed on a continuous basis to make sure the target stays in view. To avoid overloading the engine I am only performing the visibility test at most once every 500 milliseconds. This provides near-instantaneous updating while preventing the picking from becoming a bottleneck and slowing down performance.   Adding bullets was mostly a copy and paste job from the Soldi

Josh

Josh

Building the Turret AI

In this series of blogs I am going to describe my implementation of AI for a new Workshop Store model, the Leadwerks turret. The model is shown below, without the weapon inserted.     Before writing any code I first decided the main behaviors I wanted this script to involve. The turret should scan the area to identify an enemy (using the team ID to differentiate between enemy types) and choose the closest target. Unlike the soldier AI, the turret AI will not change targets when another

Josh

Josh

Designing the Leadwerks Hoodie

I sent my mockups off to the designer to create our very own hoodie as a super tournament prize. This garment will come with not one, not two, but three separate printed graphics on a high-quality American Apparel hooded fleece. Here's roughly what it will look like:     And here is a t-shirt design for a future production run:  

Josh

Josh

Prizes Shipping

If you entered the Winter Games Tournament, I am shipping prizes to you now (late, I know).   You will receive a friend request from the Leadwerks Software Steam account. Please accept this. I will need your mailing address in order to ship your prize.

Josh

Josh

Update Available [beta]

An update is available on the beta branch which resolves the AMD rendering issues on Windows 10 with 1x MSAA setting enabled: http://www.leadwerks.com/werkspace/topic/13273-graphical-glitch/   The following components have changed: Lighting shaders adjusted to handle regular 2D textures (MSAA level 0) Editor updated, for Windows. Lua interpreter and debug interpreter updated, for Windows.   The C++ library has not been updated yet.

Josh

Josh

TGIF

Happy Friday.     One thing I will point out is that success is much more about creative experimentation than it is about sheer willpower. You have a little control over willpower, but not a ton. It's much better to keep the same amount of effort and just be smarter about what you do, than to try really really hard. That means taking a lot of risks and experiencing a lot of small low-cost failures to find what works.

Josh

Josh

Environment Probes

Note: this is highly experiment and subject to cancellation, change, revision, etc. Now on with the blog...   Shadmar and Reepblue have paved the way for this research, and I am experimenting with some of these ideas in Leadwerks.   Environment probes in Leadwerks are an experimental entity that creates a vantage point from which a cubemap is generated. The cubemap provides a 360 degree view of the surrounding environment in a single texture. This texture can then be used in the deferred

Josh

Josh

Relocation

My productivity has not been good lately because I am agonizing over where to live. I don't like where I am right now. Decisions like this were easy in college because I would just go where the best program was for what I was interested in. It's more difficult now to know if I am making the right choice.   I can "go big" and move to San Francisco, which weirdly has become the capitol of tech. I lived there before and know all the craziness to expect. I used to work at 24th and Mission (be

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

Scripted Behavior

The stock scripts that come with Leadwerks form a continually expanding game framework that can be used in many different ways. The reuse we get out of the door, switch, trigger, and AI scripts is really great. Every time I add a new script I can count on it being used in many different ways.   Sometimes this requires a custom model in order to develop and demonstrate usage of the script. It's best for me to have one model made exactly to my specs, and then make everything else conform to t

Josh

Josh

Source art files now supported in Workshop

You might not have noticed this, but Workshop items can now include the following file formats: "bmp","jpg","jpeg","png","tga","dds","psd","blend","fbx","obj","3ds","x","dae"   When Leadwerks installs Workshop items, the source art files are unzipped first, then the final files are unzipped, in order to avoid triggering a reconversion of the file. If you import an FBX and makes some changes to it, you can safely include the FBX in your Workshop package and it will install without reconvertin

Josh

Josh

Very Low-Level Advancements

There are three low-level advancements I would like to make to Leadwerks Game Engine in the future: Move Leadwerks over to the new Vulkan graphics API. Replace Windows API and GTK with our own custom UI. This will closely resemble the Windows GUI but allow new UI features that are presently impossible, and give us more independence from each operating system. Compile the editor with BlitzMaxNG. This is a BMX-to-C++ translator that allows compilation with GCC (or VS, I suppose). This w

Josh

Josh

The Financials of Custom Content

The Leadwerks Merc character, who I think will go down in history over the next few years second only to the infamous "Crawler", is an experiment. First of all, I wanted a completely custom-made character to developer AI with. This ensured that I was able to get the model made exactly to my specs so that we would have a template for other characters to follow. Fortunately, the script I wrote can easily be used with other models like Arteria's Strike Troop.   The quality of this model is rea

Josh

Josh

×
×
  • Create New...