thutson3876
Cacophony is a puzzle game prototype themed around fixing a broken music box.
It has been possessed by discordant spirits, and the player must harmonize with them in order to restore the music of each room.
A plethora of tools is at their disposal. From amps, to resonators, to even stray gears.
If a room seems to difficult, at any point the player can simply walk back the way they came to try to find a different approach later.
Development Tasks
- AI Pathfinding
- Dynamic Map
- Environmental Obstacles
- Player Progression Lock
- Turn-Based State Management
AI Pathfinding
Path Prioritization:
Player’s Predicted Next Position
Player’s Current Position
Player’s Previous Position

The enemy pathing plans out 3 potential paths, prioritizing them in the order they were given, reducing the cost of each move in the path by the Prioritized Bonus.
If another enemy has already claimed a tile, that tile’s cost is increased by the Claimed Cost, in order to prevent them from simply all following the same path.
Uses Player’s previous position, current position, and nearby obstacles in order to predict the tile they are most likely to move to next. If already next to the player, attempts to move onto them directly instead.

Uses of A-star pathfinding algorithm to find optimal paths efficiently, and includes customizable weightings to manipulate enemy movement.
Dynamic Map

Tracks the rooms the player has been in, is currently in, and solved. Originally showed all unexplored rooms.


Scalable map script that can be used for any amount of levels. Manages the organization of each room on the UI shown to the player, and updates whenever the player enters a new room.
Environmental Obstacles

Checks areas to see if there are any obstacles, enemies, or players in the way of its movement (the black dots visualize this). Only moves when nothing is in its way. It updates the tiles beneath it to be occupied, and frees tiles it moves from, allowing enemies to naturally path around the it.


Checks all potential spaces under each viability check nested under the Viability Check Parent. The duration of the movement can be easily adjusted, as well as the direction.
Player Progression Lock

The player explores levels until they find pressure plates to trigger. Upon stepping on one, the indicator lights up, signifying that progression has been made.


Originally, the lock was to be placed in the starting level, so a teleport function was added to the indicators when they were triggered. This teleport function would allow players to easily see their progression as it happened, however the levels were later reordered and it became a toggleable feature instead. The indicator changes material based on whether or not it has been completed.
The lock has multiple indicators, each of which light up after the player has completed it’s corresponding room. There is a toggle for allowing the indicators to remain there and glowing, in order to highlight the player’s progress. Otherwise, they would disappear with the lock body.
