top of page

Alien Prospect

2024

Specifications

​​

Genre: 3D Adventure

Engine: In-house

Language: C++

Time: 6 Weeks (50%)

Team: 13 People

Introduction

Explore an abandoned lab on an isolated planet. Slash & dash through its hordes of hostile inhabitants to claim the prized artifact that lies deep within.

​

A confident archaeologist descends into an abandoned lab on an arctic planet in the hopes of discovering their big new 'find' that can boost their career. 

​​

However, soon, the explorer will also discover the horrific truth of why the lab was abandoned in the first place.​

Contribution

During the course of the project, I worked with tasks in varying degrees ranging from, the grid system for collision detection, projectiles, player's shooting mechanic, checkpoints, arena battle, implementing the player's animations, tools for level designers (LD), and more. You could therefore say that my role acted more towards as a generalist, which I discovered yields a really useful perspective, but can however get stressful if you don't plan and communicate well, while also keeping your priorities straight. 

​

Having clear roles is definitely an advantage to better structuralize a process, but since the game development often works iteratively, with quite the frequent hiccups, it can be difficult to always stay within your designated role. It is really handy to be able to have the generalist mindset at hand to be aware and take initiative to work on neglected but still important tasks.

​

The grid system was created for the main purpose of determining the area the player can move in. LD places tiles in the editor that determines where and at what height the player will be positioned. During initialization, the grid detects the tiles that are outside the area, and places colliders there to restrict the player. To optimize the collision detection, colliders in a matching sequence (mainly their positions) are batched together. The player's height on the grid is determined by sampling the nearby tiles height with bilinear interpolation. If there are less than four tiles available to sample from, it will switch between triangle interpolation, and simple linear interpolation.

​

image.png

How tiles look like in unity (blue grid lines), where stairs have special tiles to determine direction when generating colliders

 

To implement checkpoints into the game, I decide to use binary serialization where on level load, all objects in the level has the option of writing their data to the sequence. When the player hits retry, this sequence is then used inversely to write to all the same values as was used to write to the sequence. This worked pretty well, and only recoiled where it lacked serialization for some non-trivial types, e.g., vector, and had to get around the limitation in some smelly ways.

bottom of page