Hello and welcome. I am gator soup the developer behind this game.
Thank you for coming to read up on the game, it is a project I have really enjoyed working on for the last month and a half. Lets get started.
A little bit of background info on the game. Oceans Away is a grid based puzzle game where the player must navigate between islands to reach other castaways. The levels are 4x4 but I am working on 5x5 levels as well. As the player progresses, the puzzle becoming increasingly challenging as new obstacles and hazards, all of which have effects when the player moves. The feature I will be talking about in this post is the Rapids and how complex that mechanic became when I added non-hostile interactable.
Currently, I have been going back through the code logic for a number of mechanics to improve how they behaved and fix unforeseen bugs. This morning I spent a good chunk of time refactoring the code for the rapids because I was not consistently getting the desired result. The rapids work by pushing whatever enters from one of the entrances out the other end as an additional move. For example, if the player goes through a rapid they are moved an additional space without it counting towards the world.
Now the behavior have just described was not in of itself particularly hard to implement, however things got messy when enemies or driftwood were blocking one of the ends, or if the player chose to push driftwood through first instead and then follow it. See, originally the rapids used area nodes on the entrances to check if something was present, but the problem was this could only detect if something was there, or was not, and didn't account well for things getting pushed out of the way and being replaced etc, etc, so I refactored the rapids and now they use raycasting to detect if something is present currently, and update frequently. Now, the rapids work really well, and can handle a variety of situations.
Anyway, thanks for reading. I will be posting regular updates at least twice a week.