manuisin
Joined 8 years ago
Joined 8 years ago
I find other devs/colleagues who don’t have ideas of what to work on a bit hard to understand . Just can’t comprehend how someone won’t have any desire to do nothing else with this tech other than finishing off jira tickets.
And a few of them have expressed to me that whatever I think I enjoy today is only cause I have found “purpose” and soon both what I’m building will be easy for anyone to replicate and thus become worthless, and I won’t be happy then. I have doubts about both.
Yeah so I have no sophisticated tools, just guessed calculations done mostly at run time (add up how much do gpu compressed textures should take for a model, mesh+blendshape memory estimates, other data structures). And obv for audio and animations just ensuring what’s not needed is never in memory and just knowing how much the biggest ones cost. To come up with an estimate of an upper bound and obv with lots of testing. ios safari doesn’t even publicly expose how much memory usage is allowed to a tab (and it changes) so really the final test is that stuff stops crashing. But my testing put the crash window between 500mb-1gb on an iphone pro. over 1gb usually guarantees a crash. Not really enough to make a proper game by today’s standards but hey they shipped gta san andreas at 32mb ram on ps2 so I’m sure I can push things further.
To answer your webxr webgpu question, no, it still doesn’t mostly work. If you’re interested in reading up on it:
https://github.com/immersive-web/WebXR-WebGPU-Binding/blob/m...
Post by a Chrome dev: https://toji.dev/2025/03/03/experimenting-with-webgpu-in-web...
Webxr webgpu attempts iirc some advanced reprojection for increasing FPS that takes into account the depth buffer. And vision pro at least today has some nausea inducing bugs around that for at least the official immersive web examples hosted on github.io. so its better if a depth texture isn’t supplied today. the fallback reprojection works better more smoothly.
For the story stuff, I have similar things setup in my project to essentially reload the game at a certain point in the story but still I personally find HMR to be much faster wherever possible.
Just to preface, I’m the developer of an nsfw bdsm game that’s getting some traction. That might not be something you’d be interested in supporting. But it is built using three.js webgl, its is VR-first but optimized enough for even iphones (memory wise to avoid crashing) with very high quality 3d models and physics. It’s also got a story/narrative/dialogue system with multiple worlds/stages. And everything is done in such a way to not spike memory usage even as different stages and parts of the story with hundreds of audio files, animations load over the web with pre-emptive caching.
It’s very hard to ensure memory usage stays low and make the right trade offs for browsers like Safari that don’t give you too much insight into it. Not to mention the limits of webgl for reducing gpu and cpu time which I’m currently also constrained by in terms of scale.
I’ve been considering migrating to babylon lite as webgpu webxr is nearly ready and already out for devices like vision pro, and it’s the only framework that in my testing actually reliably compares to threejs webgl renderer (threejs webgpu and og babylon are way behind).
But all in all having complete control over the memory seems amazing.
And regarding HMR, yeah it does require careful setup with r3f/react and obv has edge cases. But as my game’s story has increased to be hours long, it is quite handy to able to not wait for majority of changes as reloads which themselves can take a few seconds etc.
If you’re interested in chatting more, I can share the project with you if give me an email or another private avenue.
Had few other questions:
- Is the dev environment still web first or is that a secondary target?
- One of the best things about three.hs is the extremely fast feedback look with HMR where if setup properly you can code see changes reflected in your running app without a refresh or losing state within a second. Is something like that feasible here?
- How complete is the PBR support? - Lightprobes or lightprobe grid supported? I know that’s just mostly material/shader related code so shouldn’t be impossible to add based on a project’s requirements.
- I didn’t see support for skeleton meshes in the examples either, is that possible?
- Also, how feasible is WebXR support?
but the saas unicorns, or 100 person, 10 person saas company are def. under threat.
There are depths of understanding that can only be gained by executing and mutating the code and understanding its behavior deeply. Not that it even matters in the end. But feeling like we understand something and actually understanding it fully are 2 different things that we should just remain aware of.
I recently discovered though that ChatGPT 5.5 Pro is almost as smart but only available to me via the ChatGPT app. I’ve been having it read my code and having Opus 4.8 use the ChatGPT app to collaborate. It’s a step down but its a temporary stopgap for complex problems.
Not working on the “next big” thing but I only recently started finding that AI could solve complex problems for me starting around ChatGPT 5.5. Working on a game engine. Some of the quite isolated modules I’ve had it build are not good code by my own standards. The code has way too many indirections to say the least. But they work without bugs and perform well too (i have a very good CPU and memory management harness for my frame loop). My velocity on the project has doubled at least cause now stuff that I wanted to do down the line is already done. I’m definitely a bit careful with setting up isolated guardlines about which files I let a certain feature touch but with models like Fable even found that unnecessary.
Working code that performs exactly how I want on an outer level is valuable. It can be refactored and rearchitected or reimplemented better by just the virtue of having something to compare against and having the edge cases accounted for.
And at least right now the thought that somebody will be able to make in a day what’s still gonna take me months or years doesn’t make me unhappy. I just still have doubts if that’ll happen and even more doubtful that this future predicted lack of my purpose will make me unhappy.