Sign in

James Yarwood

@jamesyarwood.bsky.social
50 followers 65 following 61 posts

Software Engineer and #indiedev. Writing a hybrid C++ and .NET/C# #Vulkan #gameengine in my spare time.

PostsRepliesMedia
James Yarwood @jamesyarwood.bsky.social · 04/10/2026
Inbetween other life events, I've been continuing work on the engine's interop generator. It's come a long way. Now auto-generates wrapper methods, string interop and pointer translation/casting where needed. #gameengine #interop #indiedev #gamedev
0123
James Yarwood @jamesyarwood.bsky.social · 27/06/2026
Today I'm continuing last weekend's work on the C# interop generator. Improving support for C++ multiple inheritance and adding support for generating interop within C# extension classes/blocks. Plenty to go! #interop #gameengine #indiedev #gamedev
092
James Yarwood @jamesyarwood.bsky.social · 21/06/2026
Today I've been expanding the engine's C# interop generator to handle enums, which has allowed me to clean-up around 1000 lines of old LibaryImportAttribute interop. Mostly done with support for #cplusplus enum class and typedef enums. Still more work to do on it! #indiedev #gamedev #gamengine
063
James Yarwood @jamesyarwood.bsky.social · 20/06/2026
The past few weeks have been spent on expanding the render graph system, so nothing shiny to show off yet! I've also been working on semi-automated C++ to C# interop generation using a pure-virtual class and V-Table wrapper approach to avoid P/Invoke #gameengine #gamedev #indiedev #cplusplus
1113
James Yarwood @jamesyarwood.bsky.social · 24/05/2026
Following on from Friday's post - Multi-GPU support for compute tasks now works in the #gameengine. A lot of cleanup to do around cross-GPU asset management for stuff like shaders, textures and models. But, one step at a time! #vulkan #indiedev #gamedev
062
James Yarwood @jamesyarwood.bsky.social · 22/05/2026
A very crude, but very successful first test of #computeshaders in the engine, with the result being read back in C# once the shader completes. A bit of cleaning up to do, then a trial run with offloading parts of the ECS onto the GPU. #gamedev #indiedev #vulkan #gameengine
193
James Yarwood @jamesyarwood.bsky.social · 17/05/2026
This weekend I'm working on compute shader support in my #gameengine. The shader compiler, asset manager and renderer needed a few changes. Also working on improvements to GPU management. Aiming to allow certain compute tasks to be offloaded to secondary GPUs. #gamedev #indiedev #vulkan
1113
James Yarwood @jamesyarwood.bsky.social · 12/05/2026
I've spent some time working on the shutdown/cleanup side of the #gameengine. To name a few: - Improvements to GFX object destructor queues - Properly tracking GPU resources/objects - Cleanup of scenes on shutdown The #Vulkan validation layer is complaining a lot less now! #gamedev #indiedev
052
James Yarwood @jamesyarwood.bsky.social · 04/05/2026
It's bank holiday in UK today and I've used the time to improve data density/packing in the ECS to remove indirection when iterating entity components, along with some GPU data transfer optimisation. 270k entities, 60FPS. #gamedev #indiedev #vulkan #gameengine
194
James Yarwood @jamesyarwood.bsky.social · 03/05/2026
This weekend, major performance improvements to the ECS by moving component storage into archetypes to improve iteration speed. Entity count now doubled to 200k and holding at 60FPS+ Next up will be improvements to frame-staging, as it has now hit its limit. #gameengine #gamedev #vulkan #indiedev
1102
James Yarwood @jamesyarwood.bsky.social · 17/04/2026
Many improvements this week, including: per-frame, linear allocated buffers for pushing entity data to the GPU. Rewrite and optimization of the ECS and a pile of stability fixes. Now able to handle 100k+ active entities at 60 FPS. youtu.be/foEuMwZdNHM #gameengine #gamedev #indiedev #vulkan
youtu.be
Dev Update #3: Vulkan Game Engine - ImGui & ECS Improvements
YouTube video by James Yarwood
051
James Yarwood @jamesyarwood.bsky.social · 03/04/2026
This weekend, a (very) basic RAM and GPU/VRAM memory viewer. Now able to see per-heap GPU memory allocation and overall consumption. Next step is to visualize the sub-allocations for VRAM usage. #vulkan #gamedev #indiedev #gameengine
System memory/RAM allocation viewer.GPU memory/VRAM allocation viewer.
092
James Yarwood @jamesyarwood.bsky.social · 29/03/2026
This morning, improvements to device initialization. Also finished off the primary-secondary device system. Initially, secondary devices will be used to offload certain compute tasks. Also the beginning of a useful render metrics GUI! #vulkan #imgui #gamedev #indiedev #gameengine
053
James Yarwood @jamesyarwood.bsky.social · 28/03/2026
This weekend, optimization and improvements around buffer usage. I've also successfully integrated ImGui a few minutes ago! #ImGui #gameengine #Vulkan #gamedev #indiedev
ImGui demo window
162
James Yarwood @jamesyarwood.bsky.social · 21/03/2026
This weekend, I've been working on stability and render performance. Now at a point where 40000 entities can be drawn/updated. A massive increase from the 1500 in last week's post. www.youtube.com/watch?v=MuMM... #gamedev #gameengine #vulkan #indiedev
youtube.com
Dev Update #2: Vulkan Game Engine - Optimization
YouTube video by James Yarwood
0113
James Yarwood @jamesyarwood.bsky.social · 15/03/2026
This weekend, I've added keyboard and mouse support to my #Vulkan #gameengine. It's nice to finally be able to move! #gamedev #indiedev
1103
James Yarwood @jamesyarwood.bsky.social · 09/03/2026
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
1114
James Yarwood @jamesyarwood.bsky.social · 29/11/2025
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
020
James Yarwood @jamesyarwood.bsky.social · 12/10/2025
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
121
James Yarwood @jamesyarwood.bsky.social · 25/09/2025
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
1142
James Yarwood @jamesyarwood.bsky.social · 17/08/2025
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
1144
James Yarwood @jamesyarwood.bsky.social · 08/08/2025
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
1104
James Yarwood @jamesyarwood.bsky.social · 13/07/2025
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
0164
James Yarwood @jamesyarwood.bsky.social · 13/07/2025
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
0133
James Yarwood @jamesyarwood.bsky.social · 28/06/2025
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
083
James Yarwood @jamesyarwood.bsky.social · 04/06/2025
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
082
James Yarwood @jamesyarwood.bsky.social · 17/04/2025
I've now have basic texture support working my engine, but also spent a lot of time expanding basic/core features, such as proper handling of command pools/buffers across threads and a destructor queue for GPU resources. Small steps, but making progress! #gamedev #indiedev #vulkan
1132
James Yarwood @jamesyarwood.bsky.social · 07/04/2025
My first BlueSky post! - I've been working on a C++ game engine in my spare time, using the Vulkan API. Got instancing working this weekend! #gamedev #indiedev #vulkan
2284