top of page

Student Project: Other Life (8 person group)

Development Duration: 6 months
Engine: Unreal Engine 4 (blueprint base)

SUMMARY

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.

​

FEATURES

  • 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 works in this project: 

​

​

1. Ai Companion

Collect and Put in battery behavior

Picking Up and Dropping Down

2. Highlight and Scanning 

3. Dialogue and Cinematic Location Name

The Challenge and Solutions:

1. Ai Companion

Behavior Tree

Screenshot 2022-11-26 172619.png

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 alien.

​

​

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

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.

Picking Up and Dropping Down

Picking up the object is actually not that simple. In order to really pick up the object, collision, gravity and pathfinding need to be handled properly

Same with the pick up function. Drop down will need to enable nav mesh, collision and etc. 

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

Regarding how the object will be determined as interactive or not, it will be further explained in the next topic highlighting and scanning

2. Highlight and Scanning 

Highlight outline

Here is the formula that gets the angle based on the player's viewpoint. In order to determine whether the object is interactive or not, the player angle will be needed to determine whether the player is looking at the object. If yes, the player will be able to interact or the object will be highlighted.

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 less tricky compared with highlighting outlines. Basically just need to get the centre of the scanner and multiply the texture with sphere mask.

3. Dialogue and Cinematic Location Name

Dialogue

Dialogue system basically just uses the append to collect each of the char from the array inside a string. 

Cinematic Location Name

Location name transformation was another way to achieve compare with dialogue. In order to transform different fonts, the location name char will be each different widget which contains one character only. 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.

Demo Showcase

You can try by click this button to download from Itch.io

bottom of page