Map Graph – Node-based Random Map Generation

Map Graph is the plugin for all of your level generation needs.

Map Graph is more than a procedural level generator. It doesn’t just provide you with a single level generation solution, with limited customization options. Instead Map Graph offers you the tools to easily create your own level generators, opening up a wide range of customizations and enabling you to create your own unique level generators, that perfectly suit the needs of your own unique game.

Map Graph is now available on the Asset Store!

WebGL: Demo Project

https://www.youtube.com/watch?v=Kr1NIlCQiTE

️__Features__

• The visual node-based editor makes it easy to create your own level generators by dragging, dropping and connecting nodes. No coding required.

Preview images show the result of each node, allowing you to easily see what’s happening and to make quick adjustments, so you end up with the exact level generator you need.

• With over a 100 different nodes at your disposal, you can completely customize your level generators.

• Generate levels in the editor or at runtime.

• Generate game objects from prefabs or tilemaps.

• Create your own reusable subgraphs.

• Includes a sample project consisting of 16 examples.

• Includes extensive documentation, containing tutorials, a complete node index and API reference.

Features for coders

Easy to use API, to generate maps from scripts.

Easily extendable by writing your own custom nodes.

Source code included.

Map Graph is available here on the Asset Store!

4 Likes

Here’s a new map generator I made with Map Graph. It generates world maps in the style of a treasure map. Though I can feed it any set of sprites I want. :slight_smile:

The tileset I used was created by Kenney. You can check it out here! → Cartography Pack · Kenney

2 Likes

Here’s another generator I made with Map Graph. This one generates cave-like dungeons. :slight_smile:

The tileset was made by Buch and can be found here: A blocky dungeon | OpenGameArt.org

This one generates a little village and some surrounding forest and farmland.

This tileset was made by ArMM1998. Check it out here! → Zelda-like tilesets and sprites | OpenGameArt.org

I wanted to make something that’s a little different this time, so I created a starmap generator.

Graphics were made by Rawdanitsu and Kenney.

You can find them here:

1 Like

I turned the examples into a demo project that will be included with the asset as example material. :slight_smile:

You check it out a WebGL build of it here: Map Graph - Demo Project by Insane Scatterbrain

Map Graph’s first release is almost done! :smile:

Please check out the feature showcase video!

Map Graph is now available on the asset store!

I’m doing a 50% off release sale until 11/11/2020! :slight_smile:

Hi, I’m testing your asset for use in one of my games but I can’t seem to find out how to delete nodes in a graph? In your manual the key to press is also strikken through?
I’m working a mac Catalina and using Unity 2020.1.11f1

6471587--726392--GraphNodeDelete.png

Oh, that’s weird! It should say: “Press the DEL key on your keyboard.” I’ll fix that asap. Thanks for letting me know.

Sorry about that! Let me know if you need more help!

Thanx for your quick answer!

I found out I needed to change my unity shortcuts for the delete key. The default forward delete key mapping doesn’t work on my mac which is weird since it works fine in all my other programs.

Now I can finally delete all those unused and un-deletable nodes :wink:

That sounds a bit inconvenient, I’ll see if I can bind both forward and backward delete, so both of those can be used to delete nodes. And I’ll add a Delete option in the context menu, in case all else fails. :wink:

Thanks a lot for the feedback! I don’t own any Apple hardware so this is extra useful information for me. :slight_smile:

1 Like

The new version is online.

Both backspace and delete (I assumed those are the equivalent of forward and backward delete on a Mac ;)) will now delete selected nodes in the Map Graph editor. I also added a “Delete” option to the context menu that does the same thing.

I hope this makes it a bit more intuitive to delete stuff, especially on a Mac. :slight_smile:

@InScatterbrain Hi, I am currently using Karcero for a RPG project i’m working on. It works well, but I had to adapt the system for use in my game and write wrappers/translators to do so. Do you think Map-Graph could be used to generate something like this? Asset looks really cool btw.

I’m not familiar with how Karcero works exactly, but getting similar results is certainly possible!

In fact, I’ve used an earlier version of Map Graph to do something similar for a game jam game I made with a friend of mine. (It’s a 3D first person game, so it’s a bit hard to see the exact result, sorry :roll_eyes:)

In Map Graph the approach would be to use the BSP (Binary Space Partitioning) nodes to generate rooms in addition to nodes to connect those rooms together.

There isn’t an example that uses the BSP nodes included in the sample project yet (I will add one in the near future), but I’ll gladly help you set things up!

2 Likes

@spryx I’ve added a new example to the sample project that uses the BSP nodes. There’s a web build of it here. You can see this example by selecting “Roguelike Level (Rooms)” in the dropdown at the top.

Is this close to what you’re looking for? :slight_smile:

The new example will be included in the next release.

1 Like

Would you willing to make compatibility with TileWorldCreator?
Actually I am making a 3d tile game using TileWorldCreator.
It seem that your Map Graph support Generate 3D Map.

Maybe, though I’m not familiar with TileWorldCreator.

Could you explain what you’re trying to accomplish and what kind of interaction you’d like to see between Map Graph and TileWorldCreator? :slight_smile:

Map Graph v1.1 is now available.

Changes:

  • Added a new example to the sample project to demonstrate how to create rectangular shaped rooms using BSP nodes.

  • Added checks before running a graph to output more specific error messages whenever an input parameter is unassigned or port need to be connected, instead of the generic NullReferenceException messages.

  • Added the “Skip Checks” option to the Script Graph Runner component. When enabled the newly added port and input parameter checks are not performed.

  • The graph view no longer gets rebuild completely each time a node is added or removed. This would make the graph editor unresponsive for a short moment. This was especially noticeable for larger graphs.

Check out the complete changelog here.

I was made aware today of a bug with the sample installer. If you try to install the samples in a project based on the 2D template, it might fail with a bunch of errors and the map generators won’t work correctly.

Luckily, it seems easily fixed by restarting Unity afterwards.

I’ll look into this issue and will fix it for the coming release. In the meantime, if you run into this issue, please be aware that you might need to restart Unity for the sample project to work!

If this workaround doesn’t seem to work for you or you run into any other issues, please don’t hesitate to let me know!