Welcome to the first of many SimplePlanes 2 dev blogs! We're going to be doing one of these about every couple weeks or so, sometimes more. Each one will showcase a multitude of features focused around a central theme. For this first post, the central theme will be on the map. We've got quite a lot to cover here!
Real quickly though, if you want to see individual segments of these dev blogs several days early as they're written, check out the #showcases channel in our official Discord server. We'd love to see you there :)
With the preamble over with, let's get into the exciting bits :D
The Main Islands
Something players love to do in SimplePlanes is zoom by at insane speeds, but our islands have always gone by in a blink. For SP2 we want to address many of the most common criticisms we’ve received and push things further than ever before. The new archipelago spans almost 800 km2 of highly detailed terrain both above and below the water, so even if you get the zoomies you’ll be flying over cool terrain for a little while before you find yourself lost over endless open ocean.
The archipelago consists of three main islands: on the Northern end there’s Vetusta Island, on the South there’s New Yoke Island, and separating them you’ll find Middleton. Each one is trapped in its own metaphorical time bubble, leading to very different vibes from one border to the next as you’ll get to see in future showcases.
For these new islands we tried to find a good balance between realism and terrain features that are impressive to look at while being fun to explore. In order to achieve this we have used a set of advanced tools to generate the terrain that combine the power of procedural noise, realistic erosion simulation, and high artistic freedom over the main landmass.
In this image you can see the full archipelago in its various stages as we first lay down the noise, then remap it and paint some canyons, ravines, and islets around, applying multiple erosion and weathering simulations on top of it and finishing it off by adding snow, rivers, and a few final touches before painting the different terrain textures using information from all the previous steps, such as the soil deposition and amount of erosion.
Now let’s talk about some of the tools we’re using that allow us to make our terrain look way better than before.
One of these tools is a terrain shader called MicroSplat, by Jason Booth. Without boring you too much with babble, what MicroSplat allows us to do is give our terrain more and better PBR textures along with advanced rendering techniques, all while being super performant.
For SimplePlanes 2 this means you’ll see better looking and more varied terrain than in our previous games, with more detail and without hurting performance too much.
Another big step up in visual quality that we can now take advantage of is heightmap-based texture blending. In our previous games when two textures interacted with each other they had a smooth blend of color and texture, but now the details of the rougher textures can sneak through the cracks as the blend happens, independent of the terrain resolution.
A big element that didn’t age well in SimplePlanes was how stretched some of the textures would get whenever we had a tall cliff or canyon. In SP2 we can now take advantage of a technique called Triplanar Mapping, which samples the texture from up to 3 different angles depending on its slope.
Probably one of the biggest limitations when it comes to large organic features is that the textures used result in very obvious tiling patterns as they get repeated over and over across the surface. To combat this we now have Stochastic sampling in our arsenal. At the cost of a few extra texture samples what this does is it rotates each tile at random and height blends them, entirely removing the visual tiling.
Vegetation
As you’ve definitely seen by now, the map is covered in trees. Not only does this help make the game prettier, it also provides a really nice (and necessary) sense of scale. Another benefit is it helps make low altitude flight feel more dangerous as the trees have colliders, which will ruin your whole day if you clip your wing while trying to be a showoff
The main limiting factor for having a lot of vegetation is that models that look good for trees require a lot of geometry, and with how large our map is we need a LOT of them. Games usually get around this by having what’s called Levels of Detail (LODs), so as things become smaller on your screen, they switch to simplified models and sometimes even to a flat image. But simplified geometry is still too much geometry for us (despite the name of the game), and flat images look really bad as you fly by. So, what now?
Once again, the huge ecosystem of tried and true assets Unity provides is of great help, with two really good tools in particular being very handy: GPUI and Amplify Impostors.
The first asset improves how the data for the trees flows between the CPU and GPU in a similar fashion to what Parallax does in Juno, but without the extra complexity of having a spherical planet with procedural terrain.
The second creates a texture that morphs depending on the view angle, faking the illusion of depth in what can only be described as magic. We collaborated with the Amplify team to test their 1.0 release for the Impostors shader to help us have zero compromises when it comes to foliage. Believe it or not, the trees in this gif are a flat image with some shader trickery!
Another huge challenge to overcome for a map the size of ours is figuring out how to place down the trees. Planting one by one may be meditative, but ain’t nobody got time for that. For this task Jason Booth comes back to the rescue with another great tool of his, MicroVerse.
This swiss army knife covers most of the flaws from the insanely underwhelming terrain tools Unity provides, and works hand in hand with MicroSplat to let us do non-destructive tweaks to the islands’ geometry, textures and vegetation interactively. For example, we can just ask it to place trees anywhere with grass, limit it to a certain altitude and slope, adjust the density and call it a day. Or even add patches of trees on demand in certain areas, in the screenshots you can see how inside of the yellow lines there have been trees added, and the blue lines are painting the terrain in dirt, and even carving it.
Caves & Rivers
When you think of a large sprawling landmass many things come to mind, but I bet none of you thought of caves. Yup, that’s right, we’ve done it! Now you can go hide in a hole underground just like IRL and never see the light of day. And maybe, just maybe, leading into that hole underground is a waterfall. Believe it or not, we have one of those too!
Caves and rivers have both been highly requested features in our previous titles, but they’ve been practically impossible for us to actually implement, the caves because we couldn’t do actual holes in the terrain, and the rivers because the water could only be at sea level.
For SimplePlanes 2, though, we’ve actually been able to do it. We’ve got rivers that aren’t just flat streams of water; they flow above the sea level, and we have a giant cave you can not just explore but even fly through, if your skills allow for it.
Roads
If we’re going to have such a large map, we need a way to get you to move from one end of an island to the next, besides just flying around or having to go offroad.
To achieve this, we’ve made a huge network of highways, roads, and trails, spanning over 300 km in length across the map. If you want to get in a car and drive from one end of the Archipelago to another on a road, that’s totally doable. If you want to get lost in the mountains following a winding trail, we also have you covered – no driver’s license required, but you better get insurance.
With the help of Microverse all these roads merge with the terrain, change their textures, and clear the trees, allowing us to go crazy without having to worry about laying down asphalt by hand, even for racetracks that seamlessly blend with the environment.
That does it for the first blog! Once again, if you'd like to see segments of these posts early, join our Discord server. Thank you for reading, we'll be back soon with more.
I'm glad to see these. I'm trying to recreate the Xichang Satellite Launch Center using Planet Studio. It has complex ground undulations, a river, and mountains full of trees, which fully meet my needs. I believe many players, including myself, hope that these features can be implemented in Planet Studio. Please, even if it takes time to implement them, please include them in the update plan