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

About this blog

Learn about game development technology

Entries in this blog

4.3 beta update available

A new update is available on the beta branch on Steam. I've merged the OpenGL2 and OpenGL4 graphics driver classes into a new class called simply "OpenGLGraphicsDriver". Everything should work, but let me know if you find any behavior changes between 4.2 and this new beta.   OGG support has also been added, thanks to MartyJ's help. The following header search paths must be added to C++ projects: ..\..\Source\Libraries\libogg\include ..\..\Source\Libraries\\libvorbis\include ..\..

Josh

Josh

4.2 Beta

An early build of Leadwerks Game Engine 4.2 beta is available on the beta branch on Steam. This release will update the engine with the latest C++ tools and add new graphics and other features. Visual Studio 2017 support Compatible with the latest C++11 / GCC on Linux Refraction: apply "Materials\Effects\glass.mat" onto any object to see this in action. Heat haze: drag the heat haze emitter prefab into the scene to view ("Prefabs\Effects\heathaze.pfb"). Spotlight texture: you can

Josh

Josh

3D Texture Filled with Voxel Lighting

I have successfully transferred lit voxel data into a 3D texture. The texture is now being used to display the lighting at each voxel. Soft edges are appearing due to linear filtering in the texture. To achieve this, I used an OpenGL 4.2 feature which allows you to write values into any arbitrary position in a texture. This could also be used for motion blur or fluid simulations in the future. However, since Mac support for OpenGL only goes up to 4.1, it means we cannot use real-time GI on a Mac

Josh

Josh

3D GUI

Putting all the pieces together, I was able to create a GUI with a sprite layer, attach it to a camera with a texture buffer render target, and render the GUI onto a texture applied to a 3D surface. Then I used the picked UV coords to convert to mouse coordinates and send user events to the GUI. Here is the result: This can be used for GUIs rendered onto surfaces in your game, or for a user interface that can be interacted with in VR. This example will be included in the next beta upd

Josh

Josh

30% goal reached in less than 48 hours

I'm writing this as we're a few dollars away from the mythic 30% target that has been claimed to be a "tipping point" past which Kickstarter campaigns reach critical mass. I'm not going to go into any detail about that because I don't want to jinx it, but so far I am blown away by the response. We put this up Sunday in advance of contacting bloggers, so nobody really knew about it the first day. It's Tuesday morning and we're presently at 29%.   I've heard a number of people point out that

Josh

Josh

3.6 Release Candidate Available

The 3.6 Release Candidate is now available on the beta branch. Since the last update, this adds camera render targets. You can set a texture to a camera's render target in the editor camera properties, and with the new command Camera::SetRenderTarget(Texture* texture). Render targets work both in the editor and in-game.   A terrain offset map has been implemented in the physics system, but it is not yet integrated into the engine.  

Josh

Josh

3.6 Final Touches Update

I rolled Newton Dynamics back to the version we were previously using due to some strange behavior. We're not utilizing any new behavior yet, and I don't want to spend time debugging it right now, so from your perspective it makes no difference.   Also added a check to prevent textures from reloading when they are bound to a buffer.   This update is available now on the beta branch and will be released next week on the default branch. Rich is also working on a couple of decal textures to i

Josh

Josh

3.5 release candidate available

An update is available which is a release candidate for version 3.5. Version 3.5 adds carve and hollow CSG operations, an improved project template system, and customizable filters for scene objects. In this update I reverted the group selection behavior to the same way it works in 3.4, and decided to hold off on adding an extra grouping feature. I expect a lot of new users soon, so stability is my most important goal.   The summer games tournament is coming soon! We had a really great tur

Josh

Josh

3.4 Recap and Beyond

I've got a couple days sales data from the 3.4 launch and it went well. Our conversion ratio and all that boring businessey stuff is good, and I know more now than I did last week. I think our intro video could use some updating and a little more professional polish, so I am looking for a video production company to create something new.   I was planning to make a trip back to Caifornia soon. I was going to skip the GDC, but I then got invited to the Valve party. I guess they're hiring the

