Search Unity

Looking advices for create a large environment for mmorpg sandbox games

Discussion in 'General Discussion' started by Onsterion, Jun 23, 2017.

  1. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    Hi,

    I'm working / prototyping a mmorpg and i can't find a proper modular level design pipeline (workflow) for create a large, scalable and performance environment.

    Like Black desert online :


    Unity terrain tool? other external program?

    Any advice?



    Regards.-
     
  2. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    There are technical constraints that don't make Unity the best game engine to do this scale of world.

    It does not have an in built large world system, that will stream in the world around the player smoothly. It also does not have an origin shifting system to keep the world and player within it's 10k precision bubble.

    You can work around these issues, however there are other engines that support out of the box large worlds that might be a better fit for your needs.

    This depends on your skill set, if you are or have on your team a good programmer these problems can be worked around but I suspect you will see performance issues/problems as you force the engine to do a lot of work moving the world from a single thread (the Unity api is not multi-threaded).

    On the plus side Unity have demoed a multi-threaded transform system and the PhysX engine Unity uses does support origin shifting. So hopefully Unity will add large world support in the near future...

    Or you could limit your world to 10km radius 'floating' islands?
     
    nirvanajie, Meltdown and frosted like this.
  3. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    I am the developer, modeler, animator, UX, guionist.......




    In my mind i'm thinking in a world modular grid where the terrain (environment) is shown when the player is in range, i don't know what program is better for this job (3d max, maya, houdini, etc), For my skills i prefer 3D Max but i can't find a better options.
     
  4. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,570
    If I were working on something like this, I would probably end up experimenting and writing a lot of custom scripts.

    Basically.... terrain is a base terrain mesh and bunch of obejcts on top of it,

    When you export an fbx from somewhere you can have linked duplicates of the same object, and they resolve into the same mesh. meaning you could theretically just model the whole world in an external program and then import it. In practice it'll probably end up being quite horrible in terms of performance.

    So you could try tackling unity terrain tools (probably will end up looking horrible), or writing your own scripts using object instancing.

    Regardless of the approach chosen it is worth keeping in mind that trying to make an MMO is generally discouraged.

    For a start I'd recommend to generate a rough environment you'd like to see in the game and see how it performs in unity. Then start working on eleminating bottlenecks and slow portions of it.
     
  5. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,187
    For articles the only one I'm aware of with any real substance to it is the talk transcript for Skyrim's modular level design.

    http://blog.joelburgess.com/2013/04/skyrims-modular-level-design-gdc-2013.html
     
    nirvanajie and neginfinity like this.
  6. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,570
    That's a very good stuff, but it only covers interiors and buildings. Not landscapes.

    --edit--
    I think someone mentioned horizon log (or whatever it was called) related papers before. Those might be worth checking out. Basically, at its root a landscape is a particle system that emits grass, rocks, trees, etc, and appearance of those is covered by some sort of coverage maps that define biomes/etc. That's the direction I'd be looking for, because modeling forests by hand is not much fun.
     
  7. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    You might find TerrainComposer a valuable tool.
     
  8. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    Yes im investigating and mailing with the owner of Terrain composer (have multi terrain tile and streaming), Gaia (have multi terrain tile and streaming but in the next version Gaia 2) and i can't find in to the features of World Creator the capacity for create multi terrain tile and streaming.
     
  9. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Before you spend lots on terrain engine assets for Unity, check out Unreals large terrain support it's free and out of the box.
     
    Deleted User and frosted like this.
  10. Adam-Bailey

    Adam-Bailey

    Joined:
    Feb 17, 2015
    Posts:
    232
    This sort of giant open world is not a strength of Unity.

    That doesn't mean it couldn't be done, however if you are a single person operation and are not invested enough in Unity yet to have some ideas on where to start doing this, then I would suggest a different engine would be a better choice for this project.

    If you were certain about using Unity, there are various paid terrain generation and streaming assets on the asset store. On top of them, I would be creating different villages/settlements/forts in the world as different sub-scenes and load/unloading them as necessary. With lots of detail in your world you will however run into hitches as different things load in.
     
  11. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    Yes, the idea is find a terrain system with the capacity of multi terrain / streaming the parts , this can reduce the impact of low performance, showing any part if the player is in range, with this aproach i guess unity can handle any kind of large world maps (the showing part is a easy script but the challenge is find the proper framework for create this multi terrains).
     
  12. Adam-Bailey

    Adam-Bailey

    Joined:
    Feb 17, 2015
    Posts:
    232
    Depending on platform that sort of constant loading and unloading could be quite disruptive to the experience. One of the weaknesses of Unity is typically poor performance when loading in new assets.
     
  13. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    Could one not do it on a new thread? is that what is typically done? Does that even make any sense? I don't know a whole lot about it.
     
  14. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    The initial platform for my MMORPG is Windows, Unity are start to evolve in manage threads so i hope unity can generate or can i find / code approachs for get better results in load and unload objects (prefabs).
     
  15. Deleted User

    Deleted User

    Guest

    I'd also recommend Unreal as well for this type of project, I've assisted building an MMO in Unity 4.X and it was a bit of a nightmare..

    From the basics of how frustrum culling is introduced w/ Unity terrain, navmesh is useless (you need a proper re-cast system really (check out A* on the asset store), Umbra is useless as you really need a proper dynamic system like HZB occlusion, Enlighten's GI cache becomes so large at an acceptable quality that it again becomes somewhat useless, phsyics system doesn't hold up well (performance wise) like it does in Unreal plus lacks things like simplex conversion. Mecanim is fine unless you want animation re-targeting, then again the usual way to do it is only use two skeletons for NPC's / players which works fine with generic rigs.

    Unity doesn't handle en mass meshes very well, even with instancing and I've noticed excessive memory overhead from things like LOD. The editor does tend to crawl a lot and it becomes annoying.

    If you want a POO (point of origin system) it's relatively trivial to write some scripts that transform the world around you so you don't hit physics issues but transform speed needs to be better. The last time I tried streaming it seems somewhat "poppy" as in you'll notice sudden spikes if your tile segment is somewhat heavy. In all fairness I've seen this sort of behaviour in AAA games, personally I wouldn't stand for it and Unreal doesn't do it (unless you do something daft) so again there's no reason to accept it. Of course it is up to you to balance out art budgets to minimize this sort of thing anyway..

    Again you'll find none of this in Unreal if you're willing to accept the way it works, although there are limitations to the multi-player functionality you will need to look into. Integrating a third party networking solutions is far more difficult in Unreal, I don't make MP games personally and the other MMO project had a dedicated networking specialist I just learnt a lot from him.. Is it possible in Unity? Well of course it is, technically it's possible in Notepad++ but it will be a lot of work and it really depends on your skill / budget and what level of quality you want..

    If you want high quality I would seriously consider building your own framework on top of Unity with your own terrain system..

    If you find Unreal hard to use you have literally zero chance of making an MMORPG..
     
    Last edited by a moderator: Jun 24, 2017
  16. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    Thanks for the recommendation, I understand the problems, i follow unity before unity 4 and nowadays I am aware of the bugs and the majority of the limitations but i don't like the idea of leave unity.

    I try to find solutions for don't leave unity.
     
  17. Deleted User

    Deleted User

    Guest

    For whatever reason me neither, although after several attempts the only two solutions I've found is make your own terrain system or re-design your game.. I've started splitting segments and turning it into a semi-openworld RPG which plays a lot nicer with Unity, it's still a large game no doubt but it's manageable at least..

    Between Nvidia articles and DX terrain tutorials there should be enough to go on. If you find a better way I'm all ears..
     
  18. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
  19. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,187
    If you feel that's expensive wait till you need to pay for the necessary server hardware to drive an MMO. ;)
     
  20. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    Yes, I am aware of that. But if i can do a really great game, kickstarter or some sponsor (i have interested people but i need results xD) can help me with this (that is the idea).
     
  21. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,187
    If you're after quick results to acquire the funding necessary for actual development I recommend an approach similar to that used by The Elder Scrolls Online. Namely build your prototype in HeroEngine. That way you can focus on getting results in the hands of the investors without having to take a long period of time to do so.

    http://www.heroengine.com/heroengine/heroengine-pricing
     
    Martin_H and Peter77 like this.
  22. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    I writed 12k of line code for my mmorpg game, so i guess i wanna continue with Unity and i like to continue with Unity.
     
  23. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    You're about a month in then? If you're serious about it, go to Unreal as suggested above.
     
    xVergilx and jasonxtate66 like this.
  24. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    I can't understand why the people try to convince others to leave unity.

    This is Unity and we are stay here for make this engine the best not for quit in the first time when we can't do something easy like other engines.
     
    BrandyStarbrite and Farelle like this.
  25. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    I do have to say, straight up telling him to quit using Unity seems weird. It's one thing to say Unity's weak in this area, it's another to tell him to go elsewhere.
     
  26. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,154
    Is it though? Hero Engine is practically designed from the ground up for his exact purposes. If you're going to say "Unity isn't great for this" it only makes sense to go "but here's something that is."
     
    Deleted User, Ryiah and Martin_H like this.
  27. Deleted User

    Deleted User

    Guest

    What seems weird to me is not using the right tool for the job, you don't seem to get these sort of reactions when someone says I switched to Maya or Blender. It's more or less along the lines of good for you..

    I really like QT, doesn't mean I want to replace Unity with it and build an engine from scratch.. If you're serious about developing a game you choose the path of least resistance especially with something like an openworld RPG's / MMMORPG's because without a team of at least a hundred behind your back they are somewhat challenging and lengthy projects (even the basic one's) and you really do not have time to fight with an engine..

    All up for finding solution to issues though, if I can find something better than build your own terrain and slurry of systems I'll be sure to stop by.
     
    Last edited by a moderator: Jun 25, 2017
    Ryiah and Martin_H like this.
  28. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,187
    Like @frosted said you're barely into the project.

    Choosing the right tool for the job is more important than sticking with an engine solely because you like it. If you told the investors you were passing up on the chance to choose an engine that would more easily allow you to achieve your goal, would they still consider backing you?
     
    Last edited: Jun 25, 2017
    Martin_H likes this.
  29. Adam-Bailey

    Adam-Bailey

    Joined:
    Feb 17, 2015
    Posts:
    232
    Engines are tools to achieve an aim. Unity is powerful and versatile however that doesn't mean it's always the best tool for the job.
     
    Onsterion and Martin_H like this.
  30. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    215
    Back to the post topic i decided to go for World Creator.




    Thanks for the advices.-
     
  31. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    (Consider this kind of a reply to @Murgilod and @Adam-Bailey)

    Thing is though, it's never simply "an open world game" or whatever. There are always other things that are part of the game which may indeed benefit from using Unity.

    Is it ever a straight "this engine is the best one for the entire game"? Isn't more like, "this engine is weak in this one feature set you require, but strong in another that you require."

    Sorry for any derailment, OP. Hopefully WC works out.
     
    Onsterion likes this.
  32. Deleted User

    Deleted User

    Guest

    Umm yeah, Unreal is specifically designed with these types of projects in mind.. It has a long history with these types of projects, the company themselves make games like MOBA's and then re-distribute the code / tools back in engine for everyone to use.. As far as top end / large 3D games go it is the most feature complete and viable game engine out there currently (irrelevant of people's opinion on ease of use)..

    For most projects Unity is amazing, can't fault it but for fringe cases like this it's about as useful as XNA and that's not just from reading / comparisons etc. it's from personal experience too.
     
    frosted likes this.
  33. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,085
    I giggled...
     
    Deleted User likes this.
  34. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,187
    Yes. HeroEngine, for example, is designed to cater solely to MMOs.

    Generic engines can definitely fall into this category, but there are two things you need to remember. First, each engine won't have the same number of advantages and disadvantages for a given project. Second, the development time to replace what the engine is weak in for one feature won't necessarily be the same for another feature.

    By the way searching for Unity MMO turns up almost nothing, but searching for Unreal MMO immediately turns up results from well known companies like NCsoft that specialize in MMOs. If they're choosing it there is a good reason for it.
     
    Deleted User likes this.
  35. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    Unreal is specifically designed for MMOs? Specifically designed for open-world games? I doubt these, considering that the engine was first designed for FPS games.

    That said, I certainly see your point, especially with the "history" of the engine at this point in time. Perhaps in a decade or so Unity will have some experience in this area as well.

    Fair enough. I can understand that.
     
    Martin_H likes this.
  36. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,187
    Epic Games China developed an MMO client with Unreal 3 at the core back in 2009.

    http://www.develop-online.net/press...-atlas-technology-rdquo-mmog-solution/0131857
    http://www.mitpressjournals.org/doi/pdf/10.1162/pres.16.2.125

    Fast forward to 2015 and you have Unreal 4 showcasing open world tools.

    https://docs.unrealengine.com/latest/INT/Engine/OpenWorldTools/



    Unity was first designed for GooBall. It wasn't an open world game either.

    http://www.ambrosiasw.com/games/gooball/
     
    Last edited: Jun 26, 2017
  37. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    I understand what you're saying. My point there, though, wasn't that Unreal wasn't currently suitable for those types of games--just that it wasn't necessarily developed for that initially.

    And arguing that if the feature set of Unreal was eventually expanded to incorporate the requirements for those types of games, we might expect the same of Unity (someday).
     
    Onsterion likes this.
  38. Deleted User

    Deleted User

    Guest

    It doesn't matter what it was developed for "initially", it can do them now.. The creators of the engine used UE for massive 3D online games and again re-distributed the code, plus there's many examples..

    Expect someday? Sure, do that and tell me in five to ten years how that worked out, we're still waiting for some of the highest voted features from 2010 so generally the methodology is if you want a feature; you either make it or get it from the asset store.. Money for development shouldn't be a massive issue in these types of games because at bare minimum you're going to want access to source code and a premium support contract (which costs many $$$)..

    You don't wait for features if you're creating a game now. This convo is going the way of utterly pointless..

    I get it, you like Unity.. I like Unity but forbid there might be an extreme fringe case scenario that Unity will heavily struggle with.
     
    frosted and Ryiah like this.
  39. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    I don't particularly like Unity, actually. My experience is almost solely there, but outside of that I have no preference.

    You said something incorrect (Unreal was "designed" for these projects - MMOs, open-world games) and I pointed that out. It certainly wasn't my intention to irk you, especially considering that I conceded the point in my second paragraph in that original reply to you ("That said, I certainly see your point.").
     
  40. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,255
  41. ritarts

    ritarts

    Joined:
    May 23, 2018
    Posts:
    1
    Great comments from all of you...Do you know of any resources that could help me make characters such as this? I am new to all of this, but making a game has always been my passion.i want o make a game for my website https://authorityjob.com .so kindly help me..