World Building and Level Development
The objectives and methods necessary to enmesh the lore and context of the world to the literal experience of exploring it.
The objectives and methods necessary to enmesh the lore and context of the world to the literal experience of exploring it.
World Building will be a critically essential aspect of delivering a rich experience through the experience of how the Awaken Guardian Lore and Themes reflect in the structure of the world. Things like the Essences and their thematic representation of the building blocks of everything are what needs to deeply saturate the game world and how you act within.
Within this document I will address the functional means of literally creating game levels, followed by content and objectives we’re headed towards implementing.
Laying the foundation for any exterior regions. All sculpting begins from here.
Links:
Gaia Pro Terrain Generator is a powerful but rigid terrain generator. It has many strong features and serves to be a great foundational tool to begin the layout of a terrain element. After the general shapes and elevations are set, you can make it paint the terrain based on all sorts of filters and conditions including height and incline.
Gaia Pro cannot generate at run time, thus is only useful for our development of designed regions.
Gaia Pro also does not deal with paths or player/unit compatible terrain and formations. Those need to be sculpted after.
Sculpting better functioning play areas of the terrain.
Links:
Path painter is a path sculpting tool that smooths and grades any sized path based on the points you give it. It has a simple and easily digestible set of features including a brush style painting tool, the ability to change the values of the last path painted, continuing a path after you’ve laid it, and more.
This has been how I take a Gaia generated terrain, and with some basic sculpting brushes in conjunction with this tool, make more functional and intentional spaces and regions to play in.
Optimizing and serving up a continuous stream of game world.
Links:
Building the complex and churning regions of the corrupted world.
Links:
DunGen
Similar principals and compatibility.
SECTR will be a major part of our early experimentation. In order to facilitate a rich and broad game world we will need to use SECTORIZATION to optimize the game world. Currently we load one giant game map and it takes about 4 minutes of continuous loading with no load screen. People believe the game is crashing when it ultimately is fine.
Dun Gen uses similar principals to construct and generate it’s levels. In fact, Dun Gen has a compatibility add on that allows for the generated dungeon level blocks to be SECTORIZED as well.
Both SECTR and DunGen use Unity Scenes to segment level blocks into individual files. Each level block has measured bounds, and “doors” or gates that identify where the block snaps to other blocks.
In the case of DunGen the doors are relatively generic in that any “large wide gate” door can be adjoined to any other “large wide gate”. The generator simply populates the map based on conditions like length, number of side paths, if a block is meant to be unique or generic, etc.
SECTR is meant for level streaming. I haven’t implemented it at all yet, but it seems the difference is that the “doors” specifically identify the block that will follow. This allows you to construct intentional paths and maps while breaking them down into their own sections.
Both SECTR and DunGen require that the level blocks be convex, meaning that there can never be doors WITHIN the square bounds of the block. As you can see in the doodle diagram, every block is marked off with a red square. This is how all the blocks need to fit together.
SECTR decides what blocks to load/display/render/cull based on your camera view. If it hits a blocks “door” it’ll load the door and then send out another cone of sight. If that hits another door, it’ll load that block.
As you can see in the diagram, depending on the level construction, we may be loading a great deal more areas than we intend to. Likewise, there are some additional challenges.
The loading of level blocks is strong in interior zones, as walls and a ceiling block lines of view. However, for a semi open world game, we face other issues such as a “high point” in one sector may “pop” into view as you get close to the block. These are things we will drastically need to consider when constructing links and paths from one block to another. Sight lines, vistas, caves/overhangs will be things we have to meticulously design so the player sees what we want them to see only when they should be seeing it.
This is also a time for us to tap into the sensibilities of old games like Castlevania, and Metroid. We can use transitionary blocks to segment regions and make sure everything is primed for the player to enter the region. This includes things like changing the colour adjustments in the post processing layer, toggling different sound scapes, adding fogs and other visual layers to the camera, and more.
To my knowledge, we can’t generate a dungeon and link it seamlessly to a SECTR door mid gameplay. I already have a level changing function in the game to allow for entering and exiting dungeons. I believe the best course of action is to approach these transitions in the way “Zelda Ocarina of Time” has done it: Wherein there’s a little cutscene segment of Link running into a shaded hallway or deep set of steps, a fade out, [quick level load], fade in to a small scene of arriving.
It’s not modern gameplay ideal for a roaming exploration game, however, the load times are very fast if we utilize sectorization to optimize the levels. If handled well I believe users will likely gloss over the experience and pay it no mind.
Where I get real excited.
The thrill of the combination of Dungeon Generation and designed regions is that we can use any range of randomness to manifest our regions. We can have a reliable recurring area that’s easy to memorize and delivers the same thing every time, as well as regions that are labyrinthine and constantly in flux.
That’s not to say that we can’t have ANY control of the areas. For our purposes, we can always implement different tiers of randomness. Some areas could be random only between eras, while others can be random every time you enter the area.
Likewise, we can have a great deal of control over the details of a random landscape. You can put break points where certain blocks HAVE to appear, you can make specialty blocks that will only appear once and contribute to the progress through a dungeon, you can make important blocks appear only in side paths, or only at the end of a side path. The options and flexibility is incredibly versatile and only really limited by our application of them.
The use of random gen and the context we can develop around the random areas and the churning world will bring a great deal of variance and weight to the game experience. It contributes to replayability, but more importantly than that it will play a strong part in delivering the tension, and danger present in the world.
Simple mechanisms, complicated delivery.
The Interactors present in the game, and those that will be developed further are the simple mechanisms that allow a player to interact with the game world. They serve rigid purpose, spread over the range of possible mechanics in the game. However, these are paramount elements in the game world for delivering interesting, complex, and engaging world experiences.
All these compelling aspects come, not from the interactor, but from the context of what the interactor depicts in the game world. The flexibility of the context of these interactors is daunting simply because of the infinite range in which we can depict the interaction.
Think long, hard, and often about ways to skew the interpretation of these mechanisms, as these are some of the most foundational ways that we’ll bring a rich presentation and experience to an otherwise simply functioning world.
Below are examples of interpretations and applications of these simple mechanisms towards different experiences.
Resource locks are the best example of how pliable the Interactor context can be. A resource lock requires a set combination of essences and/or specific items.
At the very simplest, this is used as a lock, just like it’s name. It can be used to require a key item, or just a generic key, as is shown in the first screenshot. Furthermore, it can be used to accomplish simple tasks that a more complicated survival game may require a “crafting system” for. Things like the brazier being lit by ERTH essence. Conceptually it’s that you’re using ERTH to manifest the wood needed for the Brazier to burn.
Essences allow a lot of contextual grace for us. It allows us as developers to take a conceptual step in defining the meaning of a resource lock, but it also serves to validate and make the lock “real” for the player.
Moving into more abstract translations of the resource lock: I imagine a bridge, collapsed. You have the HRB and ERTH required to interact and once initiated the Guardian reels back, hands glowing with power. Roots burst from the ground below, pulling debris from the collapsed bridge and reforming the path with new and old material.
Likewise, you’re blocked out from a cave, vines woven thick in the passage. You have the HRB necessary to pass and the guardian taps into the natural realm, commanding the vines to recede. As an added layer of context, the passage is a high reward place and thus needs to be a high cost area to access. So to build on the cost and to expand on the interpretation of these resource locks. I make the cave overgrown, there are actually 3 walls of vines piling up in the cave. This makes the cost of passage 45 HRB, as is intended for a high cost route. But is delivered in a fragmented way.
These only scratch the surface of how I believe the resource lock can be reinterpreted to accomplish all sorts of conceptual goals.
One unimplemented idea was to make sprouts, some sort of under developed growth, and have it so you trade resources to grow it rapidly. This could serve to grow a patch of spawns for food in a desert, or to grow a vine ladder up the side of a cliff or building.
“Dare not approach the Lodge lost in the woods. It swallows up all who approach, none have ever returned…”
The Proximity/Area Interactor is pretty obvious. When you enter a proximity space it triggers something to happen. This can be a cutscene, it can be a dialogue, it could be a weapon vending machine. Anything that requires your presence to activate.
I would like to develop it further to be able to distinguish items or specific objects, or only be active WHILE the target object is in place. However, it already begins to show conceptual worth in the application of “The Lodge of Dreams” dungeon. At full implementation the Lodge would only appear at night, in a random choice of a list of spawn locations. When you breach the line of “totems” encircling the Lodge, it would trigger a cutscene of you being swallowed up into its maw, forcing you to enter the dungeon wherein the only exit is beyond the boss.
I hope these examples show how the basic mechanisms for the interactions can be expanded on conceptually to deliver a rich range of possible experiences for the user, utilizing simple and tangible mechanisms in development to accomplish. This only scratches the surface of the possibility but ideally proves the merit and validity of the functions and their value to the greater game experience.
Squeezing our assets of every drop.
While we have a great potential for being able to make countless regions with all sorts of variance, we’re also bound by our small team and limited budget. This means that we must use what development resources we have to maximize the delivery of the total game experience.
Configuration, reconfiguration, topography, flow, and effects are all ways we can mix elements to reap different results that lead to unique and strong regions without needing entirely different biomes and assets to realize.
Goddamn rocks…
Use rocks for everything. You can scale and rotate, arrange, build… basically everything from a small subset of rocks. Basically every irregular terrain formation in the prototype so far has been made with 4 base rocks, and I think that 2-3 of those base rocks are just a different orientation of one rock. So I am nearly using only 1 rock to make all the caves, overlooks, cliffs, formations, points of interest… Rocks.
YOU may realize it’s all the same rock, but to the layman, they won’t notice it all the time, if at all.
This principal extends beyond rocks however, use this for any raw construction resource. When using an asset, any time the engine can recycle it from memory it will, so using the same asset a million times will free up a million assets from memory. It’s a good principal for limited resources both in assets as well as literal computer system resources. Always good.
Elevation, constraints, shape, positioning, formations.
The topology of the land allows a lot of power over the assets within. Making a place with severe elevation contrast makes a stark vertical, claustrophobic, and labyrinthine tone and experience to the region, while wide vast swaths make the space feel open but monolithic.
These meta experiences, the whole experience brought from a collection of aspects and elements allows for the assets within to take new meaning and contribute in different ways to a region.
Furthering the thought, consider in the Rocks gallery, how some of the views of things like the caves or looking out of the caves contributes to the feel one may have in entering, or passing through an area. The juxtaposition of passing from one place to another can also lead to great effect, while using the same pool of assets present.
Repaint whats there to make for rich variance.
Though very under utilized currently, effects can lead to strong variance in tone and experience even in a similar region.
The only example I have is of the Lodge. I put a basic fog volume near it so there is a “mystique” that is meant to draw you in. Even though it’s placed in an otherwise vast and open region, the mood that comes from that spot of the basic land draws the eye, makes you curious, and shifts the tone of the space a great deal.
This and other things can be utilized in small formations and regions as well as to set the precedence for an entire area of the game. Think “Deep Woods” vs “The Woods”.
Introduction to the game.
Descending from the Overlook is the blanket development of the beginning area. We will implement a Tutorial here both through narrative points, as well as through the shape of the area, leading the player through small comprehension tests of how to navigate and proceed through the area.
Here will also be the place where we begin to lay hooks that will draw the player further into the game and intrigue the world has to offer. Strong visuals, compelling terrain, mysterious and alluring details. Whatever we can develop to make this area sell the rest of the game we need to include.
wrtger
Atop the overlook is a crumbling ruin, seemingly forgotten to the world. It looks upon a mighty vista reaching as far as the eye can see. Beautiful mountains, lush deep forest, a deep dark bog. The world is sprawled out before you, a call to adventure.
At the center of circling pillars and ornaments is a bonfire, signature to the journey of the Guardian. A point of rest and a visual indication to identify its significance in the future gameplay.
There’s no perceptible route other than down a route through the mountain range.
There’s a shortcut to skip the length of the Descent for experienced players who have already been living and dying a great deal.
“Please… Can you help me. I’m on a quest, I need to be freed…”
This will be the very first time you come upon the Fool. He’s trapped and needs you to free him. However, you don’t have the means to free him yet.
This sets the expectation that there’s need to return to places. It teases and hints at a greater world. It sets a side objective in your mind as you move on.