For this project, its is vital that we are able to translate the ideas and concepts from Anna’s GDD into a real game with a reasonable scope. In order to do this we must thoroughly research Lament’s GDD. These posts will document all of the research I have done into the GDD.
Mechanics
As I will be the primary programmer and Unity handler for this group project, it is extremely important that I understand the mechanics of the game. Whether they are core mechanics, or more niche mechanics – it is important I am able to translate them into the vertical slice that we make.
The Minor focus of Lament’s GDD is its gameplay and mechanics. Showing that is an essential part of the experience of Lament. This essentially outlines average experience of a Roguelite: Permanent progression, Non-identical runs etc.
These mechanics must be a forefront when it comes to the development of Lament:
- Procedural Room Generation
- Permanent character upgrades
- Run-to-run character powers

Player Movement
The players character’s movement mechanics will be how they interace with the environment and its enemies, they must be fluid and make sense according to the surrounding environment to create a smooth experience.

Player Combat
As a hack-and-slash game, the combat in Lament must be done right in order to create an enjoyable experience. However, as the vertical slice that we are going to create will only consist of one realm (depression realm), the player won’t be able to gain enough Terra Shards in order to unlock other weapons – therefore we will only implement the start weapon, the ‘Sword’

Progression
There are multiple ways in which the player advances in Lament, all of these player objectives are outlined withing Lament’s GDD and are highlighted below:

However, in terms of the vertical slice that we are making, only one realm will be made available so the Roguelite scaling will not be seen in full effect.
Tree of Sorrow
The Tree of Sorrow acts as a form of permanent levelling for the player, to allow for a feeling of progression. It allows the player to defeat stronger enemies as they go on more and more runs.

Examples of potential upgrades from the Tree of Sorrow:
These upgrades make us of the Terra Shard resource, which is a common resource dropped by all enemies within Lament, therefore these upgrades are almost garuanteed as the player continues into the realms.

However, these upgrades require the consumption of a Terra Soul, which are only dropped upon defeating a Boss enemy. This forces the player to make a choice that would cater towards their specific play-style.

Gameplay
Understanding the core gameplay loop will be vital for programming and creating the game in Unity, as it outlines the fundamanetal actions the player will undergo while playing Lament. Comprehending it will allow me to create a game that keeps the player engaged over time, while providing it with a structure and sense of progression


As death is a vital mechanic of Lament, keeping the game refreshing and new throughout each run/life is a top priority. This will be done through the Procedural Room Generation, whether it be chaning the layout of the dungeon for every attempt, or coming across new layouts within these rooms – consisting of varied enemies, loot, obstacles etc.
Procedural Room Generation
In order for a game with a repetitive nature, like a roguelite, to stay entertaining and new. Each run must be significantly different from the last to keep players feeling like they aren’t mindlessly repeating the same actions again and again.
The GDD for Lament has outlines how this will be implemented and designed, as seen below:



Resources
Resources refer to the usable items accessible by the player. Which consist of:

The main takeaway from each run will be the resources that are saved after death, Terra Shards and Terra Souls are what will allow the player to return from previous runs into each realm stronger and more prepared. Giving them a sense of progression each time they play, despite the repetitive nature of roguelite games.

Enemies
In Lament’s GDD there is a summary of enemy behaviours, stats and general notes:

As highlighted above, I will need to program two enemies at minimum. A close-range tanky melee enemy that constantly chases the player and a slower ranged enemy that tried to keep its distance from the player. These enemies will be called the ‘Whispers’ (ranged enemy-type) and ‘Wroughts’ (melee enemy-type) respectively.
This highlighted information below gives me further detailed description into their behaviour:
Wroughts

With this ‘Motion’ description, I’ll be able to try and plan how I will develop the Wroughts:
- Create a coroutine for the attack method – allowing for a pause for the animation
- Reference the player’s transform in order to follow them
- Create an attack hitbox check that constantly follows the player but is only set to active once the player is within range
Whispers

Plan for how I will develop the Whispers:
- Create a coroutine for the attack method – allowing for a pause for the animation
- Reference the player’s transform in order to follow them
- Create a method that instantaites a projectile on a cooldown
- Create a script on the projectile that causes it to travel to the players transform
Bosses
As our vertical slice will only include the Depression Realm, I will only look into the Depression boss:

Grief stages (Boss levels) will have a normal attack behaviour and then a secondary attack that will start once they reach half health. Boss attacks will become faster as their health depletes, making it more challenging for the player.
Attacks should be delayed enough for players to learn kiting patterns, making it easier each time they come to fight the Grief. It is important the fight is challenging enough to be fun, the goal is to avoid players giving up because of frustration with the difficulty.
Attacks will also not do more than a heart of damage to the player as there is an assumption that the player has not started the fight with full health.