Josh

Josh

2D Drawing to Texture

I have been working on 2D rendering off and on since October. Why am I putting so much effort into something that was fairly simple in Leadwerks 4? I have been designing a system in anticipation of some features I want to see in the GUI, namely VR support and in-game 3D user interfaces. These are both accomplished with 2D drawing performed on a texture. Our system of sprite layers, cameras, and sprites was necessary in order to provide enough control to accomplish this. I now have 2D drawin

Josh

Josh

2D Drawing in Leadwerks 5 beta

Previously I described how multiple cameras can be combined in the new renderer to create an unlimited depth buffer. That discussion lead into multi-world rendering and 2D drawing. Surprisingly, there is a lot of overlap in these features, and it makes sense to solve all of it at one time. Old 2D rendering systems are designed around the idea of storing a hierarchy of state changes. The renderer would crawl through the hierarchy and perform commands as it went along, rendering all 2D elemen

Josh

Josh

24 Hours with the Rift DK2

I ordered my Oculus Rift DK2 in the middle of August and it finally arrived two days ago. Here are my quick impressions. Unboxing and Setup The box comes with a convenient carrying handle, so it makes a nice case. Upon opening it, the parts were pretty straightforward with no assembly required. There's an extra pair of lenses to extend the focal length or something like that, but I didn't use them.  Setup was pretty difficult. There's an excessive number of cords. A USB and HDMI cable p

Josh

Josh

2020 Year in Code

2020 was the most intellectually challenging year in my career. Many major advancements were invented, and 2021 will see those items refined, polished, and turned into a usable software product. Here is a partial list of things I created: Streaming hierarchal planet-scale terrain system with user-defined deformation and texture projection. Vulkan post-processing stack and transparency with refraction. Vulkan render-to-texture. Major progress on voxel ray tracing.

Josh

Josh in Articles

2016 Plans

Leadwerks is about making games, first and foremost. Therefore, you can expect me to focus on the following in the next year: More and better AAA first-party content. We're working out the process right now. It's a lot harder to produce top-quality content, but the results are worth it. I figure once we get the process down it will be easier to go back and produce more. Easy to use networking will open up a lot more gameplay possibilities and give us some fun games we can jump in and o

Josh

Josh

2-17-2010

I dabbled in a lot of little things recently, like GUI code and networking, just to make sure things would work the way I want in the long run. The lighting optimizations weren't planned to come out yet, but were moved to the front due to one user who is finishing up a commercial game. I've also been helping Pure3D a little bit, but I can't say anything about that right now. Of course, our website is still in progress, and that will hopefully come together by the end of the month.   We'll h

Josh

Josh

12-22-9

Working to improve the implementation of the code known as framework. It needs to be able to talk to Lua, with all programming languages. I can't really go on documenting the script until this is finalized, so the time to do it is now.

Josh

Josh

12-18-2009

This is a good idea to keep in mind, especially with something like software development:   "Don't judge each day by the harvest you reap but by the seeds that you plant." -Robert Louis Stevenson

Josh

Josh

12-17-2009

Well, the single-state lua update is out and I am ready to start making tutorials again.   Someone in the forum pointed out the game Fuel to me. This is an offroad racing game with a nearly infinite world. The data is streamed off the hard drive, basically like its treating the drive as if it were extended RAM. The game got bad reviews, but I think it's great. I went driving for at least 30 minutes and covered mountains, desert, redwood forests, and ravines. I'm in love with the terrain engin

Josh

Josh

12-14-2009

New update Thursday, if everything goes well. Progress will speed back up after that.

Josh

Josh

(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

"Pumpkins in Space" worklog

I've got my models and a little time to put this together, so I am starting on my Halloween Game Tournament entry now. This will be an exercise in speed-developing!   Basically, I just want to make a game where you fly a ship through an asteroid field shooting meteors. To spice things up, I'm going to add pumpkins that appear after the first level, and are attracted to your ship:   The game asset requirements are very simple. Here are my main models:     So now I'm going to a

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

×
×
  • Create New...