cshenton
cshenton on Hacker News
My experience is that the ecosystem is a mess, have hit winit, wgpu, and countless bevy bugs, iteration times are abysmal, documentation is nonexistent. In the time it would take me to make a game in popular Rust tooling I could build the game and engine from scratch in C and also have something that would crash less.
You absolutely cannot implement stream compaction “at the speed of native” as WebGPU is missing the wave/subgroup intrinsics and globally coherent memory necessary to do that efficiently as possible.
Really lovely. A lot here reminds me of design in Odin lang. Short integral types, no const, composite returns over out params. Big fan of the approach of designing for a single translation unit and exploiting the optimisations that provides from RVO etc.
Odin is lovely and a great fit for graphics and games programming. I’ve been doing my real time graphics research in it (the CPU parts at least).
Absolutely! On a related note, looking for C development jobs is a real pain for this reason.
I personally find the experience of writing GPU compute code pretty nice on graphics APIs. The interface is pretty much the same “dispatch a 1-3D set of 1-3D work group indices”.
The main pain points vs dedicated compute stuff like cuda is libraries and boilerplate to manage memory and launch kernels.
For 3D, use a game engine. Unity, Unreal, maybe Godot depending on your perf requirements.
When you look at how much nicer the programming experience is for something like Metal it’s hard to blame them.
Think I’d prefer to write 3 backends for Metal level complexity APIs than a single one targeting Vulkan.
If someone wants to get into graphics API programming that’s probably a bit too high level, as lovely as it is.
I know you mean major desktop platforms, but in terms of market share for real time 3D applications, mobile and console dwarf Mac and Linux.
Not faster to integrate it into a build system or compile it though.
I suspect (1) is just because Dear ImGui is BYO graphics backend, so it doing lots of clever texture management stuff for lots of images would increase the surface area of that integration which would make it harder to use for most folks.
Dear ImGui certainly seems more popular wherever skinning isn’t a priority (though I’ve seen games use it even for user facing UI). It’s become a bit of a Wilhelm scream, love spotting it in the wild.
Odin is probably the most productive I’ve been in a language. I went from reading the docs to having a working interactive PBD particle sim in VR via OpenXR in around 48 hours wall clock time.
I am currently writing a rigid body engine in it. It is perfect for graphics/games programming.
This is completely wrong, the digital art industry is enormous and, mind you, pretty uniformly pissed off that this model has been trained off of their non public-domain work.
Another interesting factor. PhD stipends are getting gobbled up by inflation. I wonder how many people will forgo starting a research career because they want to be able to pay rent.
What are your egress charges?
Why not all of the above?
Also worth pointing out that Bayesian methods are the only good option when performing data assimilation into large scale simulators (like epidemic models) which are typically statistically under identified by available data. So this stuff is very relevant!
Bayesian statistics gets tonnes of practical use. Software packages like STAN-MC get lots of use in traditional stats/econometric circles, while probabilistic programming languages like Turing, Edward, and PyMC get plenty of use elsewhere. Developing algorithms to sample from or solve for the posterior distribution given an arbitrary prior and likelihood is an active area of research. If you want stuff to google, relevant families of algorithms are Variational Inference, Approximate Bayesian Computation, Markov Chain Monte Carlo, and Particle Filters / SMC. However there’s a few newer families of algorithms that have popped up in recent years.
As someone about to pause an industry career for a PhD, I still think this is good advice!
That last one is a good point. The size of the “sweet spot” in an HMD isn’t discussed enough.
Quest 2 can overclock to 120Hz can’t it?
Oculus is leading the pack in wireless by offering Airplay out of the box. I’d wager that’s part of their vision too.
Also the UE5 demo running on a PS5 doesn’t mean that it could push pixels on two screens at the frame rate needed for VR.
Even as an enthusiast (5 headsets and counting) I have to agree. There have been several month periods where I didn’t use VR due to driver instability.
That being said, body tracking is what made the platform click for me. Hanging out with friends from all over the world in an immersive space feels like the future.
Dreams doesn’t quite use an octree SDF for its geometry representation.
It uses a tree of CSG edits (basically the raw stroke inputs) which is then stochastically sampled (as an SDF) to produce points on the surface that are splatted. Alex Evans’ talk on this is fantastic btw and I thoroughly recommend it.
Why isn’t imperative event loop programming more widely used? It’s a reasonably common pattern for games networking libraries like Enet, and has the added bonus that you get to design exactly how you lay out the memory of all your in flight work and therefore have it be easily debuggable.
Would love to work at a University as a Research Engineer. Would not love to do it for less than I made as an undergrad out of college. Universities can avoid not paying market, but they pay more like 40-50% of market.
This is doable on a single core in JavaScript.
It is not impressive. This workload is entirely bandwidth constrained and is more a test that your renderer isn’t doing anything stupid.