Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Question any advice re. how to set up a "Small Multiplayer Online RPG" ?

Discussion in 'Getting Started' started by _Luthien_, Jun 5, 2021.

  1. _Luthien_

    _Luthien_

    Joined:
    Apr 24, 2015
    Posts:
    52
    Hi,

    What I'm aiming for is not so much a game, but rather a realistic VR simulation that would allow for a (small) number of logged-in users to walk around in using a more or less realistic human avatar (ie. not a robot or a disembodied camera) and to talk with one another, preferably via audio.

    Say, something like a meeting place in VR.
    I'm not looking to realise game-like interaction between users, or in-world construction as in "second life"; the goal is purely the experience of the environment.
    I settled on Unity because of the realism that can be achieved with it.

    For the game environment I used the Unity built-in rendering system, Azure Sky light, Crest Ocean and Horizon [ON] (to achieve the sense of a very large terrain) and have a working "playable offline demo" for Mac and Windows. While I've done a fair bit of animation and 3D-modelling I've never before created a game, so it's been a learning experience!

    I'm eager to move on to the next stage: adding the avatar(s) and the ability to connect to other users. I've read a lot and watched dozens of videos in the past weeks; looking into Photon PUN / Voice, UMA2 and a few other things. But so far, the only result is that I feel more overwhelmed than before. I guess I was half-half expecting something like how that works in OpenSimulator: I played around with that years ago and found it unconvincing; but it did offer connectivity, avatar system and audio out of the box.

    I downloaded UMA2 and tried it. It looks great, exactly what I would need - but somehow I cannot find how to connect the dots between UMA2, the Unity 1st-person-controller, and Photon PUN (or Voice). None of those videos, docs and tutorials explain the basic set-up. Instead, they rather dive deep into details on how to outfit your avatar with new shoes, or how to have 100 smartly-suited UMA characters with hair in all colours of the rainbow running around all over the place. Sure, it's all very interesting, but it gives me the feeling that I'm blipping over the more basic stuff.

    So I wonder if anyone has any advice on how to set up a 2-to-10-player Online Role-Playing Game?
    By the look of it, Photon seems like a good choice because it's free to try for a small number of concurrent users. But I have no idea if it can be used with UMA avatars (even if it would work to hook those up to a 1st person controller).

    I wouldn't mind paying for an asset if it fits my needs (as long as it's not too exorbitant); and I don't mind some coding either. I haven't worked with C#, but I'm a Java developer by profession, so that shouldn't be too hard. The question is where to start :)

    Any advice appreciated :)
    Thanks,
    Lúthien
     
  2. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Hmm... I hate to say it, but you are right to feel overwhelmed. What you are describing is extremely difficult. You are combining a number of things which are rather hard to achieve individually: multiplayer networking, realism, human avatars (which, combined with VR, requires fairly advanced inverse kinematics), voice chat. When you do them together, the difficulties multiply.

    An experienced team of developers could probably do what you're describing in 3-6 months, but for someone new to it working alone, expect it to take a couple years at least.

    As to where to start — well, you're taking on a bunch of things at once, as noted above. Pick one and focus there.
     
  3. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Hey, one thought springs to mind — there was an attempt to make a more off-the-shelf system for this sort of thing about a year ago. It was called Gamelodge. The developers were frankly better coders than marketers, and did not succeed at the KickStarter they needed to fund further development. But I tried it out and it seemed pretty great; not without its issues, but a very solid start. Perhaps this would help you reach your goals? The project is now open-source and it looks like it lives here: https://github.com/BananaHemic/gamelodge_unity
     
    _Luthien_ likes this.
  4. RichAllen2023

    RichAllen2023

    Joined:
    Jul 19, 2016
    Posts:
    1,026
    Might be a bit ambitious for a beginner that kind of thing.
     
    _Luthien_ likes this.
  5. _Luthien_

    _Luthien_

    Joined:
    Apr 24, 2015
    Posts:
    52
    Thanks JoeStrout, that looks very interesting!
    It’s at least worth a try :)

    I’m already following your advice above to tackle it one challenge at a time. Having a terrain that’s large and detailed enough to look convincing is already a major goal achieved, with Ocean Crest as a big help because it exactly complements Horizon [ON] in creating a convincing background. I was also lucky to get a good asset store deal recently that included Fog Volume 3. All in all I am already quite happy with the results so far.

    But yeah, I hadn’t expected that the avatar+multiplayer would be so challenging. I guess I was spoiled by OpenSimulator in that respect.
    Actually, today I played around with Photon Voice, built the stand-alone demo and sent that to a friend in the US so that we can try that out. this would provide half of the remaining puzzle, because the user avatars are very rudimentary.

    But if that would be the best I can achieve, so be it. User interaction clothed in a recognisably human shape, however nice to have, isn’t the most important part anyhow.

    I’ll certainly try Gamelodge this week as soon as I have some time for it!
     
    JoeStrout likes this.
  6. _Luthien_

    _Luthien_

    Joined:
    Apr 24, 2015
    Posts:
    52
    Hi RichAllen - it might indeed. And if I had known up front that it actually *was* ambitious I might not even have tried.
    I had not expected that setting up a multiplayer avatar system would be so hard. After all, I’d think that it would be so commonly required in games that there would exist a ready-made solution for it. Especially because OpenSimulator has had this for ~ 15 years, so I expected that Unity, being so much more advanced, would have marinated and skewered this functionality by now :)

    But who knows, maybe I can find the right strings to tie together and find something that works.