Updates based upon Testing Session


This week I worked on improving the game based on the feedback I received from last week’s testing session. I received some very helpful pieces of feedback, including that the trident sometimes sticks into the spikes even though it’s supposed to bounce off. I fixed this by making the spike colliders a continuous collider, whereas before there was a slight gap in the collider in between each set of spikes. I attempted to achieve this by making 4 different spike sprites, all with different collider shapes, and using a custom rule tile to switch between them depending on which sides it detected another spike tile. This mostly worked, except the edges were sometimes rotated wrongly, as it couldn’t detect if there was a wall on a specific side. I attempted to fix this and did some extensive research on custom rule tiles and different ways to do it, but ultimately decided that I didn’t have the time, experience, or knowledge to do that, so I instead just created 4 different spike tiles for the 4 different sprites, and just placed them manually in each level, and this seemed to work.

Another bit of feedback I received was that the trident sometimes stuck in mid-air, and after some investigation into the problem I found out that this was due to the way I was setting the trident’s position after it detects a collision with a wall. The way it was set up, the embedded trident’ position would be set to the position of the thrown trident when it collides with a wall, and then translated to look like it is embedded in the wall, but I changed this to set the embedded trident’s position relative to the point of collision instead, eliminating the issues that the rotation of the thrown trident was causing. This fixed this issue, and I also noticed another issue that the trident’s motion looked a bit wonky after it bounced off of spikes, so I went through all of my scripts and changed any transform.rotation and transform.position with calls to the rigidbody2D wherever applicable, and this cleared up that issue as well.

Another piece of feedback I received was that the purpose of each level was not clear, as I had tutorial text saying to “fix the cracks” and “fix the hole to end the level” but the cracks and the hole had no sprites, just a placeholder I was using. So I spent ages trying to find applicable sprites and eventually found a hole border sprite that I then edited an ocean scene inside of, to give the impression that it was a hole in the wall looking out into the ocean, and this worked really well. I also found a crack sprite for the cracks, and I also found an animated waterspout sprite that I thought would make a really good looking leak, and it does.


I also received feedback that the levels were too difficult, so I modified the harder bits to balance them out a bit, and I also made more puzzles that need the trident to pass, as I also got feedback that the trident felt a bit unnecessary. Another thing I found from the testing session is that if the trident’s angle wasn’t exactly parallel with the floor, the player couldn’t jump off of it. I tweaked the jumping code to allow for the trident to be 45 degrees left or right rotated from the floor angle, fixing this issue.


A major bit of feedback I received was that the camera felt slow and wonky, so I spent a lot of time trying to edit the camera script and the cinemachine camera to try and get it feeling nice, I’m still not entirely happy with it, but I eventually settled on having it move ahead of the player based on its horizontal velocity, and move to the player’s y level when they are touching the ground or a wall. If I was making this game as a longer term project or a commercial project, I would spent a lot more time trying to get the camera right, maybe zoom it out a bit or something, as I feel that this can affect the gameplay experience quite a lot.

I also added an arrow indicator to the UI that points to the trident when it's off the screen, and I think that this makes the game look a lot nicer. I achieved this by creating an image component on the UI that uses a custom arrow sprite I found, and then setting the Image component the inactive. I then wrote a script that gets the camera's boundaries and checks if the currently active trident (since there should only ever be one trident active at a time) is outside the camera's view or not. if it is, the script sets the indicator's Image component to active, and moves its rect transform component to rotate it in the direction of the trident, as well as move it to the edge of the screen closest to the trident. if the trident is not out of the camera's view, the script simply sets the indicator's Image component to inactive.


Files

Build.zip Play in browser
May 31, 2024

Leave a comment

Log in with itch.io to leave a comment.