Astrohaunt

A spiritual successor to “Paradroid” developed using Unreal engine 5.

Astrohaunt is the first school project I worked on where I worked together with artists and designers. This project was developed and released in 8 weeks, during this project I took on the role of gameplay programmer. I worked on this project with 12 other developers and it is made using the Unreal engine and the blueprints scripting language.

Astrohaunt is a spiritual successor to the game Paradroid. In this game, you’re in charge of clearing a haunted mansion that has been launched into space. The ghosts in the mansion can be captured to gain extra abilities to aid you in the clearing of the mansion.

Link to the Astrohaunt itch.io page

My contributions

Locator map

One of the features I worked on was the locator map. This object could be used by the player to figure out where on the current level they are. Interacting with the locator map would show the player a map of the current level. On this map, there would be an image that would indicate where the player is currently located.

To make it easier to move the locations of the locators around in later iterations of the level, I created a system where the current position of the player would dynamically be placed on the map. This is achieved by placing two anchors in the level, these anchors march the boundary of the level. Using this boundary the locator can calculate the player’s position in the level and turn this into an X and Y coordinate for the marker on the map.

Locator map demonstration

Room selection for minigame

When the player starts the mini-game for capturing a ghost, they are locked into the room and the player and ghost are placed across from each other. I worked on the system for keeping track of the room the player is in.

To keep track of the room the player is in, I created a blueprint that represents a room. This blueprint allows the developer to spawn collision volumes that can be placed at the doors used to enter the room. These volumes will notify the room that the player has entered. To lock the correct doors, the developer can also add references to the doors surrounding the room.

Room tracking documentation

Ghost absorption

In Astrohaunt, the player can capture ghosts and absorb their abilities. I created the setup for this feature. The player character has a variable that contains an object that represents the current ability. This is either the standard ability that contains the player’s standard attack or one of the 3 ghost abilities the player gets from capturing a ghost. The ability contains both an attack function that decides what attack gets performed by the player, and it also contains modifiers that get applied to the player’s stats.

Gravity hole

One of the hazards the player can run into is a vortex that pulls the player toward its center. The closer the player gets to the center, the stronger the force that is applied to the player. I implemented this feature.

Gravity hole demonstration

Healing pad

In Astrohaunt, the player can heal themselves by standing on top of a healing pad. As long as the player has enough points to pay for more health or as long as the player is not at full health, the healing pad will continue to heal them. I implemented this feature within the project.

Healing pad demonstration