Handmade Network»HRose

Recent Activity

Just finish my flexable UI Renderer using nothing but compute shaders. Optimized it down to 0.7ms for a full screen of buttons. Was hoping to do better but it shall do for now!
Essentially each command has an array of words that ran through a SDF VM on the GPU per pixel. Chunk & tile binning, groups draw commands into smaller arrays for faster per pixel processing
image 1: 1280x960 filled with buttons
image 2: 13 different draw commands, each made up of different shape ops
image 3: shader perf results for full screen of buttons
image 4: snippet of the draw command API
image 5: chunk bin visualisation
image 6: tile bin visualisation

After 1 year & 3 months of work, HCC the C -> SPIR-V compiler for Vulkan has its first release!!! 🥳

- vertex, pixel, compute shaders
- fully bindless resources
- multiple shaders in a single file
- vulkan 1.3 +
- windows & linux support
- aims for C11 support
- textures, atomics, quad & wave intrinsics
- scalars, vectors, matrices maths library
- samples app with 5 shader samples
- playground app (shadertoy clone)


My C compiler can now compile C to SPIR-V, HLSL and MSL in a single command

Texture loading & sampling support landed in HCC, the C -> SPIR-V compiler. GIF showing 9 different modes. Since last time we also have bindless buffer support! next up compute shaders!

Got HCC to compile a couple of ray marching shaders in C to SPIR-V and running on Vulkan. Next up buffer support!

C -> SPIR-V compiler, vertex & fragment shaders, userland vector types and intrinsic vector functions that map to SPIR-V instructions. next up, buffers and textures!

designed a little alternative 2.5D color picker over the weekend. it was a lot of fun https://www.shadertoy.com/view/fl2BWz

successful stream today, the fragment shader now compiles to SPIR-V and works! the next job is to get if statements working so we can hardcode a vertex shader

height map is now voxel terrain and got a smooth movement with a billboarded sprite. next up loading more terrain chunks!

Started a game jam, playing around with simplex noise for generating terrain

true sdf glyphs working with sdf shapes!

Does your renderer have mickey mouse clipping support? 😎

In yesterday's stream we got SDF circle, aabb, cross, rhombus shapes working in vulkan shaders and being smoothly unioned. also the border is an effect that is applied top of union of these shapes.

made this accidentally when trying to get radial gradients in my software renderer 😎

got a new devlog out showing the basic gameplay of the game (grapple hooking, wall running) and how to do 3D hoop collision with spheres and capsules: https://youtu.be/oIQS13djz1s

really need to implement a gif exporter in game to share here more. got new game dev log out: https://youtu.be/2k89WMiY-3w

New FIKO Dev Log out featuring the embedded level editor for a fighting game: https://youtu.be/VlF0dEPj-bE

Got a video on the approach that was used for the Rendering API in my game: https://youtu.be/XmwqY4Eg8b0

Starting a new dev log series for a game. A 2D Ascii platform fighter https://youtu.be/-HSrYHsGo_Y

got animations in the UI library now. it can interpolate between different style control states (default, focused, active, disabled) but also have custom pre & post render functions for each style (thats how we get the material-design-like circle grow)

Just open sourced a minimal command line arguments parser in C: https://github.com/heroseh/cmd_arger

  • Simple API
  • Auto generates help message from argument descriptions
  • Supports boolean, integer, float, enum and string arguments
  • C99 compatible
  • No dependencies (other than libc)
  • Only been tested on Linux and Windows using clang right now

Its been too long. Im so excited to get another Game Engine Dev Log out 🙂 This time on Embedded Dev Tools: Level, Entity, Tiled Map editors with a custom scripting language 🙌 I hope you enjoy! https://youtu.be/Rr26xFOpEfw

Forum reply: Xlib event loop
Forum reply: Table-driven C++?

Been working on a basic scripting language for gameplay. Its intergrates into engines allows you to reason about types used in the game. Here is an example of selecting a constant for a custom type. Selecting an Entity and a MapCoord. The editor is nearly complete, then work will go into saving, loading and executing scripts.

Been working on a game engine (bunch of libraries) from scratch. Got to a point where I can start prototyping the game with them. Here's a video going over some of the technical details. I hope you enjoy 🙂 https://youtu.be/EH2Zu940wm0

New forum thread: Game Dev Live Streams
Forum reply: Handmade London Meetup
New forum thread: Data oriented tutorials