Traversée

Traversée is a game prototype developed in Unreal Engine 5 (Blueprints) during my training at Gaming Campus. It is a Tactical Survival Roguelite where players must cross multiple grid-based environments to complete the game. Weather is unforgiving, and the carried equipment is limited.

Role: Game Designer

Context: End of training prototype

tools: Unreal Engine 5 (Blueprints), Figma, Blender, Photoshop

tools: Unreal Engine 5 (Blueprints), Figma,

Blender, Photoshop

Platform: PC

win condition

Cross all map biomes by completing each level of the game. The goal is to escape the planet the character crashed on.

failure state

If HP reaches 0, the character is teleported back to the crash site, and keeps backpack items for permanent crafting.

core loop

1/ Prepare

Fill limited backpack slots before starting a run.

2/ Navigate

Select the next level to enter on the world map.

3/ Survive

Adapt to dynamic weather hazards and other hostile elements.

4/ Level exit

Secure crafting resources after finishing a level.

design intent

The core intent was to create an experience where the player feels small and vulnerable against the game’s environment. The design relies on three pillars to achieve this:

  • Restricted mobility to keep a certain challenge during each level of the game.

  • Limited backpack space that forces constant trade-offs between short-term survival (bonuses) and long-term progression (crafting resources).

  • Weather and climate that act as antagonists and force a constant adaptation during a run.

Due to its punitive nature, the game targets midcore to hardcore players. They generally have a high tolerance for failure and appreciate trial and error loops. Runs are kept relatively short (roughly 30 minutes to complete all levels) and are tied to a meta-progression system to ensure players always feel rewarded after each attempt.

Rough sketch (drawn in Photoshop) of the starting point of the game. The main character is a spaceship pilot who crashed on an unknown planet and must cross a map to get to an old antenna and contact rescue. The crash site is where every run begins.

Reaching the resource ends the current level and offers a choice between 2 or 3 different paths to enter the next level. Future resources and climates are shown on the world map allowing players to weigh risks against their immediate crafting needs.

Rough sketch (drawn in Photoshop) of the starting point of the game. The main character is a spaceship pilot who crashed on an unknown planet and must cross a map to get to an old antenna and contact rescue. The crash site is where every run begins.

Reaching the resource ends the current level and offers a choice between 2 or 3 different paths to enter the next level. Future resources and climates are shown on the world map allowing players to weigh risks against their immediate crafting needs.

Rough sketch (drawn in Photoshop) of the starting point of the game. The main character is a spaceship pilot who crashed on an unknown planet and must cross a map to get to an old antenna and contact rescue. The crash site is where every run begins.

Reaching the resource ends the current level and offers a choice between 2 or 3 different paths to enter the next level. Future resources and climates are shown on the world map allowing players to weigh risks against their immediate crafting needs.

core mechanics and systems

Breakdown of turn mechanics, survival constraints, and meta progression.

  • core mechanics and systems

    Breakdown of turn mechanics, survival constraints, and meta progression.

game board

Every level of the game is played in an isometric perspective where movement is restricted to an orthogonal grid (9x9 tiles). Every tile hosts specific interactions:

  • Creatures (capsules) are either static or move towards the player after they finished their turn. The creature’s movement has a fixed chance to happen (1/5). Combat resolves through a timing meter (sweet-spot mechanic). Success destroys the enemy; failure costs 1 HP and pushes the player back to the starting tile.

  • Moving triggers weather-based projectiles. Two of them were implemented for the prototype : random strikes under rain and sweeping lines under wind. If a projectile touches the player, they lose 1 HP. Weather patterns shift every 5 turns (randomly) and affected tiles are always shown to the player one turn in advance.

  • Players must navigate around traps (50% chance of costing 1 HP) to collect temporary bonuses.

Sweet-spot mechanic for the combat system.

Sweet-spot mechanic for the combat system.

Weather-based projectiles. The box on the top right corner indicates the current weather and the number of turns.

Future projectiles are indicated on the grid with bright red feedback.

Weather-based projectiles. The box on the top right corner indicates the current weather and the number of turns.

Future projectiles are indicated on the grid with bright red feedback.

Walking on traps triggers a 50% chance of depleting 1 HP. The probability can be diminished thanks to some tangible bonuses.

Walking on traps triggers a 50% chance of depleting 1 HP. The probability can be diminished thanks to some tangible bonuses.

survival constraints and trade-offs

