Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Easily run a multi-users experience up to 30 users from a GitHub repo #28

Open
vincentfretin opened this issue Mar 19, 2024 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@vincentfretin
Copy link
Member

Easily load a hubs scene stored on a public repo on https://allocola.com to have the UI, realistic avatars, audio, camera and screen share with the janus sfu, up to 10 users for my $10/month sponsors. See my comment about sponsorship and shared server #5 (comment)

The idea is to have the following url working
https://allocola.com/gh/username/repo

For example with the outdoor festival scene stored in this repo https://github.com/c-frame/outdoor-festival with the elements.json file at the root of the repository referencing the scene glb and extras aframe entities to create (documentation), the url would be https://allocola.com/gh/c-frame/outdoor-festival and jsdelivr cdn would be used to get the assets from the github repository (I commented about it in #18)

You can also force the experience to be run as solo user, it's an option in the json configuration.

@vincentfretin vincentfretin added the enhancement New feature or request label Mar 19, 2024
@vincentfretin vincentfretin self-assigned this Mar 19, 2024
@vincentfretin vincentfretin pinned this issue Mar 19, 2024
@vincentfretin vincentfretin moved this to Planned in Sponsorship Mar 19, 2024
@jywarren
Copy link

I think i remember you mentioning possibly a p2p solution for a smaller # of users. I've used PeerJS before for realtime server-less multiplayer. Is this issue for a more complex setup? Thank you, exciting!

@vincentfretin
Copy link
Member Author

Yes it's for running an experience on my hosting platform with a bigger number of users and additional features.
For a small number of users, you can run it on glitch, I made two examples
https://github.com/networked-aframe/naf-nametag-solidjs with basic sphere avatars, chat and audio
and https://github.com/networked-aframe/naf-valid-avatars with realistic avatars but no chat and audio, but you can easily add the code for it by comparing the two repositories.
Those examples and this repo were code I wrote for my platform that host several customer projects I did, that I open sourced to reusable components. For the UI part, I'm searching a good way to implement reusable components, see the issue networked-aframe/networked-aframe#423

@vincentfretin
Copy link
Member Author

So yeah for glitch, it's using a nodejs process that run easyrtc to do p2p webrtc connection to support audio and video.

My platform is using janus sfu, meaning you send your voice and video only once to the server and it is then broadcasted to the other participants in the room.

With easyrtc, you upload you audio/video n times, to each participant, that's why it doesn't scale well, generally you have issues around 8 users because you don't have the bandwidth to upload so many data.

@vincentfretin vincentfretin changed the title Easily run a multi-users experience from a GitHub repo Easily run a multi-users experience up to 30 users from a GitHub repo Mar 24, 2024
@jywarren
Copy link

Oh wow that's amazing. I would have been fine using Zoom for audio/video and just having synchronous avatar movement in the space, but this is great to hear. Ty!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Planned
Development

No branches or pull requests

2 participants