We wanted to do a big update, but we knew we had to limit the scope so that it would ship this side of next century. There was a huge ideas bucket but we need something to focus on. Instead of thinking about features we started thinking about usability and workflow. Could an artist use our product? What if I were a Scene Designer? How about a veteran coder or someone just starting out with Unity? Seemed like all these people had different abilities and needs. The question was, “How could we address all this in just one release?”
Landscape Builder 1.4 already had some pretty strong features so we decided we’d retain backward compatibility while injecting new life into some old concepts. We wanted to enable people to upgrade their existing projects so that they could immediately begin taking advantage of the new features.
One area of our product had potential but was under-developed. Terrain modifiers had been developed prior to our Topography Layer system and had suffered greatly from allowing users to make ad-hoc changes that weren’t reproducible. We’d talking about giving it a major makeover for more than six months. It was now time to integrate modifiers into the Topography Layer system. The new Topography Image Modifier Layers had to be both visually appealing and functional.
The next area was erosion. We spent days researching, reading scientific papers and testing concepts. I’m pleased to say that thermal erosion made it into this release. Hydraulic erosion is still a work in progress. Our implementation of hydraulic is functional within certain parameters but we felt it wasn’t polished enough to make into a release yet. We learnt in earlier versions of Landscape Builder that releasing a feature early wasn’t the best approach.
Having a Beta Program has really helped us to shape our asset. For Landscape Builder 2, we even shipped alpha builds to some customers (thank you to all those people that invested their own time in helping to improve our product).
The biggest feature, by far, was the new Groups system. We literally spend hundreds of hours on it. We had a massive wish list (both from customers and internally), and I have to say all but a few items made it into this release. I figured if I didn’t want to use it, then neither would customers. I discovered this was a great way of assessing when the feature was ready for release. Sure, it had to be bug free and do the stuff on our wish list (which btw seemed to grow each day), but did I, personally, want to use it regularly? That was the question.
For those that haven’t seen the new Groups system in Landscape Builder, it is essentially a way of procedurally placing objects on terrains. These objects can be simple static prefabs like rocks, poles, or buildings, or they can be prefabs with scripts – like roaming animals or AI bots.
Although you could already do this in LB version 1, it was difficult to control how groups of objects were placed in relation to each other. And you had to manually enter the placement rules. What if you want to scatter procedurally generated villages in your landscape? What about rocks with surrounding flowers and trees? How about several flocks of AI sheep spawned only in grassy fields?
We wrote a whole new procedural placement engine that actually got faster the more objects were placed in the scene. We needed to create our own editor controls like the logarithmic slider and an in-scene visual 3D Group Designer.
Customers told us they wanted more videos rather than written content, so we shipped with 5 new video tutorials while a sixth was added a few days after release. Typically, it takes us 4-6 hours to produce a 15-minute tutorial. We discovered creating these tutorials helped us too as it often revealed bugs or “must have features” which forced us to improve our product prior to release.
We decided not to ship a bunch of models and prefabs with the Groups system. Instead, we did all our videos with the excellent assets from the Unity Viking Village demo project. Sometimes we added other assets like Advanced Rocks by Nature Manufacture from the store. We figured that most people building a scene would either be using their own models or ones purchased from the Unity Asset Store. Adding our own models to LB would distract us from our core goal of shipping the best landscape building asset in the store.
We have supported runtime generation of multi-terrain landscapes for some time. However, much of it had to be hand coded – which wasn’t great for beginners or even time-poor veterans. Most coders probably fit into one of those two categories. Beginners don’t know how to do stuff, while the rest of us have a million other things on our to-do lists. So, we put more effort into making more consistent code generators which write much of the code for people. Naturally, this had to work for new things like Image Modifier Topography Layers and the whole Group system.
This major release of Landscape Builder has been a lot of work, but we think it will be worthy addition to the Asset Store and your game development toolkit.