Jump to content
  • entries
    941
  • comments
    5,894
  • views
    871,773

About this blog

Learn about game development technology

Entries in this blog

Vulkan Dynamic Rendering

The VK_KHR_dynamic_rendering extension has made its way into Vulkan 1.2.203 and I have implemented this in Ultra Engine. What does it do? Instead of creating renderpass objects ahead of time, dynamic rendering allows you to just specify the settings you need as your are performing filling in command buffers with rendering instructions. From the Khronos working group: In my experience, post-processing effects is where this hurt the most. The engine has a user-defined stack of post-pro

Josh

Josh in Articles

Finalizing Shaders and Real-time Global Illumination Progress

I'm finalizing the shaders, and I was able to pack a lot of extra data into a single entity 4x4 matrix: Orthogonal 4x4 matrix RGBA color Per-entity texture mapping offset (U/V), scale (U/V), and rotation Bitwise entity flags for various settings Linear and rotational velocity (for motion blur) Skeleton ID All of that info can be fit into just 64 bytes. The shaders now use a lot of snazzy new function like this: void ExtractEntityInfo(in uint

Josh

Josh in Articles

December 7, 2009

It's 12:30 in the morning, but I have the model scripts working the way I want. Thanks to "Nilium" for his tips, and to everyone who gave their feedback. I am confident in this revision. I have a lot of scripts that need to be slightly altered, but it's just a matter of adjusting the function structure, not really changing any existing code.   Here's the light_ambient script: require("scripts/class") require("scripts/linkedlist") local class=CreateClass(...) function class:Spawn(model) lo

Josh

Josh

Week 3

