Search Unity

Map Magic World Generator - a node based procedural and infinite game map tool

Discussion in 'Assets and Asset Store' started by Wright, Mar 10, 2016.

  1. GamePowerNetwork

    GamePowerNetwork

    Joined:
    Sep 23, 2012
    Posts:
    257
    I have the same issue.. but I figured VSPro was a separate module or just wasn't in the beta build. Has anyone been able to use VSPro with MM2?
     
    treshold likes this.
  2. nitoh

    nitoh

    Joined:
    Mar 20, 2014
    Posts:
    30
    Hi Denis,

    I saw the video MM2 Locks. I have a few question about it:
    1. Can I lock a region at runtime through code?
    2. A locked region can survive a full regeneration with new seed and everything?

    Thank you!
     
    Last edited: Apr 18, 2020
  3. Mayhem-McAwesome

    Mayhem-McAwesome

    Joined:
    Oct 31, 2012
    Posts:
    4
    Will MM2 feature a floating origin setup just as MM1 has?

    And if so, could it perhaps have some controls exposed to the inspector so it can be used it in the editor as well? I'm working on a very large scale world here, and floating point accuracy is a big concern with the distances involved.
     
    Last edited: Apr 18, 2020
  4. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    Could you make a video on the spline and the functions? two modules that I cant find any info on what the potential is
     
  5. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    I don't get it. Gaia2 was submitted just a couple of days ago and is now live. Half price too.
     
  6. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    Dont bother with Gaia :) I own Gaia and Gaia Pro. Wont use it. I will be using MapMagic. And am going to get MapMagic 2 as soon as it comes out
     
    transat and mmaclaurin like this.
  7. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    That's interesting, what do you not like about Gaia, it seems very popular?
     
  8. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Biomes6.jpg

    Yes, public demo doesn't have VSPro compatibility. But the release version will have.

    Lock is purely an editor tool. It works on pinned tiles only, and pinned tiles are already generated before the game starts.
    Yes, locked area will remain on a global seed change or even when new graph is assigned.

    Unfortunately no. I plan to make as a module (the free one) or addon included with the free package - but it won't be the part of MapMagic object anymore. It would be a separate MonoBehavior that would just subscribe to MapMagic events. Not sure if this could be made in editor. I'm not sure that changing the scene in editor is a good idea, but I'll see what I can do.

    Sure. I'm currently finishing up with documentation on wiki, and going to record some videos. Have a nice scenario for functions, so I guess I'm going to start with them.
     
  9. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    Well... it is geared more towards creative workflow, and I also find it slowing down unity as well as taking forever to start and stop play mode.

    I know it is popular, I just dont like it. I just find the node based procedural terrain generation that MapMagic has is fare more effective and seems so much more efficient than I have been able to get Gaia.

    All the hype over Gaia Pro made me buy it. It is one of my few regrets I have ever had buying anything on the assetstore. I just dont ever see myself using it again. It was slow, didnt render the tools right in the editor. Sure when it finally ran, it looked nice, but I can get somewhat same results in MapMagic and it runs much faster and I feel more in control.

    My only plea to Dennis and the MapMagic team (if there are more than just Dennis) to start using Discord. If he isnt already, I just cant find a link to it anywhere Ive looked. Build the community closer. Making it easier to come together about MapMagic.
     
  10. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    Yeah, the node based system suits me too and terrains made with Map Magic look more realistic. I also really like the infinite terrain feature in MM. Here is a link to the Map Magic 'discord' page.. https://discord.gg/pTZCt2 It doesn't seem to be very active though. Denis must be too busy coding etc.
     
    Last edited: Apr 19, 2020
  11. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    I have at times used Gaia's splat maps as foundation for MapMagic map generations. Just need to make it read/writable and it works great as a texture import node :)
     
    Daniel-Talis likes this.
  12. GamePowerNetwork

    GamePowerNetwork

    Joined:
    Sep 23, 2012
    Posts:
    257
    That's exactly how I use Gaia and MapMagic together. I do the initial landmark and features stamping in Gaia.. then I move over to MapMagic for the truly procedural side of things. I love Gaia but MapMagic for me is way more powerful for the final stages.

    But both can easily be used together.
     
  13. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Still waiting...
    Objects5.jpg

    I can chat from time to time in a server Daniel-Talis linked, but I don't recommend using it for support channel. I check it quite irregularly, so it's better use email, this forum or IdeaInformer instead.
     
  14. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    While waiting, make videos

     
    Daniel-Talis likes this.
  15. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Saynomore, saynomore, I'm not that sitting patiently refreshing the publisher page :)
    Splines3.jpg
     
    Last edited: Apr 21, 2020
  16. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    That path looks great.. can't see any stretching.
     
  17. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Actually there's a stone and a tree right on a path... Nearly at the center of an image. I wonder if someone else sees them. It's because there was no Avoid node at the time of making this screen.
     
  18. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    Yep I can see them. A bit of grass too. Still, most paths have weeds. :)
     
  19. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Actually, for many asset developers it is. I can't speak to the developers you follow and whatever issues they may be experiencing, but I'm seeing evidence of several developers getting asset update approvals in 24-48 hours.

    Glad to hear the add-on modules are ready, and hopefully the core gets pushed through soon.
     
  20. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    Updates are different than a new asset.
     
  21. GamePowerNetwork

    GamePowerNetwork

    Joined:
    Sep 23, 2012
    Posts:
    257
    Yes, that's for updates... this new asset and all of its modules aren't updates. It is a totally new codebase and a totally new asset submission, which goes through an entirely different review process.
     
  22. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    I can't see why it would make any difference. Either the software works and meets the requirements or it doesn't. Once someone looks at it, it should only take a few hours at the most to give it a pass.
     
  23. GamePowerNetwork

    GamePowerNetwork

    Joined:
    Sep 23, 2012
    Posts:
    257
    Who knows. I don't know Unity's review process. All I know is that new assets are now taking longer since Covid-19 hit.
     
  24. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    Yeah, people working from home may be slowing the process down. (distractions from squabbling kids etc.) :)
     
  25. daschatten

    daschatten

    Joined:
    Jul 16, 2015
    Posts:
    208
    I'm working on a few nodes for MM2 (mostly DOTS based for my game) and wonder how the loading works. Map Magic has its own assembly defs, my node scripts, too. In my old beta the nodes are not recognized my MM2 because i can't add a assembly ref from my nodes to MM2 and from MM2 to my nodes, would be cyclic. Does the final version some advanced loading with the help of reflection or something so new nodes could be found across assembly defs? I would like to avoid putting them in MM2 folders...
     
    Lars-Steenhoff likes this.
  26. ScottKane

    ScottKane

    Joined:
    Aug 24, 2019
    Posts:
    81
    Hi Denis, when you integrate MapMagic 2 with Voxeland could you do some form of Voxeland VS Pro Output so that we can still output to VS Pro if we use MM2 with Voxeland? Thanks
     
  27. Mnlk

    Mnlk

    Joined:
    Jun 2, 2017
    Posts:
    3
    In the latest beta, you can do something like this in your assembly to add your generators to MM2:
    Code (CSharp):
    1. var types = typeof(Generator).Subtypes(); # all generators accessible from current assembly
    2. foreach (var type in types)
    3.   if (!MapMagic.Nodes.GUI.CreateRightClick.generatorTypes.Contains(type)) MapMagic.Nodes.GUI.CreateRightClick.generatorTypes.Add(type);
     
    camta005 likes this.
  28. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Objects6.jpg

    If you are using Unity 2019.2 or later, you can use assembly reference files. Create one in a folder with the custom nodes, and set a reference to MapMagic assembly. This way this folder will become the part of MM assembly, but not MM package.

    I'm going to renew Voxeland after a while. Among other things make a voxel module for MapMagic (that will come with Voxeland) - it will bring a new object like map/objects/spline - a voxel map, and voxel map generators. Still it's just a plan and I don't know ETA for this.
     
    Daniel-Talis likes this.
  29. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    Just watched the 'MapMagic2 Locks' video and it gave rise to a question.
    Is it possible to create a locked area such as a village on a tile and have this repeated on other tiles of an infinite terrain? So, each tile has a village automatically existing at some random position.
    Or simply put, is it possible to have a village on each tile of an infinite terrain at a random position?
     
    Last edited: Apr 24, 2020
  30. daschatten

    daschatten

    Joined:
    Jul 16, 2015
    Posts:
    208
    Yep, but i can't add further assembly refs, can i?
     
  31. daschatten

    daschatten

    Joined:
    Jul 16, 2015
    Posts:
    208
    Finally found the GUI namespace, it's in the MapMagic.Editor assembly. This wouldn't work when using runtime generation.
     
    Last edited: Apr 23, 2020
  32. kmldev

    kmldev

    Joined:
    Jan 8, 2018
    Posts:
    2
    Does anyone know how to use MapMagic on a headless server? The terrain generation works fine for me on clients and the in-editor server but i'm getting null references to the terrain on the headless server for some reason.
     
  33. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    why do you need the server to know the height? you could just have the server do the coordinates. It does not need to know what things look like. That is a very inefficient server setup. It should not need to render anything.

    Though I am not sure what you are trying to do.
     
  34. daschatten

    daschatten

    Joined:
    Jul 16, 2015
    Posts:
    208
    For server authoritative movement the server needs all the height information. Even if the server has textures a headless won't render them.
     
  35. sharp911

    sharp911

    Joined:
    Apr 16, 2010
    Posts:
    28
    you could do what I have seen some authoritative servers do is only do x and z. And the client does the y on its own. Now this works for some cases and not others. Again, all depends on what you are wanting to do. In your case, it sounds like it wont work.
     
  36. kmldev

    kmldev

    Joined:
    Jan 8, 2018
    Posts:
    2
    Yeah I need the height info for server side spawning and movement at the moment. I'm building a navmesh at runtime on the server too which needs the terrain data although i'm not sure if it will be viable because it's a bit slow.
     
  37. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,560
    Thanks for creating MapMagic Denis, I really like the work flow and I am excited to get Map Magic 2 when its ready. I really hope it will work on Mac. I thought Id share my game trailer, using MapMagic of course, and MicroSplat from Jason (another great dev):) Please know that many of I am very grateful what you have shared with the world building community.

     
  38. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    Quite remarkable.
     
    protopop likes this.
  39. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    It finally happened!

    MapMagic 2 is finally at the Asset Store!

    CoreCover3.jpg

    I welcome you at the new thread, to save the new users from reading nearly 100 pages devoted to the older asset. Here you can find the summarized information and the Asset Store links. See you here soon!

    Breath of the MicroSplat and MapMagic :) Looks really exciting, feel free to publish it in a new thread - even if it's made with MM1 :)

    Why, you can. It's assembly reference, it's not an assembly definition. It's just the way to declare that this folder is part of the assembly X.

    It is just MapMagic, not MapMagic.Editor. It's inside MapMagic/Core folder.

    I might guess it's because you have no camera in this scene. You can use other objects instead, for example players with some tag. Just enable in settings Generate around -> Objects with Tag and select this tag in a list.
     
    Last edited: Apr 24, 2020
    protopop, GamePowerNetwork and ConAim like this.
  40. ConAim

    ConAim

    Joined:
    Jan 17, 2017
    Posts:
    16
    2 major errors on MM2:

    GraphWindow.cs line 825 need to check null..
    =>
    Code (CSharp):
    1. if (mm is MapMagicObject)  GraphWindow.Show(mm.graph); //else warning
    and/or add a new menu Item to all Map Magic Object to selected terrain..

    TileManager.cs line 127, in the case Scene View is not open..
    Code (CSharp):
    1.                 #if UNITY_EDITOR
    2.                 if (!UnityEditor.EditorApplication.isPlaying)
    3.                 {
    4.                     if (UnityEditor.SceneView.lastActiveSceneView != null && UnityEditor.SceneView.lastActiveSceneView.camera != null)
    5.                     {
    6.                         camCoords = new Coord[0];
    7.  
    8.                         Vector3 sceneCamPos = UnityEditor.SceneView.lastActiveSceneView.camera.transform.position;
    9.                         Coord sceneCamCoord = Coord.Floor(sceneCamPos.x / tileSize, sceneCamPos.z / tileSize);
    10.  
    11.                         if (camCoords == null || camCoords.Length != 1) { camCoords = new Coord[1]; coordsChanged = true; }
    12.                         if (camCoords[0] != sceneCamCoord) { camCoords[0] = sceneCamCoord; coordsChanged = true; }
    13.                     }
    14.                 }



    Then all will work as expected... Good stuffs...
     
    Last edited: Apr 24, 2020
    protopop likes this.
  41. psistalk

    psistalk

    Joined:
    Sep 23, 2013
    Posts:
    68
    You find out if they accepted the new mm2 packages yet? I in line waiting to get them all.Is there more details on the other packages and how they work? I would love procedure roads between Point of interests.
     
  42. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Thanks for your findings! But could you please clarify when does the first one occurs?

    Yes, all of 3 additional modules are available at the asset store too. You can find their links in the new thread.
     
  43. ConAim

    ConAim

    Joined:
    Jan 17, 2017
    Posts:
    16
    I installed in 2019.3.11f (latest new installation)...
    - .NET 4+ or else more issues.
    - 1st, It is occurs rite after download the all the package, and create new project, new .scene, 0 terrain thus "mm" is null on GraphWindow.cs,
    - 2nd, during that time scene view is not open thus 0 camera in the scene view and errors will pop on TileManager.cs.
    - 3nd, MM1 have to be fully deleted because if you intended to install it together also with MM2 then there will be some files conflicts.
    - 4th, there are some .asmdef issues dues to too many .CS folder locations so I dump them all to ../Tools.

    --------




     
    protopop likes this.
  44. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    Thanks for reporting those issues!

    Could you please clarify what these issues are?
     
  45. PHeimann

    PHeimann

    Joined:
    Feb 13, 2020
    Posts:
    6
    I just got MM2 and try to texture an island but cannot find any method to restrict the grass output to above water level. This also implies that when using the grass as mask for trees, trees are growing under water.
    The MM2 packet is also missing the char controller that was available in MM1. As already mentioned earlier the shore generator is also missing.
     
  46. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,276
    You might be trying to follow the MM1 island tutorial with MM2. It's not relevant for MM2, despite of some basic principles will still work. Here you can find the list of MM2 videos.
     
    protopop likes this.
  47. ConAim

    ConAim

    Joined:
    Jan 17, 2017
    Posts:
    16
    I forgot, but trying removing them all then reinstall on a brand new setup and you will tracing it down...

    Also, another bugs found...
    #5, On HDRP, when add a CTS node you will get error on casting since CTS guy switch CTS.CTSProfile to ScriptableObject on the new version. Thus you need to switch your also...

    on MapMagicObject.cs
    from
    public UnityEngine.Object ctsProfile;
    =>
    public UnityEngine.ScriptableObject ctsProfile;
    or whatever complex if/then/else as...cast..

    <Edit>
    And
    #6 TextureOut.cs, out of bound when add layers to CTS nodes.


    from
    values[channelNums[m]] += val;
    =>
    if(channelNums[m] < values.Length) values[channelNums[m]] += val;

    Fix that 2 and CTS 2019 will work well with MM2...



     
    Last edited: Apr 24, 2020
  48. PHeimann

    PHeimann

    Joined:
    Feb 13, 2020
    Posts:
    6
    I used the Forest node in MM2 to generate trees and get the following error:
    Error.PNG
    Switching multi threading off, does not help.
    Forest.PNG
     
    goonya likes this.
  49. DougieJones

    DougieJones

    Joined:
    Aug 15, 2018
    Posts:
    10
    Glad we get 50% discount for owning MM1

    I wonder if this new modular structure announces plans for more modules coming up like with Microsplat for instance.
     
    Last edited: Apr 25, 2020
  50. camta005

    camta005

    Joined:
    Dec 16, 2016
    Posts:
    320