Inspiration

An obsession with proving that massive social worlds can be rendered at 120fps on the Quest. Inspired by games like Runescape, Wurm Online, Vintage Story and Minecraft.

What it does

Thousand(s) of players sharing the same 16km island that can be terraformed, mined, and farmed together in real-time. Every change to the world is shared! Build together and create farms, towns, villages, and entire kingdoms! Players can see and travel the entire continent to discover what others have created, or stand on a mountain top with their closest friends and soak it all in at 120fps.

How we built it

We have a multiplayer title, DUST, already on the Meta store with 1000 DAU which we've optimized to run at 120fps. That knowledge was vital for building DIRT. Instead of one of the three big game engines, we used Zig and Raylib and old school optimizations like vertex colored meshes and a highly optimized terrain server back end. In the name of performance we coded by hand what is traditionally done via inspectors, scene views, and external asset editors. This kept our file size extremely small and our frame rates extremely high!

Challenges we ran into

Building a performant terrain system that's terraformable but also handles massive view distances. And being one of the first Raylib VR games on Quest 3, and using a low level (and highly turbulent) programming language like Zig, meant we had little game engine guardrails or well trodden paths to follow(or to get in our way)!

Accomplishments that we're proud of

You can stand on a mountain top and look for miles in every direction, see thousands of trees, watch the stars come out at night, all at 120fps. When you dig a hole, chop down a tree, mine a tunnel, or build a house, your change persists for every other player in the world to see. Implementing OpenAL means we have spatial HRTF audio and can do proximity voicechat. Overall, being able to apply our knowledge from building and optimizing DUST over the years feels great!

What we learned

Building a cross platform VR game from scratch with Zig and Raylib is challenging, but worth it. Every draw call counts on a mobile GPU, and as helpful as game engines like Unity and Unreal are, they can hide optimization pitfalls from developers.

What's next for DIRT: Virtual Construct

More VR-native crafting with hand interactions, player built villages and housing, and expanded social features including proximity voice chat and collaborative building tools. We want hand-tracking to be a valid way to play the game so controller batteries dying doesn't take a player out of the headset! DIRT may be the first true social sandbox "MMO" that Meta Quest players have ever experienced, and we see it as the perfect chill accompaniment for our competitive multiplayer game DUST.

Built With

Share this project:

Updates

posted an update

Prototyping Controls:

  • Left Joystick - Move
  • Left Joystick Click - Sprint/Climb
  • Left Trigger - Raises terrain
  • Left Grip - Grab hat
  • Left X - toggle wrist UI
  • Left Y - Scroll between Torch/Bucket

  • Right Joystick - Jump/Turn

  • Right Joystick Click - Toggle Flying

  • Right Trigger - Lower terrain/Mine/Harvest plants

  • Right Grip - Grab hat

  • Right A - toggle pointer UI

  • Right B - Scroll between Shovel/Pickaxe/Axe

Log in or sign up for Devpost to join the conversation.

posted an update

Prototyping Controls:

Left Joystick - Move Left Joystick Click - Sprint/Climb Left Trigger - Raises terrain Left Grip - Grab hat Left X - toggle wrist UI Left Y - Scroll between Torch/Bucket

Right Joystick - Jump/Turn Right Joystick Click - Toggle Flying Right Trigger - Lower terrain/Mine/Harvest plants Right Grip - Grab hat Right A - toggle pointer UI Right B - Scroll between Shovel/Pickaxe/Axe

Log in or sign up for Devpost to join the conversation.