Jump to content
  • entries
    940
  • comments
    5,894
  • views
    863,938

About this blog

Learn about game development technology

Entries in this blog

Where the Pedal Hits the Metal

UML diagrams, object-oriented frameworks, and beautiful modular architecture are great things to develop, but sometimes you just need to make an application that real people can use. For me, that means you start with the behavior you want, and work backwards to make the code that does it. In the past I've considered fancy object-oriented mouse tool classes, but the style of editing I want is intuitive, easy, and fast, using the fewest number of mouse clicks possible to achieve a task. I think

Josh

Josh

Where Angels Fear to Thread

Leadwerks Engine 2 is single-threaded. The engine performs one task at a time. The engine updates physics, then performs some other tasks, then renders the scene, waiting until each task if finished before moving onto the next one:   I have experience programming threads in BlitzMax, and it works pretty much the same way in C++. Leadwerks3D is taking full advantage of threads and multicore CPUs, splitting off any expensive tasks that can be run on separate threads.   Multithread program

Josh

Josh

What's the Big Idea?

I think of the Leadwerks community as a big loosely affiliated collaborative game studio. I see people working together to add value in different ways. Some are dedicated to a single project, and others bounce around and participate in different projects. I like that everyone can just find what they like doing best and provide value in that way.   Voluntary collaboration, without being too restrictive, allows us to achieve economies of scale, while diversifying risk. Basically that means i

Josh

Josh

What's Next

Here's what's next for Leadwerks Game Engine.   Game Launcher Leadwerks Game Launcher will be released in early preview mode when 50 games are reached. Right now we have 13. Filling the content up is a high priority, and the Summer Game Tournament will bring us closer to that goal.   I am mentioning this first because I want to emphasize that the number of games posted is my measure of how well I'm doing. Every action should be considered in terms of how it helps you guys publish more ga

Josh

Josh

What light through yonder Windows breaks?

This is the final output of Leadwerks 3 on Windows.   When you choose "Windows" in the Publish dialog, a few options appear. Press OK and your game's installer is created.   The installer looks like this. You can replace the installer images with your own if you like:

Josh

Josh

Werkspace Banners are Back

I'm pleased to announce the return of the much-beloved header banners. They now scale across the width of the page, similar to the profile images on Twitter and Google+.   To add a banner image of your own, click the ]submit a banner link in the site footer. I recommend JPEG images with a resolution around 1920x300. However, your image dimensions do not have to be exact, as the image will be scaled and trimmed to fit the space.   You can also add an optional URL to link the banner to. If

Josh

Josh

WerkSpace

Well, this is our new community site. I've wanted something like this for a while, and finally found a way to do it. We've got blogs, a gallery, customizable profiles, and yes, a forum. I was unsuccessful in my attempt to migrate the data from PHPBB, so the old forum will be left intact as an archive. I really like this new system. It's not just a forum, it's a social netwerking site!   If you register an account and aren't able to access all the goodies, please be patient while I enter a

Josh

Josh

Welcome to ultraengine.com

You probably have noticed that our entire community has been migrated from the leadwerks.com domain to our new ultraengine.com domain. In this article I am going to describe recent changes to our website, the process by which these decisions were made, and the expected outcomes. These are not just superficial changes, but rather it is a fundamental restructuring of the way our business works. This is the execution of a plan I have had for several years. When we first starting selling on Ste

Josh

Josh in Articles

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

Week 2

People are starting to use Lua, which is good. Initially there was some confusing, but in each case it turned out to be a small misunderstanding. I spent a few hours editing the wiki to add Lua syntax to the commands. I'm going to start working on Lua demos and more high-level stuff, in addition to fixing any bugs that exist. I'm not too interested in adding new features right now. This engine has plenty of features. Tons. It's time to use them to make something.

Josh

Josh

Week 2

What an interesting first week. I compiled a C++ program for Android, made a programming language, learned about iPhone development, and figured out a lot of C++ stuff I did not know.   It's nice to see that a port to Android will work pretty much like I was hoping. I just write an abstract driver for every system, and have specific drivers that extends that class: class GraphicsDriver {} class GL4GraphicsDriver : public GraphicsDriver {}   Then when you have something like a surface tha

Josh

Josh

Website Updates

I've successfully pulled every website page out of the Invision Power Board CMS that I can: http://www.leadwerks.com http://www.leadwerks.com/graphics http://www.leadwerks.com/editor http://www.leadwerks.com/programming http://www.leadwerks.com/features http://www.leadwerks.com/steamos http://www.leadwerks.com/gamelauncher http://www.leadwerks.com/workshop http://www.leadwerks.com/gallery http://www.leadwerks.com/videos http://www.leadwerks.com/games http://www.leadwerks.com/company

Josh

Josh

Website Updated

Our website has been updated with a new look and responsive design. Here are a few highlights.   Landing page:   Product pages:   Screenshots used in the site from games will display the title and author when you hover the mouse over them.   Responsive layout scaled for phones:   Clearer writing that says exactly what Leadwerks does and who it is for:   Dark gallery and video pages:   Sleek screenshot pages:   I left the Workshop pages as-is for now. The forum softw

