Jump to content

Blogs

Vulkan Shader Compilation

One of the best points of Vulkan is how shaders are loaded from precompiled Spir-V files. This means GLSL shaders either work or they don't. Unlike OpenGL, there is no different outcome on Intel, AMD, or nVidia hardware. SPIR-V files can be compiled using a couple of different utilities. I favor LunarG's compiler because it supports #include directives. Shader.vert: #version 450 #extension GL_ARB_separate_shader_objects : enable #include "VertexLayout.glsl" layout(push_constant) unifo

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

Compatibility Wrapper

While we have Leadwerks today to make our apps, Turbo is currently in development. To make my projects more long term, I decided to take a step back from my VR project and create a wrapper class that apps can use to more easily transfer to the new engine.  Keep in-mind, this doesn't cover everything and I'm used the last beta from November for testing so things can change. Regardless, as long as that bridge is made, I can always go back and edit the Turbo stuff as more things come online. The go

reepblue

reepblue

Vulkan Nitty-Gritty

I am surprised at how quickly Vulkan development is coming together. The API is ridiculously verbose, but at the same time it eliminates a lot of hidden states and implicit behavior that made OpenGL difficult to work with. I have vertex buffers working now. Vertices in the new engine will always use this layout:     struct VkVertex     {         float position[3];         float normal[3];         float texcoords0[2];         float texcoords1[2];         float tangent[3];         unsigned cha

Josh

Josh

Resizable Vulkan Window

When a window in Vulkan resizes you have to manually delete the about a dozen objects and then recreate them with the new size. It's unbelievably complicated. They've pushed all the driver complexity onto the application, in an effort to simplify the job of writing drivers. I can see the advantage to this, because OpenGL drivers in the past were always inconsistent, but it is still shocking how many little details they expose in Vulkan. Just resizing a window and swapping the screen buffer invol

Josh

Josh

Hello Vulkan

Two days and 823 lines of code later, I present to you the Vulkan triangle of awesomeness, running in our engine: Here are my thoughts on Vulkan: It's ridiculously verbose. You have to specify every little detail of the rasterizer, there's a million classes to create, and every little variable has to be exactly right. There's really no reason for this because 90% of the code is just something you copy and paste. Shaders can use GLSL, which seems very weird, but it makes thin

Josh

Josh

Getting Started with Vulkan

The latest design of my OpenGL renderer using bindless textures has some problems, and although these can be resolved, I think I have hit the limit on how useful an initial OpenGL implementation will be for the new engine. I decided it was time to dive into the Vulkan API. This is sort of scary, because I feel like it sets me back quite a lot, but at the same time the work I do with this will carry forward much better. A Vulkan-based renderer can run on Windows, Linux, Mac, iOS, Android, PS4, an

Josh

Josh

Leadwerks Game Engine 4.6 Updated

A new update for Leadwerks Game Engine 4.6 is available on the default branch. This fixes a physics bug that would cause boxes to float into the air after the player stepped on them.

Admin

Admin

Turbo Game Engine Design Document

Subscribers can now download my current revision of the Turbo Game Engine design document in the private forum here: Here are a few excerpts: The document is still evolving so expect changes and updates.

Josh

Josh

Luawerks Updated

Luawerks has been updated to 1.2.8, making some small adjustments and fixes to the system. If you have previously purchased Luawerks, this update is available for free on the Leadwerks Marketplace. Following changes include: Fixed GUI code for Leadwerks Game Engine 4.6 Removed the feature "allowfullscreenfromeditor" as it was causing conflicts with fullscreen. Added ignoreeditorwinsettings bool setting to force the game to ignore editor launch settings. (Sorry f

reepblue

reepblue

Dev Log

My last NASA project is complete. There's a physics bug in Leadwerks 4.6 that will get resolved this weekend. Starting Monday I am going to focus on the new engine again and move us forward so we can release in 2020. I am really looking forward to getting back in the game.

Josh

Josh

Procedural Grass

Thought I'd show off what I've been working on this weekend.  I have implemented procedural grass as found here at Outerra.  There is still more work to be done on it but so far it looks promising.

SpiderPig

SpiderPig

New game engine examples

The new game engine needs to roll out with some top-notch examples showing off what it can do. Here's what I want: First-person shooter Offroad racing game Space shoot-em-up side-scroller. Side-scoller platformer similar to the Contra Playstation game. Now what I can use your help with is finding good example games on YouTube or Steam that I can start designing these samples around. Post your ideas below!

Josh

Josh

Leadwerks Game Engine 4.6 Released

Leadwerks Game Engine 4.6 is now available on Steam! This free update adds Steam peer-to-peer networking, lobbies, voice chat, and more. A new multiplayer game template makes it easy to get started with your own multiplayer games, adding new depth and interactivity to the fun. We've also added over 100 bug fixes, making this the most stable release ever to build your game on! New classes: Lobby P2P Voice Other changes: New parameters for bet

Admin

Admin

Smart Pointers Lesson

This is something I typed up for some colleagues and I thought it might be useful info for C++ programmers. To create an object: shared_ptr<TypeID> type = make_shared<TypeID>(constructor args…) This is pretty verbose, so I always do this: auto type = make_shared<TypeID>(constructor args…) When all references to the shared pointer are gone, the object is instantly deleted. There’s no garbage collection pauses, and deletion is always instant: auto thing = m

Josh

Josh

Leadwerks Game Engine 4.6 Release Candidate

An update is available on the beta branch on Steam with a few bug fixes. I'm going to release 4.6 with the current features because a lot of bugs have been fixed since 4.5 and we're overdue for an official release. 4.7 will add a new vehicle system, character crouching physics, and some other things, and will be out later this year.

Josh

Josh

GDC 2019

I have not gone in several years because everything we were doing revolved around Steam, and it just didn't seem very important. But this year I had some business to attend to so I spent the last three days in San Francisco. I still have a lot of friends in the game industry, and the reaction to my plans for the new engine was very positive. A few years ago people would have groaned at the idea of another engine, but it seems they are now bored with technology and very open to something new

Josh

Josh

Workshop car 4.6 - New update: Customizable

Workshop car "Turbo car for Le 4.6 free" - Uploaded in the Workshop Better optimization for the workshop car released. And possibility to custom the car, feel the difference of the configuration when driving. For Le 4.6. with world:update(4) added to the main script  Here is a demo video about the new optimization:   Here are the properties that allow to change the car:   - The Drive Factor makes the car drive feeling more or less heavy: With a

Marcousik

Marcousik

Leadwerks Game Engine 4.6 Beta Update

A new update is available on the beta branch on Steam. This adds numerous bug fixes. The Linux build of the editor is compiled with Ubuntu 16.04 and the engine libraries and executables are compiled with Ubuntu 18.04. Linux users, please let me know how this works for you.

Josh

Josh

DEMO!

We made it! Between The Realities coming back in new, revised demo-version! You can download it here, right now: https://www.youtube.com/watch?v=ZXW8qx-aAeY Watch our fantastic trailer! https://www.indiedb.com/games/between-the-realities

adams-antology

adams-antology

Project Release

I decided to release the source/project for my GUIEditor. its an unfinished project and not at all optimized, although it is usable. you mite have to upgrade the source project to the latest version. written in c++. the project includes some custom gui scripts found in /Scripts/GUI/Custom. and a FileDialog i designed using widgets. GUIEditor.rar enjoy

GorzenDev

GorzenDev

×
×
  • Create New...