This post will document all of the programming related to Lament, done by our Lead Programmer and Technical Designer E-Jay, with links to further in-depth explanations for each.
Player
The player character is essential as it is how the player interacts with the game world, this interaction includes:
- Moving the player with [WASD]
- Player dash with [Space]
- 4-Directional player attack with [Mouse 1]
- Picking up Terra Shards
- Interacting with the Tree of Sorrow
- Interacting with the Boss Gateway
- Interacting with the emotion gateways
Enemies
In the Dungeons of Lament, there are two enemy types. A ranged enemy type with less HP called the Whisper and a melee enemy type with more HP called the Wrought (As outlined the Lament’s GDD)
Whisper
The Whisper is able to:
- Run from the player if they are too close
- Move towards the player to get in range to attack
- Shoot projectiles at the player
- Deal 1 HP worth of damage to the player per projectile
- Drop Terra Shards that the player can pick up
[Videos of the Whisper are in the post of the link]
Wrought
The Wrought is able to:
- Move toward the player
- Wind up a melee attack that leaves them unable to move for a short duration
- Deals 1 HP worth of damage to the player per attack
- Drop Terra Shards that the player can pick up
[Videos of the Wrought are available in the post of the link]
Skill Tree – Tree of Sorrow
An essential part of Lament, being a roguelite, is being able to upgrade and make the player stronger after every run in the dungeons. This is achieved through the skill tree, which allows the player to:
- Interact with the Tree of Sorrow by pressing ‘E’
- Spend Terra Shards obtained in the dungeon
- Unlock skills that effect the player character, regardless of what scene they are in
- Purchase a key that allows the player to interact with the Boss Gateway
- Maintain Skill Tree progress if the player leaves the scene
Procedural Room Generation
Perhaps the most important part of Lament, the randomised dungeons that allow each run to feel fresh and allow for more replayability:
- Has an entry room with 4 doors that the player spawns in
- Spawns a room for each doorway from an array of pre-existing room prefabs
- Rooms never block off each other
- Spawns a Boss Gateway in the furthest room if the player defeats all of the enemies in it
- Has a maximum of 3 layers of rooms (Averaging 8-12 rooms per dungeon)
- This is to ensure there aren’t too many rooms that player has to explore to find the boss gateway
Obstacles
To make the rooms seem fresh and less repetitive, I created obstacles for the player to keep in mind when traversing the dungeons:
- Stalagmites/ spikes
- Player is unable to dash through them
- Deals damage to the player if they are touched
- Pitfalls
- Prevents player from walking over them
- Able to be dashed over
Scene Transitions
To allow the player to progress through the game and discover new parts of it, I created ways for the player to travel from scene-to-scene:
- Walking to the end of the tutorial takes the player to the Hub
- In the Hub, the player is able to enter a doorway to a gateway, and then return the same way, coming out of the doorway they came out of
- The player is able to walk to the Depression Gateway from the Hub, open the door and enter the dungeon
Main/Start Menu
The first thing you see when you open Lament, it needs to have functional buttons that leads the player to the bulk of the game:
- Functional start button
- Leads the player to the starting cutscene of the game
- Functional exit game button
- Causes the application to close
- Artwork that scales with a 1920 x 1080 resolution
- Hoverable buttons
This page was written, formatted & reviewed by E-Jay