Since the game relies on a few survival mechanics, some key elements of the game are intentionally restrictive:

  • The backpack starts with 8 slots total and 4 of them contain the starting equipment: Water and snacks for healing, a stove used as a weapon, and a tent that fully heals but costs 1 max HP and resets player position.

  • Bonuses and crafting resources all occupy inventory slots. A bonus takes a slot and its effect is activated as long as the player carries it. If the player wants to create space they have to throw away a bonus. Resources are only secured during a game over if carried in the backpack, forcing players to constantly weigh short-term survival against long-term progression.

  • Each level contains the same number of tiles, but environments become progressively more hostile (different climates that affect the player's HP, explained in the procedural level design section).

Bonuses are looted when the player walks on the concerned tile. They have a singular effect indicated in the popup window and they generally reduce the probability of losing HP (less projectiles under rain, less chances to lose HP on a trap etc…).

Bonuses are looted when the player walks on the concerned tile. They have a singular effect indicated in the popup window and they generally reduce the probability of losing HP (less projectiles under rain, less chances to lose HP on a trap etc…).

meta-progression

Each death sends the player back to the crash site with their carried resources where they can:

  • Craft new permanent equipment to get through extreme climates (arid and polar)

  • Upgrade some existing equipment (backpack’s capacity for example)

  • Choose their starting equipment before the next expedition

Example of what the crafting screen could look like (made in Figma).

Example of what the crafting screen could look like (made in Figma).

procedural level design

How the grid is assembled and constrained.

  • procedural level design

    How the grid is assembled and constrained.

grid generation rules

The grid generation relies on strict rules to balance unpredictability:

  • The system always ensures a path to the exit is generated.

  • Player and resources spawn at fixed locations.

  • All tiles immediately adjacent to the player's spawn point are neutral.

  • Center row and center column never contain neutral tiles.

  • Each tile type has a fixed spawn probability.

Those rules adapt to the current climate. For instance, a Continental climate generates more traps, a Polar climate spawns more empty tiles, and an Arid climate generates more obstacles.

Grid generation diagram.

Grid generation diagram.

climate modifiers (biomes)

While weather is dynamic, the climate is fixed for the duration of a level. Players must strategically select their next level on the world map based on their current equipment:

  • Continental climate is found early in the run. Safe for health, those levels have a much lower chance of spawning rare resources.

  • Arid and Polar climates are mostly found in mid to end game. If the player has no specific equipment to withstand these climates, they passively lose 1 HP every 5 turns. However, these biomes have a significantly higher chance of yielding rare crafting resources.

Grid generation inside UE5's Editor.

Grid generation inside UE5’s Editor.

technical implementation

Focus on the grid’s Blueprints and actor placement.

  • technical implementation

    Focus on the grid’s Blueprints and actor placement.

Each level consists of individual tiles, with each type mapped to a specific material (distinct colors).

To build the playable grid, the procedural generation follows a strict sequence :

  1. A loop generates a continuous array of indices based on the grid dimensions.

  2. Procedural rules are applied to individual indices or groups of indices (rows, columns, specific areas)

  3. Tiles are spawned at each index, respecting the defined conditions and probabilities.

Once the grid is established, the system instantiates the remaining actors:

  • The main character

  • The exit resource

  • Traps and creatures on the red tiles

  • Bonuses on the green tiles

Finally, the dynamic weather manager is initialized.

The first Blueprint graph below demonstrates the grid setup and actor placement pipeline.

The second Blueprint graph demonstrates the weather setup and its associated VFX.

custom visual assets

Showcase of some handmade assets for the prototype.

  • custom visual assets

    Showcase of some handmade assets for the prototype.

Bonus assets built inside Blender. Textures are just quick sketches done in Photoshop and applied to a low poly hexahedron (with some light displacement).

Textures were then baked before importing them in UE.

Traps were built in a few minutes with Blender's Geometry Nodes to have some modularity, and 3 different versions were imported in UE5.

Some simple VFX made in UE5 (Niagara).

During the training and before starting the prototype, a few user flows were designed inside Figma to define the design direction and visualize what the player could do at specific moments of the game.

All UI assets drawn in Figma.

Some simple VFX made in UE5 (Niagara).

Bonus assets built inside Blender. Textures are just quick sketches done in Photoshop and applied to a low poly hexahedron (with some light displacement).

Textures were then baked before importing them in UE.

During the training and before starting the prototype, a few user flows were designed inside Figma to define the design direction and visualize what the player could do at specific moments of the game.

Traps were built in a few minutes with Blender’s Geometry Nodes to have some modularity, and 3 different versions were imported in UE5.

All UI assets drawn in Figma.

Some simple VFX made in UE5 (Niagara).

Some simple VFX made in UE5 (Niagara).

Bonus assets built inside Blender. Textures are just quick sketches done in Photoshop and applied to a low poly hexahedron (with some light displacement).

Textures were then baked before importing them in UE.

Traps were built in a few minutes with Blender's Geometry Nodes to have some modularity, and 3 different versions were imported in UE5.

Some simple VFX made in UE5 (Niagara).

During the training and before starting the prototype, a few user flows were designed inside Figma to define the design direction and visualize what the player could do at specific moments of the game.

All UI assets drawn in Figma.

Some simple VFX made in UE5 (Niagara).

key learnings

Wins and challenges.

  • key learnings

    Wins and challenges.

Key wins: Trusting in-engine tests more than written mechanics.

  • The training started with the writing of a GDD that provided a solid baseline for prototyping, but testing reshaped some core interactions. The prototype evolved significantly beyond the initial document: For instance, grid and inventory dimensions were resized multiple times, weather effects were redesigned to feel more impactful, and there was even a weight mechanic that impacted combat and movement, but was scrapped because it felt unnatural on a grid system. It reinforced a well-known concept in game design: Prototyping early in-engine remains the best validator for game design logic.

The challenges: Code architecture and balance

  • To expand this prototype into a full release, the primary focus would be long-term player retention and avoiding repetitiveness. Content matters, but variations are way more important.

  • The Blueprint architecture in UE5 lacked cleanliness and scalability and it was difficult to see how I could scale this project without remaking a major part of the architecture. This point is one of the reasons why Versatree exists.

  • The game can be really frustrating (many constraints on the player and RNG dependencies) and there are no moments that were designed to give the player any breathing room. Even for the targeted type of players it can be daunting. Strengthening bonuses could solve this friction and it could have a double benefit:

    • More powerful rewards reinforce the dilemma between short-term survival and long-term progression, forcing players to sacrifice a powerful active perk whenever they want to extract rare crafting resources.

    • They also naturally balance the game's difficulty and reduce frustration for the player.