James Yarwood's Avatar

James Yarwood

@jamesyarwood

Software Engineer and #indiedev. Writing a C++ #gameengine in my spare time.

39
Followers
53
Following
37
Posts
07.04.2025
Joined
Posts Following

Latest posts by James Yarwood @jamesyarwood

Video thumbnail

Finally back up and running after separating the engine into .NET/C# while keeping the #Vulkan renderer and @shader-slang.bsky.social compiler in C++.

Added a few performance improvements too, but still a long way to go!

#gameengine #indiedev #gamedev

09.03.2026 14:16 ๐Ÿ‘ 10 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image Post image

I've gone down a rabbit hole with building my own interop generator this month, to allow my engine to be used from #csharp. SWIG and CppSharp exist, but I wanted to attempt my own.

I've made a lot of progress on it already, but still a lot to be done!

#gameengine #interop #dotnet #cpp

29.11.2025 10:35 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Also realised I need to put more work into the scene system so that objects can be individually scaled. Right now, the GLTF-loaded spheres in the screenshots are much more massive than the hard-coded cubes!

12.10.2025 18:44 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Depth buffering helps the GPU figure out which objects are drawn infront or behind other objects. Without it, rendering distant objects may cause them to be drawn over closer ones, depending on the draw order.

12.10.2025 18:44 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image Post image

With most of the pipeline management stuff out of the way, I've started implementing depth buffering support. The difference isn't very obvious in the screenshots!

#Vulkan #gameengine #gamedev #indiedev

12.10.2025 18:44 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

This is looking awesome. Keep it up!

03.10.2025 11:50 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Once this (quite large!) foundational functionality is in place, you can start to do some pretty neat things, like chain render passes together for multi-pass shader effects or mix and match shaders/materials to create some pretty awesome end-results. Not quite there yet though!

25.09.2025 19:06 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

There's a lot variety of different pipeline state objects to keep track of in Vulkan, so being able to keep track of them all is important, as this information can later be used to automate batching and ordering draw calls based on material, pipeline state, vertex layout, descriptor layout, etc.

25.09.2025 19:06 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

Not much visual progress this month. I've been working on the beginnings of a render graph system which is progressing nicely. Now it's able to render more than 1 type of mesh/shader to the same render target.

#Vulkan #GameEngine #indiedev #gamedev

25.09.2025 19:06 ๐Ÿ‘ 14 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The volumetric effects look great. Keep it up!

10.09.2025 21:11 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The next item on the renderer feature list is depth-buffering. Without that, any of the more complicated models will look like they've been turned inside out!

17.08.2025 20:14 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

With memory allocation out of the way, I've been working on a custom #glTF loader. It's now able to load basic mesh data, but there is still lot of work to do on it.

For the video, I'm using planet.gltf from the vulkan samples library.

#vulkan #gamedev #gameengine #indiedev

17.08.2025 20:14 ๐Ÿ‘ 14 ๐Ÿ” 4 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Vulkanised 2018 - Memory Management in Vulkan
Vulkanised 2018 - Memory Management in Vulkan YouTube video by The Khronos Group

If you want to try your hand at a custom vulkan memory allocator, I highly recommend watching the Vulkanized 2018 presentation on memory management. Everything mentioned is still relevant in 2025.

www.youtube.com/watch?v=zSG6...
#vulkan #gamedev

08.08.2025 20:25 ๐Ÿ‘ 10 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image

I've been working on a custom #vulkan memory allocator, for self-teaching. Works better than expected, with block allocation, basic defragmentation, typed memory, virtual map/unmap and more.

But, I recommend using VMA if you want to skip memory management: gpuopen.com/vulkan-memor...

#gamedev

08.08.2025 16:59 ๐Ÿ‘ 10 ๐Ÿ” 4 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image Post image Post image

Many hours have gone into implementing automatic shader binding, but it would have been many more without #RenderDoc. This tool helps immensely in finding issues with your vulkan/DX API calls!

It provides a detailed breakdown of the GPU state for any captured frame.

#gamedev #gameengine #vulkan

13.07.2025 19:35 ๐Ÿ‘ 16 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image

Everything is back up and running in my vulkan renderer after implementing automatic shader mapping/binding using the @shader-slang.bsky.social API.

It's now possible to set shader parameters by name instead of using the raw descriptor set/write API.

#vulkan #gameengine #rendering #gamedev

13.07.2025 19:05 ๐Ÿ‘ 13 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Now I realised you're already on steam, which is great. Wishlisted!

06.07.2025 10:04 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This is awesome. I hope you get it onto steam at some point in the future. I'd definitely buy it. Keep it up!

06.07.2025 10:02 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This is looking very impressive. Awesome work!

01.07.2025 15:21 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Finally completed the initial implementation of @shader-slang.bsky.social in my engine. Now working on descriptor pool/set management and a shader <-> mesh binding system.

Will hopefully have something nice to show soon!
#vulkan #gameengine #gamedev

28.06.2025 14:27 ๐Ÿ‘ 8 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Initially I thought this post was nonsense and thought of all the parts in 3D graphics programming where float isn't used... I quickly realised how right you are.

You can't escape them easily!

28.06.2025 11:54 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This looks like a really cool game. Definitely something I'd play!

24.06.2025 07:28 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Very impressive!

24.06.2025 07:27 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Congrats! Even though it's just a triangle, it's a very motivating milestone!

23.06.2025 17:33 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

This is exactly what MonoGame needed. Great work!

19.06.2025 07:43 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Looks like a solid foundation. Nice work!

14.06.2025 13:12 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

No fancy engine stuff to show this month, but I've implemented @shader-slang.bsky.social and currently working on automated shader layout + binding. I feel like I'm almost there!

#vulkan #gameengine #gamedev

04.06.2025 18:21 ๐Ÿ‘ 8 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Thanks! I'm going to make a 2D game with it first so that I keep it on track.

Later down the line I'll be building a 3D game with it, but the 2D stuff needs to work properly first!

04.06.2025 09:30 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Looks like a solid foundation for a great game. Keep it up!

04.06.2025 09:12 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Seems like an awesome idea!

01.06.2025 15:32 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0