alloplace
is a server that represents a "place" in the Alloverse. A user can connect to a
place to walk around it and interact with people, and also with apps running in the place.
The place manages:
- The connections to places and users
- Forwarding of audio and video data to those clients that request it
- Message router for "interactions"
- A scene graph representing all the entities in the place
- Implements a set of interactions to control all of the above
- Receives "intents" from clients to manage movement
- Transmits the scene graph periodically to connected clients
- Runs simulation and animation on the scenegraph
It does not manage things like
- features such as "whiteboard" or "file viewer" -- they are separate alloapps that are launched on demand and connects to the place
- launching apps -- this is managed by the
marketplace
app - admin features, such as kicking users -- this is managed by the
placesettings
app
You can modify runtime behavior with the following environment variables:
ALLOPLACE_NAME="My place"
-- set the display name of the serverALLOPLACE_HOST="sandbox.places.alloverse.com"
-- set the public IP or hostname that the server is running on. Without this set, the place won't be able to launch apps within itself.ALLOPLACE_DISABLE_MARKETPLACE=true
-- don't auto-start the marketplace app (only really needed when you're working on the marketplace itself)
Run latest from dockerhub:
docker run -it --pull=always -e ALLOPLACE_NAME="My place" -p 21337:21337/udp alloverse/alloplace2:latest
Build and run with local sources:
sudo docker build -t alloplace2 .
sudo docker run -it -e ALLOPLACE_NAME="My place" -p 21337:21337/udp alloplace2:latest
git submodule update --init --recursive
- Run
marketplace/scripts/bootstrap.sh
cd placesettings && allo/assist fetch
- Build the flynncade helper:
cd marketplace/apps/flynncade && make
mkdir build && cd build && cmake ..
make alloplace2; and bash -c "cd ..; env ALLOPLACE_NAME=\"My place\" ./build/alloplace2"
git submodule update --init --recursive
- Run
marketplace/scripts/bootstrap.sh
cd placesettings && allo/assist fetch
- Build the flynncade helper:
cd marketplace/apps/flynncade && make
- On M1 mac this might entail
arch --x86_64 bash
andCFLAGS="-I/usr/local/Cellar/ffmpeg/4.4.1_5/include/" LDFLAGS="-L/usr/local/Cellar/ffmpeg/4.4.1_5/lib/ -lavresample -lavcodec -lswresample" make
- On M1 mac this might entail
mkdir build && cd build && cmake -GXcode ..
- Set a custom work directory in "Edit Scheme" -> Options: "$(BUILT_PRODUCTS_DIR)/../.."
- Run the
alloplace2
target