Saturday, March 9, 2024

Seven Seas to Glory - Sprint Blog 3

Sprint 3

My goal for Sprint 3 was to complete the electronic prototype by polishing the visuals and core loop mechanics.

I started the sprint by revising more of the design document to encompass more features of the game. Since the core loop is complete, and the sprint will mainly be focused on making the core loop as solid as possible, I decided that planning for more features in future sprints would be a good idea. I mainly focused on designing different enemy types, different ammunition types, and shops. Adding those would make the game more fun, and there would be enough time to polish it before the semester ends or new features are added.


Next, I added health bars to the enemy and player ships. Since I made health bars in the last sprint, I didn’t have to deal with the UI, but I had to code the ship health script for the health bars to do anything. 


I then created a popup UI script, so that when the player enters a certain trigger collider, a message will pop up that will tell the player what to do. I made the text public so that it can be easily changed depending on which collider it’s attached to. At the moment, the script is only being used for the ship wheel, but it’ll be useful when more interactable objects are added.


One issue that was discovered a lot in the core loop playtest was that players would fall off the ship with no way back up, or get confused as to which ship is there’s. I decided it would be a good idea to have the player be able to float and return to the ship because of this problem. I started with making the floating script that allowed the player to float in the water rather than fall into the abyss. This took a bit of adjustment to make sure the first-person camera was sitting on top of the water instead of below it, and I wanted it to be realistic to being in water. There’s a bit of a bobbing motion when the player initially lands in the water which slows down gradually.

After making sure the player could float in the water, I made it so the player could return to the ship with the press of a button. We didn’t have swimming mechanics or animations, and it wouldn’t have been a good use of time to implement that in this sprint. Pressing F was a better option. The player isn’t only able to return to the ship from the water, but the player can also return to the ship from other enemy ships. I didn’t program the script to work this way, and I couldn’t figure out what the cause was. I then realized that this helped solve a different issue, which was that players would forget which ship was theirs when they would jump to an enemy ship. I decided to leave it as is.


I moved on to creating different cannonball types. I started by making an ammo class because I figured this would also work for different types of bullets for the gun. I created an exploding cannonball and a freezing cannonball. Both were similar ideas in terms of coding, they were just accessing different enemy ship variables. The exploding cannonball deals extra damage over a given course of time, while the freezing cannonball deals the base damage and reduces the enemy reload speed for a period. I made a script for each, as well as added new functions in the enemy ship scripts for taking continuous damage and reducing reload speed.


Since there were different cannonball types now, I had to give the player the ability to switch between them. Instead of making a whole inventory system for a game that didn’t have enough collectibles to justify that at the moment, the player can simply switch between the cannonball types by pressing 1, 2, or 3. I also made a textbox that told the player which type of cannonball was being used.


There was one card that I had left for this sprint that I didn’t finish, and it was getting the water to render in a build. I discovered that the water rendering issue only occurred on Windows since my Mac build rendered properly, which made it even harder for me to complete the task. I didn’t have a good way to make changes and test out if they worked because the problem was only on Windows. The water was a free Unity asset from Boat Attack, so I searched for answers online to try and find if anyone else had the same problem. I eventually ran out of time in the sprint and I had to pass the card off to someone else who had a Windows computer for the next sprint.


No comments:

Post a Comment

Seven Seas to Glory - Sprint Blog 6

 Sprint 6 My goal for Sprint 6 was to fix all issues and imperfections that were present in the game and make the ship combat a more fun exp...