Search Unity

uMMORPG Official Thread

Discussion in 'Assets and Asset Store' started by mischa2k, Dec 29, 2015.

  1. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    uMMORPG uses Mirror networking, which does support additive loaded scenes.
    I personally only use single scene for my projects so far.
    It uses regular Unity physics.
    For an Indie MMO float precision shouldn't be noticeable that quickly. For gigantic worlds of course, but uMMORPG is meant as a core MMO asset, it doesn't support all edge cases. You can still do float origin tricks yourself if needed :)
     
  2. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    Ok, but how would this work on the server side?
    I mean, the server will need to manage all the world at once, but the client is loading only chunks of it. Since the server and client share the same code, how would uMMORPG support that?
    Is the server code managing the players and monsters as regular unity game objects in a single worldwide scene managed by Unity and reflecting this on the clients, or are the players and monsters managed internally directly by code from the database without spawning game objects in a server side scene?
    The manual doesn't explain any of this.
    I got the impression that it's the first case by reading the docs: a regular Unity scene with plenty of actual Unity game objects for each player and monster roaming in a single worldwide scene comprising all exteriors and dungeon instances at once.
    If that's the case, additive scene loading and unloading or float origin tricks could not be implemented, since the server side scene would need to have all the world at once in a single scene to manage it.
    I really need more detailed info about how the server works. The manual is not explaining any of this, and the implications are very deep and not easy to circumvent later in production.
     
  3. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    Bump.
    I really need to know.
     
  4. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    Never mind, I read through the reviews and it confirmed my suspicions about it's limitations.
    Also there seems to be a lot of drama around this product, which is never a good sign.
     
    Last edited: Sep 16, 2020
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    @atomicjoe - I'm going to jump to uMMORPG's defense here. The code is clean and lean, and it does exactly what it advertises. If there's any drama, I suspect most comes from customers who, like jonmalave said, expect making an MMO to be a one-click operation. Not to fault them. Many people who are new to game development dream of making an MMO, and it's fine to dream big. There's just a steep learning curve to game dev in general that may come as a surprise.

    While the dev isn't very active in this forum thread, he provides fine support on discord, and there's an active and supportive community there. Some bug fixes come quickly, some not as quickly, presumably however the dev prioritizes them. But that's fairly typical for dev in general.

    To answer your question, the server and client run the same Unity scene. The server manages most GameObjects authoritatively, except for things like local UI elements, etc. It uses Mirror for networking, which has good performance but doesn't support multiple scenes, so you're stuck with a single scene unless you use the NetworkZones addon. (Search for "network zones" in the uMMORPG FAQ.)
     
    mischa2k and atomicjoe like this.
  6. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    Thanks @TonyLi , I love your Dialog system by the way. Still the best for Unity :)
     
    TonyLi likes this.
  7. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Best practice for UNET/Mirror is to not change server scene at runtime.
    There is no good way to do this imho. Loading some additive scenes might be okay.

    Server code is managing players and monsters as Networkidentity GameObjects yes.
    Server itself doesn't care how big the map is, as it doesn't render anything in headless mode.
    Client does not see all monsters/players on the map. Only the ones around him.
    Client can also use culling to hide parts of the terrain/environment if needed, no problem.
     
    Last edited: Sep 16, 2020
  8. EntertainmentEnterprise

    EntertainmentEnterprise

    Joined:
    Aug 22, 2018
    Posts:
    18
    My team is building a VR MMORPG and I have had the non CE version for about a year... Is the non CE version no longer going to be supported, because now I regret wasting $80 in the other in anticipation of this project. I'm not sure what to believe, but I hope that's not true.
     
  9. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Classic uMMORPG is feature complete and in long term support mode.
    Means it only receives bug fixes, just like Unity LTS.
    That's why classic is still on the asset store :)
     
  10. Arcanebits

    Arcanebits

    Joined:
    Dec 18, 2013
    Posts:
    108
    Hi, im using CE, so far so good, just a trouble trying to create Guilds... I click on another character, then pres "G" and a window appears, but not the top bar with buttoms about invite... any comments?
     
  11. Arcanebits

    Arcanebits

    Joined:
    Dec 18, 2013
    Posts:
    108
    Also another thing, the errorlog thats pops on top of screen with some info ie:coll errors... need to temporarily kill it, didnt found onto canvas.
     
  12. Arcanebits

    Arcanebits

    Joined:
    Dec 18, 2013
    Posts:
    108
    Solved that Already... now with the Guild or Teams not working... anyone?
     
  13. Arcanebits

    Arcanebits

    Joined:
    Dec 18, 2013
    Posts:
    108
    Hi, maybe I’m doing something simple wrong, but this is my issue:

    I need to make Guilds, so I fire up the Linux server, and on my PC start two instances of the game, player1 and player2.

    With Player1 selected, I click on player two, and then press “G” and the Guild window Opens, but cant make the top box with the INVITE button to activate. A Hotkeys into the manual will be very welcome, since I maybe just omitting a keypress needed.

    It does not appear to be screen issue, since ran it FHD.

    Any help?
     
  14. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Move close enough to the other player. Invites only work if you are standing next to each other to avoid people spamming them to anywhere on the server
     
  15. Arcanebits

    Arcanebits

    Joined:
    Dec 18, 2013
    Posts:
    108
    Nice, I Zoomed max to the players, and presed "G" same results... wait... is there a defined key to INVITE?
     
  16. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Click on the player when you stand very close. Then at the top of the screen you see the 'invite' button under his health bar :)
     
    Arcanebits likes this.
  17. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    uMMORPG CE V2.21 pending review:
    2020-09-27_20-11-03.png

    Will spend the next couple of weeks working on an experimental branch to prepare the next CCU stress test :)
     
  18. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    What are uMMORPG CE's current limitations? No marketing BS please, it's always easy to find features but difficult to find limitations.
     
  19. Sehlor

    Sehlor

    Joined:
    Feb 10, 2012
    Posts:
    199
    on a decent server ( 180$-220$ per month ) about 400-500 CCU ( decently spread out world ) is a reality with CE + LibUV2k.
     
    mischa2k and Exeneva like this.
  20. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    How suitable is uMMORPG for making a single player RPG with co-op capabilities? The idea is if the player wants to do co-op with up to a certain number of other players in the same world, that they be able to do so. I should mention, due to in-game purchases, the single-player has to be connected to the internet and gameplay must still be authoritative with the server, it's just that you would not see other players in the single-player mode.

    If this is confusing, think about how Diablo 3 has single-player with a persistent internet connection, but you can co-op with others.

    Perhaps @vis2k is the best for answering this since he is the asset author.
     
  21. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hey. For your first question, our latest CCU test handled ~500 connected players. But there were some issues, which is why the test will be repeated in the next couple of weeks. I am working on a special transport (libuv/kcp) and a special mirror version (x) to reach as high CCU as possible in the next test :)

    And yes it would work for co-op. What works for 500 players also works for 2 players. You would need either a server to host, or port forwarding if someone wants to host at home, or nat punchthrough/relay/similar though.
     
    Exeneva likes this.
  22. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    I intend to use servers. In my case, would I need an instance for each player to simulate something like Diablo 3, where the player can play single player but have friends join?

    I'm concerned if uMMORPG is the right solution for my needs.
     
  23. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    uMMORPG CE V2.22 pending review:
    2020-11-01_19-29-41.png

    Not 100% sure what you are asking, but building your game as multiplayer from the ground up would be the easiest solution.
     
  24. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    Right, that is a given. So far based on the answers you have provided, it doesn't seem like uMMORPG is suitable for my needs, which is closer to a Diablo 3 networking setup.
     
  25. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V2.23 pending review.
    Bug fix release. Make sure to update if you previously encountered 'message larger than 1200 bytes' warnings when using KCP. new allowed size is 145KB.
    2020-11-09_22-17-48.png
     
  26. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
  27. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    V2.24 pending review. Maintenance release.
    2020-11-18_15-33-00@2x.png
     
  28. S4ns409

    S4ns409

    Joined:
    May 25, 2019
    Posts:
    1
    After changing the player model I can no longer select the character on the character select screen.
     
  29. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Make sure to add the new prefab to NetworkManager spawnable prefabs list :)
     
  30. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Remastered V2.25 pending review! Many bug fixes and improvements.
    2020-12-27_18-50-45@2x.png
     
  31. Magic73

    Magic73

    Joined:
    Jun 23, 2015
    Posts:
    132
    Cool, Thanks!

    P.S:
    any ETA about a new uMMORPG with DOTSNET ? (if you plan to do it :) )
     
  32. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Currently working on several huge Mirror & DOTSNET improvements like Bitpacking.
    Afterwards a final CCU test for Mirror + uMMORPG. The goal is to see what Mirror / MonoBehaviour can handle in it's final form.

    Based on that test I'll decide between Mirror || DOTSNET for my MMO.
    If I decide to use DOTSNET then maybe uMMORPG for DOTSNET. But at this point I have way too much on my plate, and I am really hoping that Mirror / MonoBehaviour will be fast enough so I can finally do this :)
     
    mumoshu likes this.
  33. Randolphjand

    Randolphjand

    Joined:
    Sep 23, 2017
    Posts:
    28
    Can't login. I pressed play then server and play but remembered i forgot to do something on the new character i was logging on to test so I pressed quit. Then I pressed the play button to exit in case that was faster. Now I press server and play and it says connecting but it never will.


    NullReferenceException: Object reference not set to an instance of an object
    NetworkManagerMMO.MakeCharactersAvailableMessage (System.String account) (at Assets/uMMORPG/Scripts/NetworkManagerMMO.cs:236)
    NetworkManagerMMO.OnServerConnect (Mirror.NetworkConnection conn) (at Assets/uMMORPG/Scripts/NetworkManagerMMO.cs:212)
    Mirror.NetworkManager.OnServerAuthenticated (Mirror.NetworkConnection conn) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkManager.cs:1106)
    UnityEngine.Events.InvokableCall`1[T1].Invoke (T1 args0) (at <0847a0faf94444ccbaf1958021b27f54>:0)
    UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <0847a0faf94444ccbaf1958021b27f54>:0)
    NetworkAuthenticatorMMO.OnServerLogin (Mirror.NetworkConnection conn, LoginMsg message) (at Assets/uMMORPG/Scripts/NetworkAuthenticatorMMO.cs:107)
    Mirror.MessagePacker+<>c__DisplayClass6_0`2[T,C].<MessageHandler>b__0 (Mirror.NetworkConnection conn, Mirror.NetworkReader reader, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/MessagePacker.cs:146)
    Mirror.NetworkConnection.InvokeHandler (System.Int32 msgType, Mirror.NetworkReader reader, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkConnection.cs:219)
    Mirror.NetworkConnection.TransportReceive (System.ArraySegment`1[T] buffer, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkConnection.cs:272)
    Mirror.ULocalConnectionToServer.Send (System.ArraySegment`1[T] segment, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/LocalConnections.cs:97)
    Mirror.NetworkConnection.Send[T] (T msg, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkConnection.cs:150)
    NetworkAuthenticatorMMO.OnClientAuthenticate (Mirror.NetworkConnection conn) (at Assets/uMMORPG/Scripts/NetworkAuthenticatorMMO.cs:41)
    Mirror.NetworkAuthenticator.OnClientAuthenticateInternal (Mirror.NetworkConnection conn) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkAuthenticator.cs:65)
    Mirror.NetworkManager.OnClientConnectInternal (Mirror.NetworkConnection conn, Mirror.ConnectMessage message) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkManager.cs:1174)
    Mirror.MessagePacker+<>c__DisplayClass6_0`2[T,C].<MessageHandler>b__0 (Mirror.NetworkConnection conn, Mirror.NetworkReader reader, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/MessagePacker.cs:146)
    Mirror.NetworkConnection.InvokeHandler (System.Int32 msgType, Mirror.NetworkReader reader, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkConnection.cs:219)
    Mirror.NetworkConnection.TransportReceive (System.ArraySegment`1[T] buffer, System.Int32 channelId) (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkConnection.cs:272)
    Mirror.ULocalConnectionToServer.Update () (at Assets/uMMORPG/Plugins/Mirror/Runtime/LocalConnections.cs:110)
    Mirror.NetworkClient.Update () (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkClient.cs:259)
    Mirror.NetworkManager.LateUpdate () (at Assets/uMMORPG/Plugins/Mirror/Runtime/NetworkManager.cs:255)
     
  34. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    NullReferenceException sounds like you probably forgot to set up a component somewhere.
    Go back through your backups to see when it started :)
     
  35. iSleepzZz

    iSleepzZz

    Joined:
    Dec 23, 2012
    Posts:
    206
    Hi @vis2k , I was curious. For people still rocking the first non-component ummorpg will it ever get an update for the latest mirror + newest transport layer (the kcp or lub2v something like that) that make Apathy obsolete?
    Or was that a mirror pro feature only. Sorry if this is obvious information / a stupid question, it's hard for me to keep up with all the advancements haha :p
    Thank so much, look forward to hearing from you!
    -iSleepzZz
     
  36. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Sorry, too many fish to fry recently.
    I had virtually no time for uRPG, uSurvival and the classic uMMORPGs.

    ... but: good news is that we are working towards Mirror LTS. So updating uMMORPG classic (which is in LTS) to the latest Mirror LTS will always be easy afterwards. Only bug fixes, no breaking changes :)

    If you are brave and don't want to wait, just grab Mirror from the asset store and overwrite it in your uMMORPG classic. Should be doable in 10 minutes of pain.
     
    iSleepzZz likes this.
  37. iSleepzZz

    iSleepzZz

    Joined:
    Dec 23, 2012
    Posts:
    206
    Okay awesome, this is great news!
    I am excited to Mirror to finally be in LTS; it's most definitely been a long journey for you guys! I can't thank you guys enough for developing the networking solution for so many projects.
    Unfortunately, I've heard a few people trying to manually update their class ummorpg to the latest mirror and they said they couldn't do it without issues; I'm sure I can do it and figure it out. However, I'll just wait. Still developing a lot of systems in my project at the moment so I am in no immediate rush to the latest mirror.
    Thanks again vis2k!
     
    mischa2k likes this.
  38. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Yep, best to wait and let me worry about it :)
     
    iSleepzZz likes this.
  39. joshua2504

    joshua2504

    Joined:
    Jan 28, 2020
    Posts:
    6
    Unity 2019.4.17f1 fresh import of latest uMMORPG
    also tested on Unity 2020.2.0f1 (uMMORPG seems to run fine on this version)

    building webGL is impossible on both versions.

    Code (CSharp):
    1. Plugin 'libuv.dll' is used from several locations:
    2. Assets/uMMORPG/Plugins/libuv2k/libuv_binaries/windows/x64/libuv.dll would be copied to <PluginPath>/libuv.dll
    3. Assets/uMMORPG/Plugins/libuv2k/libuv_binaries/windows/x86/libuv.dll would be copied to <PluginPath>/libuv.dll
    4. Please fix plugin settings and try again.
    5.  
    6. UnityEditor.Modules.DefaultPluginImporterExtension:CheckFileCollisions(String)
    7. UnityEditorInternal.PluginsHelper:CheckFileCollisions(BuildTarget)
    8. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    I already opened an issue on Github.

    Some guy on the Mirror Discord told me that libuv2k doesn't support webgl and I probably have to import this and set it up.

    The webgl demo on the unity asset store is working fine, so I think it also has to work for me.
     
  40. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hi, looks like I forgot to exclude libuv for webgl somewhere.
    I'll take a look when I have more time.
    Until then you can delete libuv if you are only building for webgl.
    Or use kcp for desktop instead of libuv.
    Or wrap the code with an #if !UNITY_WEBGL
     
  41. joshua2504

    joshua2504

    Joined:
    Jan 28, 2020
    Posts:
    6
    Thanks for your response, vis.

    Can you tell me where exactly I need to place #if !UNITY_WEBGL or which file I need to delete exactly?
     
  42. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    delete the libuv2k transport completely. use kcp2k by adding it to networkmanager.
     
  43. joshua2504

    joshua2504

    Joined:
    Jan 28, 2020
    Posts:
    6
    Thank you. I searched for "libuv2k" and deleted everything. That let me build WebGL.

    I'm still running in some error.

    Could you please check this out and check the browser console? seems like there is some error somewhere, which has to come from uMMORPG (tested a fresh imported project with recommended unity version): https://cdn.treudler.net/lagnum/webgl/test/

    EDIT: With disabled compression, it's loading, but still throwing errors, check here: https://cdn.treudler.net/lagnum/webgl/nocomp/

    Note that you can't connect to the server. Didn't configure it.
     
    Last edited: Jan 16, 2021
  44. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hey, please post the console log directly here :)
    Too risky to open random links, I only have one computer at the moment
     
  45. gearedgeek

    gearedgeek

    Joined:
    Jun 19, 2015
    Posts:
    236
    Is there a way to create particle effects when a AI dies? Like make explosion effect when a robot is destroyed.
     
  46. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Try OnDestroy :)
     
  47. PrincessLuna

    PrincessLuna

    Joined:
    Sep 30, 2018
    Posts:
    17
    Why Instance script states that it is not possible to use NetworkServer.Spawn to create new instance? Remark in script says that "It might contain monsters", but monsters are spawned via spawners and they are not instance child objects, even on the example dungeon prefab.
    What is the point of not using NetworkServer.Spawn then?
    For example, I need it to be spawned on Server with NetId so I may update SyncVar on player that references the instance that player is currently in. But I am not certain now because of the remark :p
    Moreover, having NetId on it allows use of ProximityGridChecker so it wont be rendered all the time.
     
  48. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Currently NetworkIdentities can't have child NetworkIdentities, so we can't just spawn a dungeon prefab which contains monster prefabs.
     
  49. PrincessLuna

    PrincessLuna

    Joined:
    Sep 30, 2018
    Posts:
    17
    But dungeon does not contain any monster prefabs by default. Dungeon contains spawners (without NetId) which spawn monsters in open world when dungeon is created without parenting them to the prefab.
     
  50. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Sorry, been a while since I wrote that code.
    There was a reason why it's not a prefab. I probably left a comment somewhere in the instances code