Skywatch #4 - Islands in the Sky
Welcome to this weeks Skywatch! Today, we want to give you a look at our UGC tool - the Island Creator. This post features a lot of technical insight and dev speak, since the Island Creation tool is quite complex, but the result is ultimately beautiful and unique islands for our players to explore!
Our Island Creator will let players create their own content, in the form of floating islands. It's an extremely powerful tool, that's essentially a 3D geometry sculpting program, which will let you build your own islands from scratch! It's the same tool that our own developers use to create islands to populate our game world with.
Working off of a base of the Worlds Adrift Island Creator, we're updating the tool for Lost Skies, with a host of new features and assets. In the clips below, you can see some of the work that's been done on the Island Creator UX, as well as a couple of features that are being updated to speed up the island creation process: selection filtering and ghost objects.
Selection filtering allows you to filter specific assets for placement/editing and includes lockable assets to allow an easier way to work on or replace certain asset groups. This is mostly useful for us internally as we update old Worlds Adrift islands for use in Lost Skies, since we require faster selection of older assets to replace with newer ones. It will also be useful for our community Island Creators too though, as it will speed up bulk asset editing.
The ghost object feature allows you to clip assets inside of each other/inside geometry to achieve your desired aesthetic.
The features shown above required updating, owing to us moving to Unity's High Definition Render Pipeline (HDRP). For example, the old Worlds Adrift Island Creator had similar ghosting behaviour to what's shown above, but it no longer worked correctly for Lost Skies following the switch to HDRP, so the entire system needed to be updated. The ghosting feature is an asset preview which can show you what would be placed, but also what would potentially not be visible during gameplay - the clipping. The section at the end of the ghost object video shows the system as a whole and it's flexibility.
Moving on, below you can see a first look at some of the early work we've done on our weather systems - we'll go more in-depth about our weather in a future blog post, but dynamic weather will play a big part in Lost Skies, and challenging weather walls will separate the different biomes you'll explore. In the clips below, you can see some of the cloud colour tests we've been working on, as well as texture sampling and experimentation with different weather effects.
In the gif below, you can see some of the weather wall effects we've been experimenting with (VFX not final). When you cross into a weather wall in Lost Skies, the game will actually utilise a separate visual effect, which takes over from the cloud renderer. This allows us to customise turbulence, different colours etc. for our weather walls independently of the rest of the clouds, allowing us to make the weather walls far more interesting.
In the clips below you can see some more of the early work we've completed for our clouds, as well as the initial implementation of clouds and time of day into the Island Creator. These clips are from early on in the games development, hence the old character model in the Island Creator clip, but hopefully they give you an idea of the importance of clouds in Lost Skies.
Unlike most games, where the clouds are part of a "skybox" (a static image or looped VFX purely for immersions sake), the clouds in our game are dynamic, which means they behave realistically and have an impact on gameplay. For example: some islands may end up shrouded in a thick bank of dynamic fog, which will conceal them from view - as the game day progresses, that fog may clear up, revealing islands that had gone undiscovered until that point. Dynamic weather plays a much larger role in Lost Skies than it does in most other games and we'll share more specifics about our weather systems in the future!
Our Island Creator will reuse some of the older graphical assets from Worlds Adrift, as well as entirely new assets being developed exclusively for Lost Skies. Due to the difference in artstyle between Worlds Adrift and Lost Skies, any re-used Island Creator assets need to be updated to better match the current aesthetic, which is quite a time consuming process. Below, you can see some of the older Saborian assets from Worlds Adrift that have been updated for the new Island Creator, as well as some brand new assets.
In the image below, you can see some of the texture and shader updates for one of the older Saborian ruin assets, focusing on using base tiling textures across multiple assets to reduce memory costs, and adding detail with vertex colours.
Below are some of the forest and flora assets we've been working on. Like all island assets, these can be placed freely by island creators, allowing them to set dress their islands however they like.
And below are some of the new rock assets the team has been working on. The clip demonstrates how the rocks can be scaled up and down, as well as clipped inside one another using the ghosting feature detailed above, to create larger rock formations.
The images below show some of our forest floor textures, with exposed roots and dirt. The left image shows the texture when dry, and the right hand image shows how we can apply a "glossy" effect to simulate wet ground during rainstorms.
And the following images give a first look at the abandoned campsite island assets our team have recently been working on, from concept phase through to the current model progress. The idea behind these, is that players will be able to stumble across old abandoned campsites left by survivors of the cataclysm, who's fate remains unknown. These survivors eventually had no choice but to cannibalise their skyships to make shelters on islands, which is why the assets borrow heavily from skyship parts.
We've shared the following clip in a previous Skywatch, but it's relevant here too as it shows off some of the asset work in progress: adding some Saborian pattern designs to the wall assets. We're using projected textures to keep the detail size consistent when the asset is scaled to different sizes.
Now on to some of the more technical stuff that's behind our Island Creator. The video clip below is perhaps not the most exciting of videos, but it demonstrates our Agnostic Object Serialiser. This system allows islands and other prefabs to be serialised from Unity at runtime, and then de-serialised into the game or other tools.
The serialiser will export a Unity gameobject and all of its child objects along with meshes, materials, embedded or referenced textures and components like colliders, LoD groups etc. into a custom file format that's completely free of Unity.
The clip below is an overview of our cave detection system, which has been designed to automatically find and tidy up orphan caves, that may have either been missed or unintended during the island terrain generation, that could prove problematic to gameplay.
In the clip below, you can see the early work for our more advanced island rendering system.
This system allows us to sample terrain layers, better blend assets with them, define procedural asset scattering, and most importantly, render more assets.
Because we’re not using classic “2D Terrain” like most games, we’ve invented new problems to solve for ourselves.
The image below showcases more of this system, with small rocks now "knowing" what colour they are sitting on. In isolation, not particularly helpful, but useful for terrain and asset blending later, which we'll detail below.
The image below demonstrates the terrain blending process that stems from the advanced island generation features shown above. This shows per-patch colour matching between our debug terrain colour and the grass.
This also means we have a viable pipeline between terrain mesh data and assets/positions on the terrain. This all sounds quite technical, but it basically means that assets and foliage that are placed on an island can inherit aspects of the terrain that they're placed on - this was fundamentally the first step in allowing us to create "sub-biomes" on individual islands (regions of an island that differ from the overall biome, e.g. forest scenes in a temperate biome).
And the clip below demonstrates this again, with vertex colour sampling per grass patch and instanced indirect geometry.
Once we switch from our debug terrain to the actual base ground texture, you can better see how the base of the grass inherits the colour from the terrain it's placed on, as demonstrated in the clip below.
All of this comes together to make grass like that shown in the clip below possible. You can see some of the Island Creator controls for grass height and density in effect, as well as how the grass behaves in the wind.
As an aside: the image below demonstrates how we're using CPU-side terrain ID sampling, based on the same logic as the island material. This allows us to quickly sample the terrain type, meaning we can have a number of game systems potentially being driven by terrain information.
The images below show some of the early work on island tessellation testing, where the team was experimenting to see how more detail could be added to island meshes.
In the first clip below, you can see more terrain blending in action, as well as texture scaling, layer blending and new shader parity.
The second clip demonstrates grass being added to the terrain dynamically. The fade out allows you to see what you’re doing whilst editing an island. This dynamic flora gives us options for different sub-biomes and procedural foliage options e.g. flowers.
We're also focused on adding different shaders into the Island Creator, which will make blending island assets into the surrounding environment even easier. The first clip below demonstrates the use of our moss shader applied to the trunks of trees, which can be utilised to blend trees into the environment better. The second clip shows our moss shader being applied to some of our Saborian ruin assets to give them a more weathered appearance.
Whilst our moss shader is one way to make assets look worn and weathered, we felt we needed to go a step further, so we developed our own ivy generator! This allows us to add even more detail to the island assets, and really give islands the aesthetic of mother nature retaking what's hers that we're striving for in Lost Skies.
All of the work done on terrain and layer blending that's outlined above, leads us to sub-biomes. As mentioned above, a sub-biome essentially allows us to add variation to islands within a larger biome. The gifs and clip below show the early work in Unity that was necessary for segregating and classifying sub-biomes for our islands.
So for example, as you can see in the glimpse of our biome design doc below, the starting biome in Lost Skies is currently referred to as "Temperate Plains" internally (not necessarily the final name for the region). As the name suggests, this biome is temperate and is relatively calm on the weather front. Islands in this region will primarily consist of lots of pretty meadows, wildflowers, woodland areas etc.
By using the sub-biome feature during island creation however, you're not restricted to an entire island within the temperate biome being meadow-y and uniform. Instead, you can add mountainous rocky paths, well-trodden game trails, or even cave flora as demonstrated in the clip below.
Below is a more recent look at how our sub-biome nav-mesh is shaping up. This ultimately affects how our AI creatures will interact with different sub-biomes.
Next up is a look at our updated lighting system. Lost Skies uses Global Illumination (GI) for its lighting. The images below show some of the early testing with our new island lighting probes for applying Global Illumination.
The comparison images below show the difference in lighting between the old Worlds Adrift lighting system, with no lighting probes (left) and the same scenes in Lost Skies, with lighting probes and the updated GI applied (right).
And the following clip is a brief flythrough of an island with the updated Global Illumination lighting probes system, and also demonstrates how the lighting changes with the time of day. Note that the island and assets featured in this clip are older Worlds Adrift content, that has not been updated for Lost Skies. It is not representative of graphical quality of the islands in the final game.
So what does an older Worlds Adrift island look like once it has been updated and set-dressed with all of the new assets and systems highlighted above? Well, see for yourself!
The comparison images below show one of the older community created Worlds Adrift islands, War Tales 3 by Teras, as it appeared in Worlds Adrift on the left, and then on the right after it has been updated and set-dressed with the new assets for Lost Skies. Aside from the biome change from a desert island to a temperate one, you can see how the addition of the new foliage and assets really change the sense of scale when it comes to the ruins in the background. Please excuse the blurriness on the Lost Skies images, the stills were taken from a motion video clip.
All of this work culminates in islands that look as beautiful as the ones in the screenshots and flythrough clip below...
And that's a wrap for this week! We hope you've enjoyed this deep dive into our Island Creator tool, and we can't wait to see what kind of islands you all come up with! There will be other brand new features added to the Island Creator over the course of development, such as our new gameplay puzzles, which will allow our island creators to make challenging and engaging content for players who might stumble across their island in-game. We'll have more to share about those new features soon, but for now have a great weekend and we'll see you next week!