A forward-looking implementation of the Decentraland protocol.
This implementation uses rust and the Bevy engine, and targets desktop clients.
This project's goals are to:
- document current and future protocol standards
- experiment with changes to the protocol
- increase the field of alternative Explorers
- prioritize solid fundamentals, extensibility, and the use of modern open-source frameworks
- Clone the repo using
git clone https://github.com/decentraland/bevy-explorer
- Install rust
- download and install third party libraries
- on linux:
- Install alsa and udev:
sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
- Install ffmpeg deps:
sudo apt install -y --no-install-recommends clang curl pkg-config libavcodec-dev libavformat-dev libavutil-dev libavfilter-dev libavdevice-dev
- Install Livekit deps:
sudo apt update -y; sudo apt install -y libssl-dev libx11-dev libgl1-mesa-dev libxext-dev
- Install alsa and udev:
- on macos:
brew install ffmpeg pkg-config
- on windows:
- download and unzip
https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z
- set
LIBCLANG_PATH
=path to LLVM\x64\bin
(this is packaged with visual studio, or can be downloaded separately) - set
FFMPEG_DIR
=root folder where ffmpeg has been unzipped
- add
ffmpeg\bin
to yourPATH
- download and unzip
- on linux:
- Install protoc
cargo run --release
cargo run --release -- [--server serverpath] [--location location] [--vsync true|false] [--log_fps true|false] [--msaa 1|2|4|8] [--threads u32] [--distance f32]
--server https://sdk-test-scenes.decentraland.zone
- specify the content server, defaults to the sdk test server.
--location 52,-52
- specify the parcel at which to spawn.
--vsync (true|false)
- disable/enable vsync. defaults to off.
--fps (number)
- set target fps. defaults to 60. if vsync is true this will be overridden by the vsync refresh rate. also accessible via console
/fps
command.
--msaa [1,2,4,8]
- set the number of multisamples. higher values make for nicer graphics but takes more gpu power. defaults to 4.
--threads n
- set the max simultaneous thread count for scene javascript execution. higher will allow better performance for distant scenes, but requires more cpu power. defaults to 4.
- also accessible via console command
/scene_threads
--distance n
- set the distance (in meters) at which scenes will be loaded. defaults to 100.0.
- also accessible via console command
/scene_distance
--no_gltf
- disable gltf loading.
--no_avatar
- disable avatar rendering.
--no_fog
- disable distance fog
--inspect <scene_hash>
- when the scene with the input hash is first loaded, the js runtime will pause waiting for a debugger session (such as
chrome://inspect
) to connect, and allow you to debug the scene code. requires a build with --features "inspect"
cargo test
executes all the tests.