Student Project: OtherLife

A final-year project that we completed over a six-month period.

8 Persons Group Project

Itch.io

Built with

Unreal

Gameplay Screenshots

Image 1 Image 2
Image 1 Image 2

Trailer

Game Description

Developed by Infinity Studios, Other Life is a first-person exploration game where you play as an alien explorer, sent out to scour the stars in search of new life. After detecting a significant energy signature on a nearby planet, you and your trusty AI companion happen upon the remnants of an alien civilization, brought to ruin by an unknown catastrophe. Armed with unique light-based technology, explore and discover the truth behind this interstellar mystery.


Explore the serenely derelict alien city and the lives of its lost people. Discover the workings behind the unique crystal technology of the Lumenites, and how it can relate to your own. Solve and overcome the many challenges left behind by a cataclysmic event. Venture into the core of the city and uncover the consequences of a great secret.


My Contribution

1. Ai Companion

Image 1 Image 2

collect and put in battery

Image 1 Image 2

Picking Up and Dropping Down

2. Highlight and Scanning

Image 1 Image 2

Highligting

Scanning

3. Dialogue and Cinematic Text Transformation

Image 1 Image 2

Gif and content

The Challenges and Solutions

1. Ai Companion

AI Behavior Tree

Except the behavior that used for final level, the behaviour enum will determine the ai behaviour. Based on the enum state, Ai companion will switch to different behaviour in order to help the player.

Based on the player command, ai will switch the state according to the condition.

Image 1 Image 2

Environment Query System was applied to not only the pathfinding but also the teleport system in order to get the most precise location and avoid getting stuck.

Pick up and Drop down Item

In order to really pick up the object without having any problem, collision, gravity and pathfinding need to be handled properly.

When dropped, the item should enable nav mesh, collision and physic instead.

Collect and Put in battery

For the battery and generator, basically it will be determined by whether the target had the interface or not. Of course before spawning the battery, it will check whether the inventory have enough number of battery or not

2. Highlight and Scanning

Highlight outline

The angle calculation will basically involve the dot product and acos2 to get the radians, then transform it to degrees. By getting the degrees, we will be able to know whether the object or which object is interactive or not based on the player angle.

Highlighting can be one of the most tricky parts of this project. In order to properly highlight the mesh, the coordinate of the shape of the mesh will be needed and calculated. Fortunately, a tutorial resource from ParallelCube allowed us to handle the heavy calculation.

The object that gonna to be highlighted will be determine by their stencil integer.

Scanning

The scanning effect could be slightly less tricky compared with highlighting outlines. Basically, we just need to get the centre of the scanner and multiply the texture with a sphere mask. By increasing the radians dynamically in material blueprint, a scan effect will be created from the centre of scanner to the maximum amount of scan distance.

3. Dialogue and Cinematic Text Transformation

Dialogue

The dialogue system basically uses an append to collect each character from the array inside a string and then display it one by one.

Cinematic Text Transformation

Cinematic Text Transformation will use a different approach to achieve the effect compared with the dialogue system. In order to transform from one font to another, each character will be an individual widget. All widgets will be assigned as a child of a horizontal box. Inside each of the char widgets, the font will be changed after a specific delay.