Serein

Overview shot of one of the levels of Serein.

Introduction

Platforms: Android, iOS

Serein is a Meaning-Centered Psychotherapy game where the player selects a bird avatar to represent them as they traverse the Land of Meaning in a 3D point-and-click navigate environment. They are accompanied by a Guide Bird, representing an AI conversation bot, to guide them through the game. The player travels through several different levels each representing a large, meaningful part of the Meaning-Centered Psychotherapy process.

Gameplay

The player selects a bird avatar to represent them in the 3D environment. They use point-and-click interaction to guide their avatar through the world, interacting with the environment, their guide, and other birds to learn more about the world they are progressing through while also playing various minigames.

My Work

Team: Producer, Game Designer, Lead Engineer, Game Engineer (Myself), 2 Additional Game Engineers, UIUX Designer/Engineer, 2D Artist, 3D Character Artist, 3D Environment Artist

Game Systems

NavMesh

I built the player controller which combines point-and-click inputs with Unity’s NavMesh system for the player to navigate the 3D environment in a controlled way. We used a dynamically updating NavMesh system to turn controlled portions of the game’s NavMesh on and off to constrain the player’s movement in particular areas until gameplay there was satisfied, allowing them to move into the next section of an area.

Minigames Scene Management

We utilized an asynchronous scene loading system for our minigames, which allowed us to develop the minigames in their own encapsulated scenes, and then load them alongside our already existent environmental art scenes when they were needed to utilize the same environment scenes, while only having the minigame scenes active while needed for the player.

The minigames were varied, from one where the player filled in a story of text on stones which were then tossed into a lake by the player, to constructing lanterns with thoughts from the player.

Checkpoint and Spawning Integration

We connected all elements of the game to our save/load checkpoint system. This ensured when the player loaded into any given point in the game, that it replicated the same game state as the player reaching that point in a single playthrough. This was heavily used for determining where to spawn the player, as well as all other characters, and determining which areas of the game the player had access to at a given time.

UI Waypoint Navigation

I built a system which guided the player with a waypoint icon to their next primary objective at all points of the game to aid them in this linear game. This icon moves around the edges of the screen to point the player towards off screen objectives, and then switches to directly overhead of the target once they are on screen. The icon displayed also changes based on the type of objective they are being directed towards.

Tools

Checkpoint Management Tools

I created two primary checkpoint tools to help the designer manage and organize all the checkpoint needs of the game. The first could gather and reference all the checkpoints within a given level, and the designer could shift them around to fit the proper flow of the game (i.e. move the necessary checkpoint to be the first one, then the second one, etc.).

The second primary tool could gather all objects within in a given level that could update the player’s progress, and provide information on which checkpoints were associated with which objects. This helped properly organize all the progress inducing objects throughout the game in the correct order, and move them around when necessary.

Navigation Boundary Tool

We wanted a quick and efficient way to bound the player’s navigation, so we wanted to place some moderately accurate box colliders around all the play areas of the game to keep the player from wandering off into the environment. I created a tool that allowed the designer to build a linear path encompassing all the play areas of interest, and it would automatically construct and orient box colliders to satisfy this path.