Skip to content
Menu
Lament
  • Home
  • Chosen Verticle Slice
  • Meeting Notes
    • Week 1
    • Week 2
    • Week 3
    • Week 4: Playtest Feedback and Meeting Notes
    • Week 5
    • Week 6: Playtest Crunch
    • Week 7: Second Playtest
  • Final Development
    • Sound Design
    • Animation
      • Protagonist animation
      • Depression boss animation
      • Wrought animation
      • Whisper animation
      • Lurm animation
    • Character Art
      • All characters
    • Environment Art
      • Gates of Grief
    • Level Design
    • Mechanics Design
      • Mechanics Design
      • UI / UX
    • Narrative
    • Programming
Lament

Programming

Posted on May 14, 2025

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
    • Increase player HP
    • Increase player movement speed
    • Increase player damage
    • Increase amount of Terra Shards obtained per enemy
  • 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
    • Blocks off rooms with doorways and walls that collide
    • Walls that block off other rooms’ doors are destroyed
  • 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

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Explore Our Teams Personal Documentation...

  • Ayse (Aysa) Atalay
  • E-Jay Tripoli
  • Joshua Bates
  • Riya Limbu
  • Xane Rashad
©2025 Lament | WordPress Theme: EcoCoded