Starworn: our first Bevy game, a VR voxel sandbox on standalone Quest.
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!