An open source web3 metaverse game engine that anyone can host. Easy to use, runs in the browser and utilizes open tools and standards like three.js and Node.
Everything you need to get started with building in the Webaverse is contained in this repository.
- 🎮 A full-featured game engine running in your browser
- ♾️ Infinite procedurally generated world
- 🧑🤝🧑 Multiplayer with voice and chat
- 🤖 AI-powered non-player characters
- 👓 Supports desktop and VR (mobile coming soon)
- 😊 Expressive, vocal and emotive avatars
- 🔮 Runtime support for user uploads and custom apps
- 🖥️ Completely self-hostable
Developer documentation is here
User documentation is here
Important note before you clone this repo: This repo uses Git submodules.
You need to install with the --recurse-submodules
flag or installation will not work. Copy the code below to clone the repository if you aren't sure.
git clone --recurse-submodules https://github.com/webaverse/app.git
cd app/ # Go into the repository
git pull --recurse-submodules # Pull recursively
npm install # Install dependencies
We recommend that you use Windows Subsystem for Linux to run Webaverse. This video shows you how you can set up WSL. Once you've installed it, run wsl
in your terminal to enter Ubuntu, and then run Webaverse from there.
Starting the application is as easy as:
npm run start
Once the server has started up, you can visit https://local.webaverse.com
We would love for you to come build with us. First, please review the documentation in it's entirety before contributing. Also join our Discord and introduce yourself.
Please search Github issues before reporting a new issue or starting a new feature. If you are starting a new feature or bug fix, please write up or reference an issue and indicate that you are working on it.
Please make sure your PRs change as little existing code as is necessary to prevent upstream merge conflicts. When posting a pull request, please document what the PR does and how it can be reviewed and QA'd. PRs will be reviewed and accepted if they conform to our linting and code conventions, don't cause any bugs and don't decrease performance of the app.