Remix.run Logo
I learned Vulkan and wrote a small game engine with it(edw.is)
19 points by jakogut 2 hours ago | 5 comments
tombert an hour ago | parent | next [-]

My opinions of Vulkan have not changed significantly since this was posted a year ago https://news.ycombinator.com/item?id=40601605

I'm sure Vulkan is fun and wonderful for people who really want low level control of the graphic stack, but I found it completely miserable to use. I still haven't really found a graphics API that works at the level I want that I enjoyed using; I would like to get more into graphics programming since I do think it would be fun to build a game engine, but I will admit that even getting started with the low level Vulkan stuff is still scary to me.

I think what I want is something like how SDL does 2D graphics, but for 3D. My understanding is that for 3D in SDL you just drop into OpenGL or something, which isn't quite what I want.

Maybe WebGPU would be something I could have fun working on.

simonask 23 minutes ago | parent | next [-]

`wgpu` in Rust is an excellent middle ground, matching the abstraction level of WebGPU. More capable than OpenGL, but you don’t have to deal with things like resource barriers and layout transitions.

The reason you don’t is that it does an amount of bookkeeping for you at runtime, only supports using a single, general queue per device, and several other limitations that only matter when you want to max out the capabilities of the hardware.

Vulkan is miserable, but several things are improved by using a few extensions supported by almost all relevant vendors. The misery mostly pays off, but there are a couple of cases where the API asks you for a lot of detail which all major drivers then happily go ahead ignore completely.

user____name an hour ago | parent | prev [-]

If you don't need 4K PBR rendering, a software renderer is a lot of fun to write.

gnabgib 2 hours ago | parent | prev | next [-]

(2024) At the time (625 points, 260 comments) https://news.ycombinator.com/item?id=40595741

jakogut 2 hours ago | parent | prev [-]

Note that I have retained the original title of the post, but I am not the author.