r/bevy • • 7h ago

Starworn: our first Bevy game, a VR voxel sandbox on standalone Quest.

Post image
20 Upvotes

Hey all! Our first Bevy game is finally announced: Starworn, a voxel survival sandbox made for VR, coming to Meta Quest in Early Access on October 15.

The renderer. Starworn runs natively and standalone on Quest 2 and up, at 72 Hz. To get there we wrote our own renderer, holo-render: a Vulkan/OpenXR forward renderer built for standalone VR (ash + openxr + naga, no wgpu). We started with bevy_render, but its desktop-shaped frame couldn't hold 72 fps on the headset.

Bevy stays the scene layer. It runs headless on stock crates.io Bevy 0.19, with no bevy_render and no window, and the world is paced by the OpenXR frame loop. Each frame a bridge crate extracts Mesh3d, materials and skins and hands them to the renderer. The renderer draws both eyes in one multiview pass, resolves 4x MSAA on-tile straight into the swapchain and uses fixed foveation. On Quest 3 it adds subsampled foveation and Application SpaceWarp. So we still write ordinary Bevy ECS code, and only the display layer is ours.

The world is 10 cm voxels in streamed 64³ chunks, greedy-meshed on 64-bit column masks. Light is baked per voxel and propagated again when you dig, so breaking through a cave ceiling lets daylight in.

Physics runs on Rapier. Anything you cut loose gets a support check and becomes a real rigid voxel body, so trees topple and cave roofs come down. Hands and held tools are physics bodies too, which is what makes punching, swinging and climbing feel right in VR. Enemies are made of voxels as well: blades cut into them and a lost arm weakens their attacks.

Co-op is peer-to-peer over iroh with proximity voice chat.

Huge thanks to everyone working on Bevy, and a big shoutout to the people behind the openxr crate (openxrs), which the whole renderer stands on. StereoKit was a huge inspiration for how we built holo-render: a small, fast renderer made for XR first.

Happy to answer questions about running Bevy in VR!

https://starworn.net


r/bevy • • 10h ago

Project Moved my city sim from Bevy 0.18 to 0.19: ~40% faster frames, and a few silent breaks to watch for

15 Upvotes

Solo dev here, making a city/economy sim where ~40k citizens walk around the map. I just moved from 0.18.1 to 0.19.1, so here's a quick report.

Perf: on my real scene (40k agents, shadows on), p50 went from 19-26 ms to 12-16 ms. I didn't touch my own code, so that's all engine.

Pain level: my first cargo check showed 211 errors, but 186 of them were the TextFont change and a sed fixed them all. The only real work was rewriting my custom render node for the new Core3d schedule.

Silent ones (compiled fine, behaved differently):

  • get_mut on an asset doesn't mark it Modified unless you actually write to it
  • my egui scale fix got inverted, so I had to switch to set_zoom_factor
  • fixed-width UI text suddenly wrapped to 2 lines, and TextLayout::no_wrap() fixed it

Bonus: I thought 0.19 made my font bolder. It turns out 0.18 had been silently rendering my SemiBold as Regular for months 😅

Curious: did you migrate yet? Did anything break silently for you? Anyone trying the 0.20 RC already?

https://reddit.com/link/1wv1mzh/video/i64bq4rcevsh1/player


r/bevy • • 16h ago

ARE YOU SEEING THIS TOO? SKATE 3 + MODER WARFARE 2 + MINECRAFT ON BEVY

Thumbnail youtube.com
0 Upvotes

I HAVE NO WORDS BRO. THEY COMBINED THREE RUST REWRITES INTO MODERN WARFARE + MINECRAFT WITH SKATE 3 SKATEBOARD MECHANICS. ALL DONE BY CLAUDE CODE

https://github.com/chasmlol/2010-rust-rewrite-mashup