I wanted to participate in TriJam #218, a 3 hour game jam, but accidentally made a bug that caused my submission to be unplayable which I did not fix until after the 3 hour deadline. I then chose to keep developing the concept in my spare time, adding a rhythm aspect to the initial grid based movement game.
The game concept consists of a player character that is split in to multiple parts. The center part (with a heart graphic) is controlled, and is to pick up the other parts. After all parts are collected, certain elements become interactable, enabling the player to progress.
The Grid Based Movement is accomplished using a script that checks the target direction of movement, then moves in that direction if there is moveable ground and no inhibitors. This check includes checking for other stuff with the same movement script, such as a pushable object, which would then do the same check, and move if it can, returning that the player can also move. This potentially allows for infinitely long chains of pushable objects, with wall/edge detection, as well as including players in that chain, if the code was to be used in a multiplayer game.
I implemented a rhythm element in this project, to test how I would handle making a rhythm game. This rhythm system uses Scriptable Objects to key music tracks to their BPM and offset info. A GameObject in a scene may have a RhythmMaster Script, which can access this info in from the Scriptable Object and easily apply events to the track.
These events can trigger at certain timestamps, or repeat every X beat, and can have preparatory events trigger any time prior, as well as have conclusionary events trigger after.
These prepatory and conclusionary events are useful for spawning and destroying prefabs used in the events themselves, as well as indicating to a player that an action is about to happen.
For this concept I did everything save for the music. The track used for testing is an edited version of Ken Ashcorps Absolute Territory.