Search Unity

How do I build a VR Nightclub / Concert Venue to accommodate up to 3000 users

Discussion in 'General Discussion' started by djpariswalker, May 25, 2020.

  1. djpariswalker

    djpariswalker

    Joined:
    May 25, 2020
    Posts:
    5
    Hi Guys I am a deejay and music producer as well as a student Unity VR developer and my mission since the COVID 19 pandemic put us all out of business - is to create a VR Nightclub and Concert Venue so that deejays like myself can perform live deejay sets to crowds of up to 3000 users who in turn can interact with each other as well as listen and watch a live music event.

    This concept is not new , but for the music genres I represent example RnB , Hip Hop , Dancehall Reggae an House Music in the UK we need an alternative venue to host our events online instead of these facebook live deejays playing in their bedrooms

    A VR nightclub using Oculus Quest and Oculus Rift , Oculus Go and Android etc would solve the problem of future lockdowns due to pandemic outbreaks from hurting the music industry and for the music industry in the United Kingdom solves the problem of having to pay for Security, bar staff and Police closing down events due to crowd unrest and trouble from local gangsters etc.

    I am fully committed to this project and I have already identified a NightClub digital Assets in the Unity Store and a deejay program that will allow a deejay to play music from his computer in the VR Night Club.

    The problems I want to solve is

    1) Multi Player /// how many users or avatars can I get into a VR NightClub / Concert Venue ?

    2) how do I balance crowd audio from the performing artist /deejay audio ?

    3) Just like in 2nd life I want the users to be able to speak to each other via text or audio?

    4) How do I make the VR Night Club / Concert Venue accessible on all the available Headsets and online on the web?

    5) Payment Gateways best one to use and other monetisations?
    I imagine I will have to upload the game onto an amazon games server but I would be grateful for advice on how to get solve the above problems.

    The more of these types of platforms I know will explode the sales of VR Headsets and bring more people globally to VR
     
  2. MDADigital

    MDADigital

    Joined:
    Apr 18, 2020
    Posts:
    2,198
    You will need ALOT of smoke and mirrors for that kind of data volumes. We have tested Microsoft Project Acoustics together with VOIP and it works really nice, but it will not scale out to 3000 players a short devlog we did about that,



    You need ways of quickly lookup up the current players closets other players, lets say within a radius of 20 meters. Only network these VOIP packets to the player. Fake a ambiance crowd for the rest.

    You will never be able to network 3000 clients on a single server. More so with VOIP. You need to devide the arena into cells. And each cell is handled by a server. Have dynamic tickrates thats a function of the number of players currently in the cell. Find a way to compress and send rough estimates of player positions between cells so when you look over the arena you get a feel of a fully crowded arena.

    Final problem is to be able to fill it with 3000 concurrent players, thats a though one, more so in VR
     
  3. djpariswalker

    djpariswalker

    Joined:
    May 25, 2020
    Posts:
    5
    I was looking at amazon games server and that seems to be able scale up as more users go onto the platform.

    Second life seem to manage the interaction isn’t this something I can duplicate with unity ?
     
  4. MDADigital

    MDADigital

    Joined:
    Apr 18, 2020
    Posts:
    2,198
    I haven't used the tech so I do not know how well it scales or how well it integrates with unity.

    Supporting 3000 players is not solved by a drag and drop solution that's all I know.

    Edit: also in VR you have a minimum of 3 transforms to sync versus as low as one transform in classic games
     
    Martin_H likes this.
  5. bluescrn

    bluescrn

    Joined:
    Feb 25, 2013
    Posts:
    642
    You may want to set your goal a bit lower than '3000 players'. Even just rendering them (at VR framerates) could be challenging, let alone the networking and VOIP, or finding that many users with VR kit that want to take part at the same time.

    10-100 may be much more achievable. (But if you needed to scale it up, you could have multiple instances/servers listening to the same music stream?)
     
  6. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Technical challenges aside, if you find 3000 people with vr hardware willing and able to partake in any scheduled event at a specific time that would already be impressive to me.
    I'm not sure VR has the userbase to reach the goals you have.

    Are you familiar with what a griefer is? Maybe I don't quite understand what you're trying to do, but if this is mainly about the music, then I think this is a bad idea and you'd be better off faking the crowd audio in a predictable way. A dozen people screaming into their distorting mics just isn't the same as a cheering crowd.


    If you still want to make it VR, I'd suggest making it a sort of multicast thing that also streams on twitch, youtube, facebook to create user acquisition funnels that guide them towards your VR app.
     
    Ryiah, JoNax97 and Lurking-Ninja like this.
  7. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    P.S.: I have a monetization model idea - if you want to monetize it on a "pay per view" sort of scheme you could sell virtual drinks that both equate to session watchtime and also serve as a form of personal expression, meaning allow users to buy fancier versions that are only cosmetically different to express themselves. Give them a "free drink" as a welcome gift and let them buy more if they want to stay around. No idea if that would work for your target audience, but my reasoning would be that it makes use of already existing behavior and would be more immersive than just a non-diegetic monetization.
     
  8. Well, there are numerous solutions, like SpatialOS, Photon, etc, they have different characteristics. You will need to research it. Voice shouldn't be a problem, see below.
    But the VR-portion will be a problem, I think. I'm not experienced in VR though so I will leave the discussion of the problems to the pros here. :)

    If you check the YouTube video at #3, it supports "2D' sound, you can switch the artists to 2D, so they can always be heard.

    Most of the VoIP solutions are made for communication though. I'm not sure how they would be holding up for music. I think this can be a real Achilles heel of this idea. Because no one cares if the only can see 20 party people around them (they can move around), but if the music quality is abysmal...


    You make different releases for all the devices you want to support. The server-side solutions usually are the same for all of them.

    I have no current expertise on this. I probably would just throw a PayPal at it and call it done, but that's just me.
     
    Last edited by a moderator: May 25, 2020
  9. djpariswalker

    djpariswalker

    Joined:
    May 25, 2020
    Posts:
    5
    So doing it in groups of say 10 or 20 players per server listening to the same stream address would be more of a possible option?
     
  10. The problem is with the VR tech I believe. You can have more people on the servers, but showing them in VR is a problem.
    What you can do is only show close people around the "player". For example in 10 meters radius around them or something. Everybody else are just a mass, noise in the background, but when the "player" moves, the synced others change. You show other bunch of people around them and who was seen before becomes noise.
     
  11. djpariswalker

    djpariswalker

    Joined:
    May 25, 2020
    Posts:
    5
    I just watched the Vivox video it is amazing, I think this platform provides the solution for muliplayer interaction I’m looking for during a deejay set in the nightclub as if someone talks I can write some code that auto lowers the music whether it be in 2d mode Or 3D mode on a pc or in a VR Headset.
     
  12. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    I believe second life can't handle 3000 people at once.The only game that might be getting there is probably Eve. It is not easy.

    Yes. Definitely. 10..20 people is much more realistic goal.

    Also beware of licensing/legal issues with streaming.
     
    Martin_H likes this.
  13. MDADigital

    MDADigital

    Joined:
    Apr 18, 2020
    Posts:
    2,198
    You can probably go higher, but its a good start.

    Also VR avatars and the audio streams will not sync perfect so head bangs and air guitar solos from the players will be out of sync with music :O
     
  14. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,023
    Here is how I would approach this. First, I would not support detailed VR driven body movements for anybody farther away from the player. I would set up a custom solution with maybe a couple hundred possible animations that people typically do at a concert. Then I would have this custom solution interpret on the client side what animation that person was most likely doing based on their current detailed VR movements. I would send that selected animation as a single byte within a custom player information packet.

    Additionally, the clients would only send updates over the network when the player's animation changes or their location significantly changes. This would provide enough information for all of the other clients to visualize the positions and actions of everybody at the event in an extremely highly efficient way. The vast majority of all of the people at the event would simply be shown using the last known position and animation for each person using a client side crowd simulator.

    The people close to the player could be done using the same approach, or those really close people could be handled using much more detailed systems. If you used extremely detailed VR movements for each player nearby, everybody would feel like the entire event was that detailed, even though the illusion of detail is only being done for the nearby people.

    The voice chat system would be completely peer to peer using STUN. A match making system would track who is nearby the player, and then automatically create small voice chat groups on a fly on the client side. You would not want to route voice chat through a central server if you had thousands of people there. In fact, you may want to also route the detailed player movements for nearby people through a similar peer to peer solution to reduce server load.

    The other half of the scalability would be rendering related. You can't set up thousands of game objects and still have a decent frame rate. So you would need to either use DOTS or build a custom instancing style solution to render all of the people at the event. There is an animator available for DOTS now, so that is worth checking out. I don't know if it would scale to thousands of animated people. If it can't, then you could use it for animating people within a certain distance, and then you could create static impostors for the people outside of that range.
     
    Last edited: May 26, 2020
    MadeFromPolygons, Ryiah and Martin_H like this.
  15. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,023
    I agree. This would probably be a bigger challenge than all of the technical challenges combined.
     
  16. djpariswalker

    djpariswalker

    Joined:
    May 25, 2020
    Posts:
    5
    The STUN technologies where can I find this to check out how the peer to peer works for voice
     
  17. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,023
    https://en.wikipedia.org/wiki/STUN

    STUN is a way to set up peer to peer networking between players by automatically punching through the NATs. Once you have the STUN working, the peer to peer connections can carry what ever packets you want. I recommend using STUN style networking for sending voice data packets between players instead of sending the voice data through a central server.
     
  18. true_warlock

    true_warlock

    Joined:
    Aug 2, 2019
    Posts:
    60
    I know this is an old post, but its simple if you have someone who can work with server setups. Simple Method. Cloning a scene and limit each scene to 250 per "scene/room/area." You can then live feed from a single point to all the cloned scenes simultaneously and you prevent scene congestion which impacts frame rates. It becomes simple math really. Your goal is 3000 end users. Each time the max of 250 is loaded in said location a new clone opens for 250 more and so forth. Basically you have one primary location in that networked from which is added 11 more scene location copies and meeting your goal precisely at 3000 because for a total of 12 "room locations produced. AWS also helps significantly with the scaling factors and cost effectiveness and will make reaching the global environment much easier. For example if one of the server clone scenes drops in numbers or everyone logs off, it will close and it saves you on data usage and therefore costs. Just set things so clones generate as needed which is similar to how Fortnite is able to have so many users at once, keeping congestion down and streaming content to all its replicas/cloned scene locations without sacrificing performance.