Mad Maps is a powerful, integrated collection of tools to solve all of your Unity terrain pipeline needs. It is a terrain pipeline that is non-destructive, extensible, flexible, fast and modular. It’s been battle-tested for the past 2 years in a professional studio environment, used for creating massive open world levels. Battle tested for 3 years in the creation of open-world survival game Hurtworld, Mad Maps is ready to revolutionise how you build your levels.
Mad Maps is 3 toolsets for the price of 1! All are tightly integrated to provide a complete solution to modular level building with the Unity Terrain.
The Terrain Wrapper
The Terrain Wrapper is a layer system for your terrain data that gives you enormous power. Combine, blend and stack layers to get complex results while keeping the data in individual layers intact. Seamlessly integrate with existing procedural generation solutions, and combine your procedural generation with handcrafted polish without ever getting locked in to your procedural work. Organise layers, snapshot and store terrains, create procedural filters, and more!
World Stamps
World Stamps are a tool for copying and pasting any part of your terrain. But it’s so much more than that.
Copy any section of terrain into a stamp, that can be moved, rotated, scaled and saved into a prefab.
Built off the TerrainWrapper platform, so completely non-destructive workflow
Capture Trees, Grass, Splats, Heightmaps, and Prefabs
Blend the stamp however you want onto the terrain - for instance, in the above example, we are keeping both the trees and the splats intact. We could tell the stamp to remove the trees, replace them with it’s own, and write it’s own splats instead.
Blend stamps together in multiple layers, and with complex blend modes.
Mad Maps Roads
This is a complete road tool, for easily creating spline-based terrain modifiers and meshes. Works seamlessly with the Terrain Wrapper and World Stamp system for a non-destructive workflow. Intersection support allows for the easy creation of very complex networks.
This tool is also able to do much more than just roads - such as placing objects and trees along a path, or removing them. Build wires, fences, cliffs and more with this extremely flexible tool. The componentized and flexible structure means that if you can dream of a task that requires a spline, this can do it.
Looking good so far, only issue I’m having is that the MapMagic integration doesn’t seem to compile (missing Layer.ILayer, Layer.ILayered). I made sure I imported the latest version of MapMagic (1.9.1. released on 3/8/2018)
Looking in the MapMagic source, there are a few commented out references to ILayer - it looks like it’s been removed.
Hey Jaimi, yes it looks like the MapMagic integration is targeting the previous version. Shouldn’t take too long to fix, and I’ll post a .zip of the changed files here once I’m done (as well as a new version on the store of course). Sorry about that!
Great news - and no problem. I was looking at weeks of writing something similar, and frankly I’d much rather work on my game. My goal is to generate a bunch of precreated random “interest points” into my MapMagic world, so I don’t have to pin tons of terrains. This was exactly what I was needing.
Cowtrix - While I’m waiting, I’m trying to capture my stamps. I add a terrain wrapper to the terrain, add a layer, and hit “capture from terrain” but I can’t seem to get it to capture splats or details. It does capture the trees, objects, and hieghtmap though:
Hey Jaimi, this is explained a bit here. Basically, for Mad Maps to be able to cross-reference, resolve and merge splats and details across different scenes and projects, it uses an identical configuration scriptable object, instead of storing the configuration in the terrain itself.
The creation of these prototype scriptable objects is a little bit clumsy right now, should be a one-click process in the future. Basically, if you create matching splat and detail Mad Maps Prototypes (Create > Mad Maps > Detail Prototype OR Splat Prototype) and configure them with the same values as on your terrain, they will capture with a reference to that Scriptable Object. This also means you have a central point to manage a specific type of splat or detail, without needing to go and remember to change everything everwhever when you want “grass_3” to be 3 inches taller.
FYI y’all there is currently a build being processed which should fix Mad Maps, as well as improve feedback on Jaimi’s issue.