Friday, February 28, 2025

February 2025 Progress Report

In anticipation of an extremely busy month, I didn't plan too many tasks on this project for February.  The month did indeed end up being full and challenging.  Nevertheless, I got a few important things done.

Accomplishments

  • Implemented door functionality
    • I haven't tested locking yet, but opening and closing work, along with correctly updating the collision map and generating audio events.
  • Updated actor factory to recognize door identifiers and spawn doors
  • Implemented candy collection
    • The world loader now populates the house with candy, which the player character picks up upon colliding with it.  There was a bug with the candy spawning inside the walls, which then caused the player character to get stuck in the wall when picking up the candy. This was caused by the fact that the collision map had not yet been created by the time the candy was instantiated.  Now the tile world objects update the collision map immediately upon creating the actor list.

Known Issues

  • Messy class structures with poor cohesion, especially surrounding the game's input handling and the engine's tile map system components
  • Potential (likely) performance issues in tile map actor collision checking
  • I'm still not completely satisfied with collision around wall edges. Not sure if the solution will be a visual improvement to the walls or a physics trick.  I want to try calculating the center point of the tile the player character is moving to and use a steering force to move him/her.

Next Steps

  • Implement the candy visibility feature
    • Candy should be invisible until the player character is near it
  • Implement dialogs and text areas
    • Choose and create a game font for normal text
  • Create container objects
    • Cabinets, chests, etc.
  • Reconsider the game's runtime architecture
    • Consolidate game's input functionality
    • Decompose game screen code to MVC pattern
    • Consider cohesion issues vs. class explosion risks
  • Refactor engine's tile map system
  • Experiment with better wall geometry
  • Implement ghost controller

June 2025 Progress Report

 June was actually a decent month for productivity.  It's rarely as much as I hope for, but I am grateful to have finally implemented so...