Josh

Josh

Website Design

With the upcoming uncertainty that Steam Direct introduces to Steam sellers, I am putting more effort into our website, because it may be the primary channel through which new users discover Leadwerks in the future. Although the functionality of our site is awesome, the visual design is rather outdated and it's time for an actual designer to take over. I've got a rough idea of what I want the site to look like, but beyond that I am happy to let someone else figure it out.     I plan o

Josh

Josh

Website Concepts

Here are some concepts I came up with for the site redesign.         The bold no-bull**** interface of itch.io inspired this design:     I think what will work best is if the designer takes my rough sketches, turns it into a clean design, and implements it with clean code.   I don't think we can change the whole site over at once without me losing control of the creative process and having runaway costs. I want to focus on the pages I have shown here and establish a foundation

Josh

Josh

Website Changes

I want to streamline some of this website. We went through a lot of changes since the release on Steam in 2014 and learned what works and what does not. The "Marketplace" is just called the default "Downloads" name now, and that literally is what it is for. It's a place to keep a permanent copy of your files. Paid files are still supported, and any purchased items are still available to download, but I do not have any aspirations of building this up unless it just happens spontaneously. Ins

Josh

Josh in Articles

Web Development

I have a few preview images to show you my progress with the implementation of my design for the website refresh. Enjoy.         Here's a new version of the view image page. It's pretty bold. The image stretches to its max dimensions, and a dark background is shown beyond that.     Working with a dark background for the video and gallery pages, and it feels pretty natural. Information pages with lots of text use the light theme, while image-heavy artsy sections use a dark the

Josh

Josh

Weapon switching logic

I'm working to add weapon switching to the player script. A weapon in the map consists of two important parts. First, you need a pickup weapon that tells the player they have a certain item. Second, you need the visual weapon that is displayed onscreen, along with the various settings that make that weapon unique.   It's a simple thing to program, but I'm trying to make it as easy as possible for the user to manage, so people can add new weapons and have them work with no tinkering and adju

Josh

Josh

Water Update [beta]

A new update is available. I believe this will fix any problems you may have previously experienced with the water rendering. If this is not the case, please let me know, preferably with a link to download your project.   Although Intel's new drivers work well, I have noticed that enabling, then disabling, then enabling water in the editor causes a crash. The crash occurs in the driver DLL and is not an OpenGL error. This will be reported to Intel. (It just occurs when a shader reads a de

Josh

Josh

Water beta now available

An update is now available on the beta branch which adds water. This can be controlled in the scene properties or in code with the following commands: World::SetWaterMode(bool mode) World::SetWaterHeight(float height) World::SetWaterColor(float r, float g, float b, float a) bool World::GetWaterMode() float World::GetWaterHeight() Vec4 World::GetWaterColor()   You must update your project to get new EXEs and shaders. All model shaders have been modified to handle the slice plane used whe

Josh

Josh

VXRT Progress

This is an update on my progress of our voxel raytracing system. VXRT is designed to provide all the reflection information that PBR materials use. If a picture is worth a thousand words, then this counts as a 5000 word article. Direct lighting: Global illumination: Specular reflection: Skybox component: Final combined image:

Josh

Josh in Articles

Vulkan Voxels

I have resumed work on voxel-based global illumination using voxel cone step tracing in Leadwerks Game Engine 5 beta with our Vulkan renderer. I previously put about three months of work into this with some promising results, but it is a very difficult system and I wanted to focus on Vulkan. Some of features we have gained since then like Pixmaps and DXT decompression make the voxel GI system easier to finish. I previously considered implementing Nvidia's raytracing techniques for Vulkan bu

Josh

Josh

Vulkan Viewport in a GUI Application

Before finalizing Ultra App Kit I want to make sure our 3D engine works correctly with the GUI system. This is going to be the basis of all our 3D tools in the future, so I want to get it right before releasing the GUI toolkit. This can prevent breaking changes from being made in the future after the software is released. Below you can see our new 3D engine being rendered in a viewport created on a GUI application. The GUI is being rendered using Windows GDI+, the same system that draws the

Josh

Josh in Articles

Vulkan Tessellation Made Practical

Now that I have all the Vulkan knowledge I need, and most work is being done with GLSL shader code, development is moving faster. Before starting voxel ray tracing, another hard problem, I decided to work one some *relatively* easier things for a few days. I want tessellation to be an every day feature in the new engine, so I decided to work out a useful implementation of it. While there are a ton of examples out there showing how to split a triangle up into smaller triangles, useful discus

Josh

Josh

Vulkan Shader Uniforms

In Vulkan all shader uniforms are packed into a single structure declared in a GLSL shader like this: layout(push_constant) uniform pushBlock { vec4 color; } pushConstantsBlock; You can add more values, but the shaders all need to use the same structure, and it needs to be declared exactly the same inside the program. Like everything else in Vulkan, shaders are set inside a command buffer. But these shader values are likely to be constantly changing each frame, so how do you hand

Josh

Josh

×
×
  • Create New...