Sign in

Paavo Huhtala

@paavo.me
139 followers 11 following 33 posts

Professional and hobbyist programmer, player of games. Frustration motivates me. See blog.paavo.me for my personal blog.

PostsRepliesMedia
Paavo Huhtala @paavo.me · 30/03/2026
I've been reverse engineering & decompiling Worms: Armageddon (into Rust!) for the past 3 weeks. So far I've replaced about a 120 functions and made a lot of tools, but I'd like to turn this into an OpenTTD/RCT style project soon-ish, with multiplat support as a very long term goal.
1121
Paavo Huhtala @paavo.me · 05/01/2026
One thing I've learned while writing a voxel engine is how huge the difference between "realistic" and "worst case" can be. With the same render distance, a typical hilly landscape uses about 2MB of VRAM, while a 3D checkerboard pattern uses over a gigabyte. Yup, that's three orders of magnitude!
100
Paavo Huhtala @paavo.me · 31/12/2025
And here's the current state, about 1 week after the initial commit. Ambient occlusion had a huge impact on the visuals.
000
Paavo Huhtala @paavo.me · 27/12/2025
Progress about 24 hours later
100
Paavo Huhtala @paavo.me · 26/12/2025
There comes a time in every developer's life where they just have to write a voxel engine. This one is using #rust, wgpu and GPU driven rendering. #graphicsprogramming
A screenshot of a window displaying a colorful voxel landscape with a black sky
110
Paavo Huhtala @paavo.me · 29/06/2025
I've continued working on my little 3D engine based on wgpu and #rustlang. This week I managed to implement fully GPU driven rendering. The engine gives the GPU lists of drawables and meshes, and compute shaders perform AABB culling and generate indexed draw commands. 17K objects in about 0.03ms.
130
Paavo Huhtala @paavo.me · 19/06/2025
WESL advertises wgsl-analyzer as the official language server (or at least as a potential solution), but it doesn't actually support WESL from what I can tell? github.com/wgsl-analyze...
000
Paavo Huhtala @paavo.me · 19/06/2025
wgsl-analyzer provides autocompletion & syntax highlighting for VS Code, but doesn't support the same import syntax as naga_oil (even though it has some Bevy-specific features [which will be removed because of WESL migration?]) So I have to live with non-actionable errors in my IDE.
100
Paavo Huhtala @paavo.me · 19/06/2025
I'm working on a shader playground / 3D engine skeleton in #rustlang with winit, wgpu and naga_oil. About 1.5k LOC, has shader hot reload and very basic GLTF support. The DX is better than in my previous WebGL-based engine but the ecosystem is not yet very mature / stable.
A colorful abstract tunnel rendered in a Windows 11 window
130
Paavo Huhtala @paavo.me · 07/06/2025
Great catch! I had a look at this, and it is indeed powered by quest-specific scripting. When Glarthir's quest-related travel packages finish (= he reaches the victim), the script checks if the player can see Glarthir. If not, the victim NPCs are scripted to die.
140