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.
Major progress on voxel ray tracing.
The beta testers and I are are discussing game programming in the new engine. I want to see C++, Lua, and C# all take a near-identical approach that steals the best aspects of modern game programming and ditches the worst, to create something new and unique. To that end, we are developing the same simple game several times, with several different methodologies, to determine what really works best. One thing I realized quickly was we really need a way to load prefabs from files.
I started im
Hello everyone, for this first entry, let's talk about how I made fire particles in Twisted Minds.
I wanted to create a fire particle made with a sprite sheet to decreased the number of particles I needed. Episode 3 will have a lot of fire involved. I didn't want to use the example from the manual, which needs too many particles. As a comparison, I decreased the number of particles I needed from 10 to only 5. I know, not a big deal, but it's still optimization, and the fire looks more real,
The Seventh World
Lately I have been hard at work implementing all the basic classes in Leadwerks 5. My aim is to get the game playable by the end of the year. Once I've achieved that I'll slowly hack away at bugs and visual quality before release. These are what are planned for the first release;
Edge of the World
Light is made up of individual particles called photons. A photon is a discrete quantum of electromagnetic energy. Photons are special because they have properties of both a particle and a wave. Photons have mass and can interact with physical matter. The phenomenon of "solar pressure" is caused by photons bombarding a surface and exerting force. (This force actually has to be accounted for in orbital mechanics.) However, light also has a wavelength and frequency, similar to sound or other wave
First of all, let me begin this blog by some explanations about Twisted Minds, this blog, me, etc.
I've been creating some simple little games for a while now. Never publishing them, just showing them off to my friends and family. It has always been a dream of mine to create my video game studio and create video games for a living. Those little game, simple as they were, always makes me continue forward into video game development and computer development i
While I am preparing the different parts of the blog i will show you a small summary about the ocean rendering i am using:
GPU-based FFT waves using Phillipsspectrum
Foam rendering (shore and whitecaps)
Refraction and Reflection (realtime, ssr compatible)
Fast due to Projected grid concept
Reactor wall I worked on today. This texture has lots of small details like pipes, vents and hoses which I used as a basis for expanding the master material set I am using.
Thought I would post this, because it looked very cool with all of the different surfaces applied to it. Every day I am impressed by substance painter and its capabilities.
Quick update on what is happening so far. Lately I have not had as much time to work in substance painter because I have been busy, however in my spare time I have been working on refining the base material which I will use to apply to the numerous textures I have created as part of the scifi collection. Little tweaks here and there mainly to make the results a little more pleasing and less noisy.
Above I have tweaked a majority of the masks for rust as well as surface detail variatio
The foundation of our new game development tools is here, with a close-to-the-metal framework for building desktop applications.
Close-to-the-Metal Framework for Desktop Applications
We're approaching the end of a loooooooooong cycle of research and development...several years, in fact, have been spent building the fastest game engine in the world. A great game engine needs a great user interface, and Ultra App Kit provides exactly what we need. This will provide the backbone of o
Our new editor is being designed to support user-created extensions written in Lua. I want Lua to work in our new editor the way MaxScript works in 3ds Max, to allow an endless assortment of new tools you can create and use.
Now that the editor GUI system is well underway, I want to start thinking about how user-created extensions will work with our new editor. I'm going to lay out some theoretical code for how a road creation tool might integrate into the editor.
First we declare a st
In late 2014, I made the bold decision to focus less with Source Engine mods and pick up an actual engine I could use without legal conflicts or worrying about knowing the right people. At the time, it was like all other options were telling me to forget everything I've picked up through the years of making popular maps and mods and learn something that's completely unique to their software. CSG tools were declared too uncool, and any engine that was nice enough to support it enforced that any a
A new update is available for beta testers. This update focuses on the GUI capabilities, mostly for interfaces created directly on a window, rather than 3D interfaces. We are moving from a Lua-driven GUI system to one coded more explicitly in C++. This will provide us with better documented behavior, easier portability, and a more responsive interface.
GUI widgets no longer use Lua scripts. Each widget type has a C++ class, a creation command, and style constants.
Our forum software and theme have been updated. The new theme is just the default Invision Power Board skin, with our own header and footer added.
In the past I put a lot of effort into getting the forum to look exactly the way I wanted, and I don't think that effort was a very good use of time. Each forum update requires us to redo the skin, and I just don't feel like it is that important. I can fine-tune the appearance of the user interface in the Leadwerks Editor, but this web stuff is o
The terrain streaming / planet rendering stuff was the last of the feature creep. That finishes out the features I have planned for the first release of the new engine. My approach for development has been to go very broad so I could get a handle on how all the features work together, solve the hard problems, and then fill in the details when convenient.
The hard problems are all solved so now it's just a matter of finishing things, Consequently, I don't think my blogs are going to make any
An update is available for Leadwerks 5 beta on Steam that adds a World::SetSkyColor() command. This allows you to set a gradient for PBR reflections when no skybox is in use.
I learned with Leadwerks 4 that default settings are important. The vast majority of screenshots people show off are going to use whatever default rendering settings I program in. We need a good balance between quality and performance for the engine to use as defaults. Therefore, the engine will use SSAO and bloom effe
In games we think of terrain as a flat plane subdivided into patches, but did you know the Earth is actually round? Scientists say that as you travel across the surface of the planet, a gradual slope can be detected, eventually wrapping all the way around to form a spherical shape! At small scales we can afford to ignore the curvature of the Earth but as we start simulating bigger and bigger terrains this must be accounted for. This is a big challenge. How do you turn a flat square shape into a
A new update is available for Leadwerks 5 beta. This adds the ability for to use post-processing effects together with render-to-texture. The SpriteLayer class has been renamed to Canvas and the Camera::AddSpriteLayer method has been renamed to Camera::AddCanvas.
The beta has been moved to Steam and updates will be distributed there from now on. Beta testers were sent keys to install the program on their Steam accounts.
Previously, I showed how to create a terrain data set from a single 32768x32768 heightmap. The files have been uploaded to our Github account here. We will load data directly from the Github repository with our load-from-URL feature because this makes it very easy to share code examples. Also, even if you fly around the terrain for a long time, you are unlikely to ever need to download the complete data set. Think about Google Earth. How long would it take you to view the entire planet at full r
Being able to support huge worlds is great, but how do you fill them up with content? Loading an entire planet into memory all at once isn't possible, so we need a system that allows us to stream terrain data in and out of memory dynamically. I wanted a system that could load data from any source, including local files on the hard drive or online GIS sources. Fortunately, I developed most of this system last spring and I am ready to finish it up now.
Preparing Terrain Data
The first st
Work is pretty much complete on nearly all of the highpoly models of the wall textures... Just a few more to create and bake out in Xnormal and then I will be able to start making the color ID maps. I expect to have the ID maps done sometime by the beginning of the week after next week.
Total number of textures stands at 201, after taking into account some of the walls having minor detail variants.
Below shows a few snapshots of the my most recent work: