Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Blogs

Vulkan 1.2 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

Storing game data (using sqlite3)

Didn't post here in a long time , this will be about storing game data. There are  a lot of options on how to store your game data structures: files (json,xml,yaml , custom etc) databases , nosql dbs memory (if no persistence needed) Also if you use an engine it could provide its own way of storing data. Choosing a good way to do persistence is important. This depends on lots of factors like game type, complexity of data structures etc   Ill

aiaf

aiaf in programming

Direct Lighting with Sparse Voxel Octrees

Previously I described how I was able to save the voxel data into a sparse octree and correctly lookup the right voxel in a shader. This shot shows that each triangle is being rasterized separately, i.e. the triangle bounding box is being correctly trimmed to avoid a lot of overlapping voxels: Calculating direct lighting using the sparse octree was very difficult, and took me several days of debugging. I'm not 100% sure what the problem was, other than it seems GLSL code is not quite

Josh

Josh in Articles

Better Voxelization

My initial implementation of mesh voxelization for ray tracing used this code. It was good for testing, but has some problems: It's slow, using an unnecessary and expensive x * y * z loop No support for per-voxel color based on a texture lookup There are mathematical mistakes that cause inaccuracy, and the math has to be perfect My solution addresses these problems and only uses an x * y loop to generate the voxels. It does this by identifying the major (largest magn

Josh

Josh in Articles

SALVATIONLAND Update (0.1.9) - January 9, 2022

After several days of development from the moment of release, we are ready to submit to you the first update of our game. Please support us, add to wishlist and share with your friends about SALVATIONLAND: https://store.steampowered.com/app/1807590/SALVATIONLAND/ Changelog: Added a hint for picking up a hammer (basement of an abandoned school), The mechanics of blocking due fights have been revised: now enemy hits are blocking more effectively, Fixed a critical bug with opening inv

ERKGames

ERKGames in News

Sparse Voxel Octrees

Previously I noted that since Voxel global illumination involves calculation of direct lighting, it would actually be possible to do away with shadow maps altogether, and use voxels for direct and global illumination. This can eliminate the problems of image-based shadows like shadow acne and adjusting the shadow map size. I also believe this method will turn out a lot faster than shadow map rendering, and you know how I like fast performance.  The sparse voxel octree node structure consume

Josh

Josh in Articles

Offroad game: Test of level design.

Hello Debuting 2022 with a very first try of a level design for my offroad game project I try to construct with Leadwerks 4.6     The map needs a lot more improvements. There are a few bugs (like swimming) and some collisions problems, but this how it could look like, with the challenge for the player to find his way through the world - like a puzzle driving game - without getting stucked (like me in this showcase) or have your car destroyed. So I will add an

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

SALVATIONLAND is coming! (early access) 12/28/21

ERK Games presents the first open-world game powered by the Leadwerks Game Engine - "SALVATIONLAND". This is a story shooter with additional non-linear quests, stealth-action and survival elements, developed by members of former "Between the Realities" team. Our game will be released in Steam's Early Access on December 28, 2021. Please add to wishlist!  https://store.steampowered.com/app/1807590/SALVATIONLAND/

ERKGames

ERKGames in News

Leadwerks + FMOD Studio

Cyclone was shaping up visually, but I was getting feedback about the sound implementation not being so good. I previously created a script system that defined all my sounds under profiles. This was a step in the right direction and made it easier to tweak sounds without recompiling code. However, no matter how much I played with variables, I never was able to satisfy the complaints.  After I showcased my first gameplay trailer, I decided to finally sit down and really understand FMOD. I wa

reepblue

reepblue in Code

Editor Scripting API

The Ultra Engine editor is designed to be expandable and modifiable.  Lua script is integrated into the editor and can be used to write editor extensions and even modify the scene or the editor itself in real-time.  We can create a scene object entirely in code and make it appear in the scene browser tree: box = CreateBox(editor.world) box.name = "box01" o = CreateSceneObject(box) --make editor recognize the entity and add it to the scene browser o:SetSelected(true) We can even

Josh

Josh in Articles

Some extras

Hello, fellow noobs. Hope you're doing well. I have a few extra shaders I had wanted to get out to you earlier but couldn't because they weren't complete or they were a bit off-track. I have some more extras I want to add but here's a few for now. I had wanted to do a multiple lights + alpha shader but it turned out to be a little trickier than I anticipated. I finally got it, though. Haven't tried this out in various situations but I doubt there will be any problem using this for what

