Social VR · Unity · UdonSharp

Unity/UdonSharp VR Bible world

A multiplayer VRChat world with a synchronized, multilingual Bible reader designed to work naturally for people sharing the same space.

Project duration
About eight months
Period
November 2025–July 2026
Role
World development, interaction design and multiplayer testing

In-world interface

Reading together in VR

The world presents book, chapter, translation and navigation controls as a readable panel inside the shared environment.

VRChat Bible reader showing Genesis chapter 1, book and chapter selectors, a language selector and a lock control
The multilingual Bible interface running inside the VRChat world.

Project outline

A shared interface with clear ownership

Over about eight months I developed the Unity world and its UdonSharp interactions, worked through Linux SDK compatibility issues, and tested the result with multiple local clients. The reader loads separately maintained translation data and lets visitors choose a language, book and chapter without leaving the world.

Custom translation format

The Bible text is delivered in a custom compact text format shaped around Udon's runtime constraints. I wrote the in-world parser that downloads the data, separates translations, books, chapters and verses, and builds the nested data used to populate the language, book and chapter controls.

Synchronized state

The selected language, book, chapter, scroll position and lock status are synchronized between players. Before changing shared state, an interacting client takes network ownership and requests serialization; other clients then apply the updated values when they receive them. This keeps the reader on the same passage for everyone in the instance.

Per-user locking

When the controls are unlocked, any visitor can navigate. A player can lock the reader to their individual player ID, after which only that player can change the shared controls or release the lock. Input from other users is rejected and their interface is restored from the synchronized state, preventing competing interactions from leaving clients out of step.

World development and testing

The work covered the broader world as well as the reader: laying out an interface that remains legible in VR, connecting controls to networked behaviour, diagnosing SDK differences on Linux, and verifying synchronization and ownership across multiple clients.

  • Unity
  • UdonSharp
  • VRChat
  • Multiplayer
  • State sync