In our levels we want the player to find a good balance between challenges and rewards.
We encourage the player to explore fun gameplay away from the main road while always keeping a clear view of its location. Progress if you want and distraction if you need it.
We use the common principles of good design like usage of light, color, shapes and movement to guide the player threw our levels while keeping the integrity and visual appeal of a level. To be able to build a level in a quick and iterative way, we make good use of the engines many tools combined with different gameplay- and level building systems we develop. We try to create those systems and mechanics in a flexible, forward-looking and artist friendly way, usage of child blueprints and sublevels included.
Below are some examples of systems we developed. All of them are blueprint based, have a high focus on flexibility and are easy to use.
Barley-Field (How To Catch A Firefly 2023):
For the barley field we can change the number of rows, the number of individual straws per row, the spacing and random offset. If cut, the strawpuppet is gradually filled with the harvested straw using blendshapes and a Niagara particle system. After the defined amount of barley is cut, an interaction interface is fired to trigger whatever gameplay logic we need, in this case: Spawn a firefly.
The windflower-field here uses the same parent blueprint with different assets and effects, whiles triggering a dialogue and upwind-volume.
Global wind system (How To Catch A Firefly 2023)
The barley field, trees and various types of grass are all affected by a global wind system. The same goes for the rain. So wind and rain can change dynamically at runtime to influence the feeling of a level as the player progresses.
Slides (How To Catch A Firefly 2023):
Though they often give me a little headache I quite like using splines for gameplay and environment assets. Here we use them to create a tree slide. The slide blueprint is triggered by an overlap on any position along the spline and takes control over camera and movement while active. Sliding can be interrupted by jumping and resumed by landing back on the slide. Start and end-segments can be set as walkable and the catapult-launch intensity in the end can be dialed up and down or replaced with a smooth fadeout.
Utility Poles (unannounced project 2024):
Speaking of splines: For a new project we made some utility poles and wanted them to automatically generate splines for the cables from one pole to another. Within the construction script we determine the distance to the next pole, calculate the necessary number of spline points and spawn those along the direction towards the next pole while dialing in some cable sagging.
And as a bonus the cables can swing in the wind using our global wind system. The swinging is calculated within the cable material by a global wind function. To stop the attached end parts of the cable to swing too, we remap the uv of every individual spline mesh onto a gradient stretching from one pole to the next. Over all, everything is either done within the construction script or the material to minimize runtime and CPU cost.
Dialogue System (2023)
After using Articy Draft to write dialogue trees for our first project, we wanted to do a similar thing for future projects, but completely within blueprints in UE5. And so we did.
With the system we can write dialogue trees directly within a blueprint and add any gameplay logic right between the text and decision blocks. The system supports level sequences and the possibility to jump to sequence markers at any moment within the dialogue, useful for camera cuts for example. Also we can add sprites and background images for a visual novel-style experience, play animations and expressions and we can loop back to any text or decision block within the dialogue.