Landscaping: Importing & Streaming Tiled Terrains

Completely out of the blue, here’s something I’ve been working on for the past month or so that might interest you:

Landmass Screenshot

A test landscape for the system

The above landscape might seem like a single, solid piece of geometry, but it isn’t. Instead it consists of many smaller peaces that are seamlessly stitched together as you move through the world.

How does it work? The import tools takes chunks of heightmaps, splatmaps and any other relevant maps, and loads them into Unity. The streaming system dynamically loads and unloads these chunks around the player.

The view from up really high

What’s so cool about this? It allows games that use it to have much larger areas of play! The system only loads the parts of the level it needs, while the rest just sits on your hard disk. Now, it won’t quite give you the whole surface of the earth to explore, but you can certainly spend ages walking towards a far stretching horizon of a level.

The test level I’m working with right now uses heightmaps with a 1 pixel-per-meter resolution to form an island of about 16 square kilometers. The individual chunks have either 1 or 2 splatmaps assigned to them, with 4 channels each. Compressed on disk this results in a package of around 200MB, so a full game could have a lot more of it. Plus, a game like Volo could easily manage with a 2 pixel-per-meter resolution, doubling the potential size. I have yet to explore the idea of having different map resolution for different tiles, but such a thing would make sense for chunks of terrain that you don’t expect the player to get close to.

Both the importing and streaming system are built to be highly configurable and extensible. More on this later, but right now I’m interested to hear what other developer would want from this tool, so I can make sure everybody’s happy. If you have any suggestions: Let me know!

An early snapshot of the editor, to be overhauled later.

Note: I was originally developing these systems for Creath Carter, a fellow indie developer. He has kindly let me develop this into a tool I can use for Volo and sell on the Unity Asset Store as middleware. The terrain meshes in the above screenshot were generated by him using World Machine. The textures and engineer character are some default Unity assets.

  • Great!!

  • Joel

    That looks sweet, especially if its implemented into Volo since I’m super excited about that game but my PC isn’t the greatest in the world. Loading the terrain in segments would surely help people like me out. By the way, your Youtube channel has been a little quiet. I’m sure you’re busy, but regardless of how much you’ve actually changed in the game, I’d love to keep seeing some Volo action once in a while!

  • Tim

    Goed om te zien dat je weer wat blogt! Keep up the good work, spreek je snel maat!

  • Isaac

    so, the game developement was stopped??
    please respond
    sorry for my bad english..

  • George

    Russians boys w8ing you great skydiving simulator, its gr8 anyway. Good job.
    Tell me about configuration that simulator works. how about beta-test ? i think it was gr8 start.

  • Magiguy101

    I think it was a gr9 start. So there. 😛 looking good 🙂

  • devilwarriors

    So what happened to this tool, can’t find it on the asset store.

    • I stumbled into a bug in Unity which meant I couldn’t stream in the terrain assets without big hickups in the framerate. That was a year ago though, I’ll look into it and see if it’s a viable idea again. 🙂