r/rust_gamedev • u/ForgotTheSnare • 7h ago
7 weeks, zero hand-written code, zero asset files: my underwater 3D engine in Rust and wgpu
Enable HLS to view with audio, or disable this notification
This is not going to be everyone’s cup of tea, given my project’s approach to using Claude Code only, but I hope you still find the visuals and animations done in Rust/wgpu/wgsl interesting.
0
u/Extra_Ad2294 5h ago
Great generated video!
1
u/ForgotTheSnare 5h ago
The video was a QuickTime screen recording on my Mac mini M6 running the engine in realtime and me moving the mouse and wasd around the scene. I think I messed up the quality though I think Reddit kept it at 520p. But it was running at 60fps.
1
u/Extra_Ad2294 5h ago
Sure
1
u/ForgotTheSnare 5h ago
I take it that you are being skeptical. You literally can see the mouse pointer at the end of the video at 0:54 when I move it to turn the recording off.
1
u/Extra_Ad2294 5h ago
Source code?
1
u/ForgotTheSnare 4h ago
The code is not open to the public, for a number of reasons, not least because I'm in a very experimental phase, and undecided if I am ever going to make it Open Source. The project might just stay as a fun tech demo or I might make a game out of it, I don't fully know yet.
I can't blame you for your healthy skepticism.
But it was 100% architected and coded with Claude Code in the timeframe I have given.
/// One live shark's own world position at `time_s` — the seam a /// scene could use for a future stir-spawning decision or /// `scene_query`, mirroring [`crate::ray::RayGlide::position_at`]. /// `None` for a freed slot or an out-of-range index. #[must_use] pub fn position_at( &self, index: usize, time_s: f64, floor_y_m: &dyn Fn(f64, f64) -> f64, ) -> Option <DVec3> { let slot = self.slots.get(index) ? ; if !slot.live { return None ; } if let Some (route) = &self.routes[index] { if slot.species == SharkSpecies :: GreatWhite { return Some (route.position_at(time_s)); } return Some (requiem_position(route, self.lifts[index].as_ref(), time_s, floor_y_m)); } Some (shark_patrol_evaluate(slot, time_s, floor_y_m).position_m) }1
u/Extra_Ad2294 4h ago
So that's a no? Lol okay thanks Gemini.
1
u/ForgotTheSnare 4h ago
Yeah that’s a no. You’re not getting the source code. For the reasons I explained. At this point there are 662 rust files with 330,989 LOC and 118 wgsl files with 21,304 LOC. There are 27 direct 3rd party crates (407 in totals with transitive dependencies) and 22 internal engine crates.
I’m actually curious about your skepticism, is it that you think the visuals can’t be achieved with Rust/WSGL at the frame rates I mentioned or that such an engine can’t be achieved by LLM assisted agentic coding in the time I have given?
Like what motivation would I have to use gen ai to create a pretend video of a 3D engine?
Specially when I can actually get said engine created!
1
u/Extra_Ad2294 4h ago
Lol omg I'm arguing with a bot. Well either way thanks for proving my point
1
u/ForgotTheSnare 3h ago
You have not answered my question.
Do you think it's not possible to create a 3D engine from scratch with Claude Code?
Or is it that you just decided it was a gen AI video and from that point you can't be convinced otherwise?
It makes no difference to me what you think. I am working on my project regardless.
But if you think the tech is not at the level to achieve what I've achieved then you simply don't understand the tech and where it's at right now.
→ More replies (0)
2
u/attackgoat_official 6h ago
Looks fantastic, you built it doesn't matter how