havenphillip

havenphillip in Shaders

KTX2 Texture Support

A while back I wrote enthusiastically about Basis Universal super compression. KTX2 is a texture file format from Khronos, makers of the Vulkan and glTF specifications. Like DDS files, KTX2 can store multiple mipmaps, as well as memory-compressed texture formats like DXT5 and BC7. However, KTX2 now supports Basis compressed data as well, which makes it the all-in-one universal texture format. glTF has an official extension for KTX2 textures in glTF files, so it can be combined with Draco mesh co

Josh

Josh in Articles

Analysis of Google Draco

Google Draco is a library that aims to do for mesh data what MP3 and OGG did for music. It does not reduce memory usage once a mesh is loaded, but it could reduce file sizes and improve download times. Although mesh data does not tend to use much disk space, I am always interested in optimization. Furthermore, some of the NASA models I work with are very high-poly, and do take up significant disk space. Google offers a very compelling chart showing a compression ratio of about 95%: Ho

Josh

Josh in Articles

glTF Export

The glTF importer took a very long time to develop, but it much easier to write a glTF save routine. In one day I got an exporter working with support for everything except skinning and animation. To save a model in glTF format, just call Model::Save("mymodel.gltf") and it will work! Entire scenes can also be saved in glTF format.Here is a model that was loaded from Leadwerks MDL, MAT, and TEX files and saved as glTF. The textures are converted to PNG files. (Microsoft has an official extension

Josh

Josh in Articles

Ground fog with parallax

Since I started doing shaders I've begun to stare a lot at things. I stare at the ground. I stare at walls. I stare at rocks...and when autumn hit I started staring at fog...puddles....mud... This week I've been working on puddles and fog in keeping with that spooky October/November vibe. I worked out a pretty good mud puddle shader which I'll post next but I figured this one is done and I've tweaked the **** out of it so I need to stop at some point and know when it's done. This shader is made

havenphillip

havenphillip in Shaders

Built-in Shaders

In Leadwerks, required files were always a slightly awkward issue. The engine requires a BFN texture and a folder of shaders, in order to display anything. One of my goals is to make the Ultra Engine editor flexible enough to work with any game. It should be able to load the folder of an existing game, even if it doesn't use Ultra Engine, and display all the models and scenes with some accuracy. Of course the Quake game directory isn't going to include a bunch of Ultra Engine shaders, so what to

Josh

Josh in Articles

Ultra Engine Benchmarks Revealed - 10x Faster than Unity, Leadwerks

A few years ago, some folks at NASA asked for my help with some VR projects they were working on. They had switched to Leadwerks and were getting better performance with that, but it still wasn't fast enough for what they were trying to do. I flew from California out to Goddard Space Flight Center to meet with them. When I saw what NASA was doing with my software, my jaw hit the floor. Goddard Space Flight Center Rendering performance in VR is critical because if the framerate dr

Admin

Admin in Articles

Project Launch Settings and Mod Support

The new editor is being designed to be flexible enough to work with any game, so it can be used for modding as well as game development with our new 3D engine. Each project has configurable settings that can be used to handle what the editor actually does when you run the game. In the case of a game like Quake, this will involve running a few executables to first compile the map you are working on into a BSP structure, then perform lightmaps and pre-calculate visibility. You can also

Josh

Josh in Articles

Package Plugins

Many games store 3D models, textures, and other game files in some type of compressed package format. These can be anything from a simple ZIP file to a custom multi-file archive system. This has the benefit of making the install size of the game smaller, and can prevent users from accessing the raw files. Often times undocumented proprietary file formats are used to optimize loading time, although with DDS and glTF this is not such a problem anymore. Leadwerks uses built-in support for encr

Josh

Josh in Articles

Plugins and File Formats

At last I have been able to work the plugin system into the new editor and realize my dreams. The editor automatically detects supported file formats and generates thumbnails for them. (Thumbnails are currently compatible with the Leadwerks system, so Leadwerks can read these thumbnail files and vice-versa.) If no support for a file format is found, the program just defaults to the whatever icon or thumbnail Windows shows. The options dialog includes a tab where you can examine each pl

Josh

Josh in Articles

×
×
  • Create New...