Hello! I’m Arttu “Hazamuth” Laurila, the game and level designer for Dysplaced. This is the first in a series of developer diaries, aiming to share how the project is going and give some interesting information, insights, and tidbits about the game's inner workings. For the first installment, we will look at the world of ..uh.. world-building on a technical level.
As some of you know, we utilize our in-house game engine for all our projects. The engine's lineage can be traced back to when we started twenty years ago! However, it was only during the development of one of our earlier titles, Neon Chrome, in 2014 that it turned into the current 3D engine we use today. Since then, we have added new features and tools with every new project to help us achieve our goals more quickly and efficiently. Dysplaced builds explicitly on top of the existing features and tools we used to make our last open-world title Dysmantle. As such, I will be comparing the two in this diary.
Note that all screenshots in this diary are taken in the editor, using default lighting without time-of-day simulation. While they might not look as cool as some of the shots on our store page, it should help to compare and contrast the shots.
[h3]Sanding off the edges[/h3]
So let’s start the deep dive. First, we have in-editor screenshots of Dysmantle. As you can see, the terrain is separated by a clear cliff line in places with significant differences in terrain height and where the water starts. The cliff pieces and water hide the fact that the terrain is not connected vertically but consists of little “islets.” If you’d take those obscuring elements away, you’d see straight into the black void of the editor.
[img]{STEAM_CLAN_IMAGE}/44300481/5e28fa69629dc6054cd64b1770542f6642c32654.png[/img]
While this approach does offer some benefits, mainly visual clarity, it dramatically limits the player's interactions with the terrain. You cannot climb hills except in a few specific places; dropping into water is always deadly.
[img]{STEAM_CLAN_IMAGE}/44300481/f638ec889921b3e1fde407d500b3763accbab074.png[/img]
So enter Dysplaced. One of the more significant changes to how terrain works now is that it is, in essence, an interconnected mesh without holes. We have tools to shape, carve, and level that mesh however we want. As you'd expect, beaches now gently slope into the water. You might notice from the screenshot that the water looks better now as we updated the shader and added screen space reflections. There is now a visual difference between shallow and deep water, with shallow being navigable by the player. Expect to find river crossings, shallow ponds, and swamps (poisonous or otherwise).
[img]{STEAM_CLAN_IMAGE}/44300481/ec8ae432f3f69257ad5691a4e277ad4ff97630dd.png[/img]
The other significant improvement with the new terrain tools is the ability to make all sorts of hills, cliffs, and ridgelines that the player can traverse. While we have new chunky cliff pieces, those are only used to denote areas where the terrain height change is too steep for the player to climb. All in all, there should be more variety in terrain features and new avenues of exploration for the player. New approaches in underlying design will also allow us to tailor the terrain features and overall geography per biome basis, meaning that a verdant leafy forest with rolling hills should be immediately distinguishable from a dry canyon with jagged rocks and sparse vegetation.
[h3]Ground Control[/h3]
Speaking of vegetation and, more overtly, fine details on the ground, there are some cool new things there as well. Let’s start with a shot from Dysmantle again.
[img]{STEAM_CLAN_IMAGE}/44300481/4c9f06e23f57fca57ffd95478f12274497445e7a.png[/img]
This is a side-by-side shot with “decals” off and on. Decals are essentially flat 2D images. On the left, you see how “terrain painting” worked before. You painted an approximation of how you wanted the terrain to look in squares, and then you added decals on top to hide the seams between different types of terrain. While this system worked well for our old titles, as many were set in urban environments, adding large chunks of nature pushed the system to its limits.
While we had tools to automate the positioning and orientation of the decals, these weren’t perfect, and there were vast swathes of land where things needed to be fixed by hand later on. Decals also introduced some optimization issues in places where too many were loaded into memory simultaneously.
[img]{STEAM_CLAN_IMAGE}/44300481/9ffc02cd146aaec8b4c23ca04ae63161e0038c6b.png[/img]
We built a modern brush-based solution this time around. As the screenshot above demonstrates, you can paint with different brush sizes, and the system is organized into layers that can contain different textures. Not too far removed from the actual art of painting. The amount of fine detail and, above all, the control afforded by the system is miles above what it was before. Rounded shapes, such as winding footpaths in a forest, are now a breeze to make. Overall, things won’t end up being so square-shaped as before.
There is still one crucial new thing that we need to discuss, and for this one, we’ll use a couple of screenshots from other biomes just for variety's sake.
[img]{STEAM_CLAN_IMAGE}/44300481/afc576771a87e592c47593dadc6ea10fd21ae558.png[/img]
The huge change is in how we generate grass, plants, and other undergrowth. If you go back to the Dysmantle screenshots above, you might notice that the patches of grass and other small plant life came in conspicuous shapes. This is because they all were singular objects, or in engine terms, “actors,” which we use for objects, rocks, NPCs, enemies, etc. While not as heavy in performance cost as an enemy creature due to these plant features being static and usually not having a hitbox, there was still a slight performance cost associated, and it was sometimes unwieldy to handle in the editor.
[img]{STEAM_CLAN_IMAGE}/44300481/ec077ec4e480de049e1d624393b6720410760319.png[/img]
This time we have included a foliage system, which allows us to place small plants both automatically on a per biome basis and by painting them manually, like with ground brushes. Distinct undergrowth helps to tie every biome together in an immersive way. Performance-wise, foliage is relegated from an “actor” to another object class rendered in batches. Without getting too technical, while there is a lot more on the screen, it should still be less performance intensive than before.
[h3]Final thoughts[/h3]
So, what does this all add up to? These engine upgrades mean that we can do our job even better, creating visually excellent terrain and nature in a much more efficient way than we were able to before. It means that the time saved on busywork can instead be used to create captivating content. Finally, it means you'll be getting a banger of a game when we finally plan to start Early Access late next year.
That's it for today, see you next time!