webaverse-studios / webaverse

An open metaverse engine for everyone

Home Page:https://moemate.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chat on Discord follow on Twitter

Webaverse

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.

Key Features

  • ๐ŸŽฎ 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

Documentation

Developer documentation is here
User documentation is here

Minimum Requirements

Installation

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-studios/webaverse.git && cd webaverse
npm install # Install dependencies

Running

Starting the application is as easy as:

npm run dev

Once the server has started up, you can press the "A" key to visit https://local.webaverse.com.

Installation and Running on Windows

WSL

You may need to use Windows Subsystem for Linux to install and run Webaverse. This video shows you how you can set up WSL and Ubuntu.

Requirements:

  • WSL2. If you have WSL1 installed you need to upgrade to WSL2.
  • Ubuntu 20+. Install Ubuntu 20+.

Once you have WSL and Ubuntu set up, run wsl in a Windows command window to get a WSL Ubuntu command prompt. Run exit at the WSL command prompt to return to the Windows command prompt.

Node

At a WSL command prompt, use nvm to install Node 19.0.0.

Dependencies

Run the following command at the WSL command prompt to install dependencies:

npm run install-libs
The following libraries get installed with this command (you can also install manually):
  • libatk1.0-0
  • libatk-bridge2.0-0
  • libxcomposite-dev
  • libxdamage1
  • libxrandr2
  • libgbm-dev
  • libxkbcommon-x11-0
  • libpangocairo-1.0-0
  • libasound2
  • libwayland-client0

Port Mapping

To route all of the needed ports for 127.0.0.1 -> WSL to work locally, run the following command in a Powershell window:

powershell.exe .\scripts\wsl-port-forwarding.ps1

Installation

You can host the source files on either your Windows file system or on the Ubuntu file system in WSL's virtual drive.

Windows File System: Run the Git commands to clone and pull source files from a Windows command prompt. You may find this best if you're using programs such as SourceTree as a Git GUI. You can also edit source using your usual IDE.

Ubuntu File System: Run the Git commands to clone and pull source files from a WSL command prompt. In this case consider using the Visual Studio Code WSL extension as your dev environment - for features such as hot reload.

Running

Start the application by running the NPM command at a WSL command prompt.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

empec-webastudios
empec-webastudios

๐Ÿš‡
Avaer Kazmer
Avaer Kazmer

๐Ÿ’ป
Vis
Vis

๐Ÿ’ป
codingbycl
codingbycl

๐Ÿ’ป
jin
jin

๐Ÿ–‹ ๐Ÿ’ป ๐Ÿ“– ๐Ÿค”
Mฬตอฬ…ฬฬŽฬžฬ—ฬฬผOฬดฬ‡ฬŠฬƒฬ‹ฬ€ฬฬปOฬทฬƒอ‹ฬผNฬธฬฟอœฬฉ ฬถอ’ฬœฬ ฬนฬผฬฉ
Mฬตอฬ…ฬฬŽฬžฬ—ฬฬผOฬดฬ‡ฬŠฬƒฬ‹ฬ€ฬฬปOฬทฬƒอ‹ฬผNฬธฬฟอœฬฉ ฬถอ’ฬœฬ ฬนฬผฬฉ

๐Ÿ’ป
Shubham Jain
Shubham Jain

๐Ÿ’ป
TheoTheDev
TheoTheDev

๐Ÿ’ป
tcm390
tcm390

๐Ÿ’ป
GuiltyRegicide
GuiltyRegicide

๐ŸŽจ
Muhammad Abeer
Muhammad Abeer

๐Ÿ’ป
arya
arya

๐Ÿ’ป
Loryhoof
Loryhoof

๐Ÿ’ป
plankatron
plankatron

๐ŸŽจ
torchesburn
torchesburn

๐Ÿ’ป
a Goblin King
a Goblin King

๐Ÿ’ป
Jack Z.
Jack Z.

๐Ÿ’ป
Ali Saad
Ali Saad

๐Ÿ’ป
Adam Clarke
Adam Clarke

๐Ÿ’ป
2AM
2AM

๐Ÿ”Š
Matthew Willox
Matthew Willox

๐Ÿ’ป
memelotsqui
memelotsqui

๐Ÿ’ป
cjft
cjft

๐Ÿ’ป
UltraBot
UltraBot

๐Ÿ’ป
intelliverse777
intelliverse777

๐Ÿ’ป
Ron
Ron

๐Ÿ’ป
๊ˆค๊Ÿ๊Žญ๊Ÿ๊Œ—๊€ค๊Œ—
๊ˆค๊Ÿ๊Žญ๊Ÿ๊Œ—๊€ค๊Œ—

๐Ÿ’ป
Patrick Bozic
Patrick Bozic

๐Ÿ’ป
Grant Roberts
Grant Roberts

๐ŸŽจ
alextitonis
alextitonis

๐Ÿ’ป
ahadshams
ahadshams

๐Ÿ’ผ
Emotionull
Emotionull

๐Ÿ“– ๐Ÿค” ๐Ÿ–‹
Andrea Ruzzenenti
Andrea Ruzzenenti

๐Ÿ’ป
soulofmischief
soulofmischief

๐Ÿ’ป
belopot
belopot

๐Ÿ’ป
David Rowe
David Rowe

๐Ÿ’ป
potoelite
potoelite

๐Ÿ’ป
NotFuji
NotFuji

๐ŸŽจ
zenkale
zenkale

โš ๏ธ
Dmytro Fomenko
Dmytro Fomenko

๐ŸŽจ
kiibarina
kiibarina

๐ŸŽจ
Jonas Kraasch
Jonas Kraasch

๐Ÿ’ป
Jimmy
Jimmy

๐Ÿ’ป
kishdr
kishdr

๐ŸŽจ

This project follows the all-contributors specification. Contributions of any kind welcome!

Let's build it together!

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.

New Issues and Features

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.

Pull Requests

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.

About

An open metaverse engine for everyone

https://moemate.io


Languages

Language:C++ 79.3%Language:JavaScript 14.1%Language:CMake 2.4%Language:C 2.2%Language:HTML 1.3%Language:CSS 0.4%Language:Shell 0.1%Language:Python 0.1%Language:Batchfile 0.1%Language:Lua 0.0%Language:GLSL 0.0%Language:Scala 0.0%Language:SuperCollider 0.0%Language:Dockerfile 0.0%Language:TypeScript 0.0%Language:PowerShell 0.0%Language:Makefile 0.0%