The last two weeks were mostly me wrestling with C++. I had promising results with a meta language that translates to C++ and compiles, and also learned how to create makefiles as a result of that. I tried CodeLite and CodeBlocks, in addition to MS Visual Studio. I finally settled on CodeBlocks.   Codeblocks can be configured pretty easily to use GCC, the MS C++ compiler that Visual Studio uses, as well as about a dozen others (very curious to see if LE3 compiled with the Intel compiler is

Josh

Josh

Next up...

There sure is a lot to do around here!   -Character animation example. I want to get the soldier model up and running with basic animations so everyone can use it. -Network improvements. I want to automate entity movement and some other features. -Scene graph improvements and vegetation collision. -Website and forum integration. -Revamping some of the tutorials.   Watch the character movement in this video. I want to set up something simple like that so we can run around and have fun:

Josh

Josh

January 25, 2010

The networking code is pretty much done, but I don't think it's quite ready to release. We're redesigning the site to integrate the forum and community features together with the whole site, and an official documentation section is being created. In the meantime, I am going to start the model editor. This will be an app to replace the "Model Viewer" which will allow viewing and resaving of .gmf files. It will also include some editing features so you can adjust some of your meshes that might

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

Clustered Forward Rendering

I decided I want the voxel GI system to render direct lighting on the graphics card, so in order to make that happen I need working lights and shadows in the new renderer. Tomorrow I am going to start my implementation of clustered forward rendering to replace the deferred renderer in the next game engine. This works by dividing the camera frustum up into sectors, as shown below. A list of visible lights for each cell is sent to the GPU. If you think about it, this is really another v

Josh

Josh

Bug-fix week begins!

There were numerous small issues related to the 2.32 release, but I am chipping away at them: http://leadwerks.com/werkspace/index.php?app=tracker&showproject=1&catfilter=2   I'm not going to add any new features until every bug is fixed.   Remember that the more complete and easy to reproduce a report is, the faster it will be to fix. Thanks for the feedback!

Josh

Josh

CSG Brushes vs. Point Entities

The built-in level design tools in Leadwerks3D are great for quickly sketching out a game level. Most of this remains unchanged from the design of 3D World Studio, with a few extras like smooth groups and new primitive types:   When a point entity object type is selected in the side panel, the object creation widget changes to a simple cross hair:   The selection box with tabs that CSG brushes use are great for quickly moving, scaling, rotating, and shearing brushes, but they aren't tha

Josh

Josh

Small Victories

Two issues in the art pipeline were giving me some doubt. I stopped working on them a couple weeks ago, and I'm glad I did because the solutions became clear to me.   Shader Files First, there is the matter of shaders. A shader can actually consist of half a dozen files:bumpmapped.opengl3.vert bumpmapped.opengl3.frag bumpmapped.opengl4.vert bumpmapped.opengl4.vert bumpmapped.opengles.vert bumpmapped.opengles.vert   I originally thought the .shd extension would be good for shaders, i

Josh

Josh

Interfacelift

The fantastic Fatcow icon set was recommended to me in the comments in a previous blog post. These are very similar to the Silk icon set, but come in 32x32 and 16x16 versions, have more icons, and better coloration. The Silk icon set is sort of a desaturated pastel tone I don't like, and Fat Cow's icons are more saturated and bright. I had actually considered running the Silk icons through a color-correction algorithm, but Fat Cow has already done the work for me.   I knew from the start I

Josh

Josh

Connecting Actors

To make an entity in Leadwerrks3D behave, you can drag a script from the asset browser to the actors list in the entity properties editor. Each entity can have multiple scripts attached to it. Each script can have different variables exposed, with control for the GUI they are displayed in. For example, you can specify upper and lower limits of a spinner or a list of choices for a drop down box. Each script attached to an entity, along with its set of properties, is called an "actor" because.

Josh

Josh

Back to the Art Pipeline

It's pretty amazing how long the materials, textures, and shader system is taking, but it encompasses a lot of areas: Automatic asset reloading, autogenerated shaders, GLSL syntax highlighting, texture conversion options, and more. All this attention to detail is shaping up to create what I hope will be the best art pipeline, ever.   The Asset Browser displays all files in your project directory. You don't have to use Windows Explorer at all anymore. You can rename, move, copy, cut, paste,

Josh

Josh

A Red-Letter Day

No matter what, tomorrow is a big day for the tech industry. What do you think will happen? http://windows.microsoft.com/en-US/windows-8  

Josh

Josh

Halloween Horrors with Objective-C

It's November 1, and this is the longest summer I can remember in a while. Jokes about the seasons aside, last week I had trouble deciding what to do first, so I decided to attack the remaining tasks I was most scared of. This has been my strategy throughout the entire process, and it results in my work becoming progressively easier as we near the finish line.   I finished one big task today that was holding us back. We need a file system watcher for Mac computers to detect changes to the f

Josh

Josh

Last Minute Improvements

We decided to make one last minute change to the material editor. The texture list is a bit easier to work with now:   Looking pretty nice on Mac, too:   We're also working on our character models for Darkness Awaits, as well as a super secret special surprise...

Josh

Josh

Day One

After a much-needed vacation I'm back, and ready to rock. IGDA Summit Everything at the IGDA Summit was mobile, mobile, mobile. Based on this kind of behavior in the industry, you'll have to forgive me for thinking at one time that mobile was the next big thing. There's two problems: Perhaps half the companies there were support services to help you monetize your app. I haven't heard the word "monetize" so much since the height of the Social boom, when people had huge numbers of free users

Josh

Josh

Texture Import Features

Since I am working with the Blender import pipeline and also getting artists onboard the Steam Workshop, it makes sense to work out any little details in the art pipeline that can be improved. One of these is the texture import process.   Leadwerks 3.0 was designed to function across PC and mobile, and one of the compromises that had to be made was texture compression. There is no universally supported texture compression format on mobile, while the PC has several variations of DXT compressi

Josh

Josh

Bonus update is now available!

Wow, two updates in two days! This one adds new features and bug fixes.   Fixes http://www.leadwerks.com/werkspace/topic/10019-directional-lights-dont-cast-shadows/ http://www.leadwerks.com/werkspace/topic/10030-values-in-appearance-tab-ignored/ http://www.leadwerks.com/werkspace/topic/10020-values-in-entities-general-tab-stuck/ http://www.leadwerks.com/werkspace/topic/8138-pointlight-viewrange-bug http://www.leadwerks.com/werkspace/topic/9919-wobbly-fbx-imports/   New Features Globa

Josh

Josh

Building Character

My goal with Leadwerks 3 has always been to give the people what they need to make playable games. What they really need. Creative projects are interesting because it's easy to get derailed. You can lose interest in an idea, or you might avoid a critical problem you don't know how to solve, and instead spend time doing fun little things that make you feel like you're making progress when you're not. For example, let's say I am making a dungeon crawler. I have some basic gameplay but I can't

Josh

Josh

Low-level vs. high-level

The Leadwerks community tends to be a pretty mature, technically astute one. This is great because it's easy to get good feedback and help, but we do tend to suffer from a tendency to focus on low-level details. This can cause problems with it delays projects, sometimes infinitely. If all we do is keep reinventing the wheel we'll never get to the automobile.   Preparing the FPS weapons pack is giving me a chance to work on some high-level game behavior I don't get to do much. Sometimes we t

Josh

Josh

Bug fix update

A new update is available on the beta branch which fixes two bugs.   Undo not working correctly with copied objects: http://www.leadwerks.com/werkspace/topic/11888-undo-after-ctrl-duplicate-is-messed-up/   Water plane movement and culling problem: http://www.leadwerks.com/werkspace/topic/11895-water-plane-doesnt-cover-all-terrain/

Josh

Josh

Beta Update Available

The creation of our complete tutorial series, written with the help of Aggror, has had a really good effect because it gives us a specification saying "this is how to use Leadwerks". Instead of having different approaches and opinions scattered around, we can all discuss the user experience and be on the same page. This has led to improved user feedback, as we are able to more easily identify any small hangups or inefficiencies in the workflow. I'd especially like to thank the user Malachi fo

Josh

Josh

Reverting the Entity Script Field

Last week I tried implementing a new method of controlling entity script fields. I was not satisfied with the current drag and drop from the scene tree method. I tried a system that was based on the entity name, which is how we used to do things in Quake mods.   Several people pointed out that this had a negative effect on their workflow, due to the difficult of copying and pasting groups of linked objects. So I began implementing a system that would create unique names when needed.   I s

Josh

Josh

×
×
  • Create New...