Archipelago



Project Info

  • Role: Gameplay Programmer
  • Team Size: 5
  • Time Frame: 5 Months (Jan - May 2024)
  • Engine: Unreal Engine 5

About

Archipelago is a fast-paced, movement-focused roguelike set across a dynamic cluster of floating islands. In this project, I took on the responsibility of programming core gameplay systems, including combat mechanics, movement, and vital systems such as inventory and health management.

Source Code: GitHub Repository
Play Here on Steam: Steam Page



Combat

The first step I took towards building the combat system in Archipelago was creating a sphere overlap on the player's right hand bone. This setup destroys a mannequin if it overlaps with the actor.

I worked on making the sword swing functional by creating an Input Action for the attack. This triggers the attack animation montage, and to ensure the animation isn’t interrupted by spam clicking, I created an IsAttacking variable.

To add depth to the combat, I developed a combo attack system. I created an attack count variable to track which step of the combo the player is on. If the player stops attacking, the attack count resets, forcing them to restart the combo on the next attack.

I added anim notifies to the animation montages at each part of the combo, so the system would track when a player completes a combo step and move to the next montage animation.

For the right-hand bone tracking, I added an OnSphereOverlap function that tracks the IK hand bone. If the sphere overlaps with an actor, a mannequin or set actor variable is destroyed.

I also worked on integrating death animations. When the character’s health runs out, I ensured a death animation plays, and I added a delay to allow the animation to finish before the actor is destroyed.

The death system checks if the character is already dead to prevent the animation from playing repeatedly when hit again. It’s also designed to keep the character dead on the ground for a while before removing them from the game world.

Overall, I implemented a combo-based melee combat system with attack sequences, death animations, and appropriate checks to make sure everything works smoothly without interruptions.

Dash and Time Dilation

A key gameplay mechanic in Archipelago is the player's ability to navigate through the floating islands. To enhance this we came up with the idea of a dash ability where pressing the RMB propels the player forward.

The player has access to three dashes, which reset upon landing or when they collide with an orb. These orbs, floating spheres scattered between the islands, trigger time dilation when the player dashes into them, allowing them a brief moment to aim their next dash.

The dash functionality was implemented by modifying the jump mechanic and adjusting its values. Instead of the traditional up-and-down motion, the dash propels the player forward by a fixed distance.

The orbs themselves are pawns with collision spheres, and when the player intersects with them, time dilation activates for a few seconds, giving the player time to strategize their next move.