Journal Entry #4


Date: 15.05.2024

Activity:
- Created a tutorial, one level and a boss fight
- Added effects to the UI

Notes:
Due to running low on time, I had to decide between making two levels and a boss fight (since my original plan was to make a tutorial, two levels and a boss fight), and I decided to go with the boss fight since two levels would be just more of the same and wouldn't give the game a conclusion. But I decided to make the one level big with a lot of enemies.  Due to this change, I had to switch from my original idea, which was to only have one checkpoint at the start of the level, to having multiple checkpoints throughout the level (also because the enemies are difficult and it would be tedious for the player to have to redo such a big level every time they die). I spent a while tweaking the enemies to make sure they are not unfair, but I still think they are too difficult, so I will adjust them further after the playtest. I also noticed that there is a bug with the fighter ghosts where they will twitch back and forth when switching between chasing/attacking and patrol behaviors, and I have an idea how to fix it (I think it has to do with the way that I handle flipping the sprite), but due to time constraints I didn't do it yet.
While designing the tutorial, my initial idea was to have screens explaining what the progress souls and the healing souls are, but I remembered to show not tell, so hopefully the way I did it will get the point across. I'm still not entirely sure where to put the help text for how to use the healing soul, right now I have it if a player gets one, but if the player gets hit in the tutorial, they will get instantly healed upon getting the soul, so they will get the tutorial later. At this point I realized I should make some indicators on the UI when losing health or gaining health, and I struggled for a while with coroutines, especially with the help text (I was trying to start a coroutine to fade in the text, then stop it before fading in a different text, but stopping the coroutines wasn't working and I learned that this approach is not a good idea), until I remembered DOTween, which made it much easier. I tried to make it so when a soul is picked up, it will fly towards the place on the UI where it's container is, and then the UI will be updated, but I couldn't figure out how to get the screen point of the container to a world point (ScreenToWorld wasn't working), so I abandoned that idea and decided to just highlight the pieces of the UI that are being updated. I ended up with an odd game breaking error that claimed that a UI element was destroyed when the player picked up a healing soul, but it only occured sometimes and I struggled to replicate it. At the end, I figured out that I was because when there was an update for the healing soul UI element, due to a typo I was accidentally updating the health UI element twice, and after fixing that I didn't get the error again.
For the boss fight, I stuck with my original plan for the attacks that I mentioned in the previous journal. At first, the necromancer was supposed to shoot out three fireballs at a time every time he detected the player, but by accident I had him shoot out three for every time OnTriggerStay2D was called, and it gave the boss battle an interesting bullet-hell aspect, so I kept it (although if it's too hard I will change it). I decided on two phases, with the boss having two attacks in the first one (fireball and the flying ghosts + the contact damage when he runs across the screen) and the second one adding the flame pillars. In the second phase, I was also thinking about putting spikes on the upper platforms, but I decided that's overkill. I was also thinking about an intermediate phase where the boss disappears and the player fights a bunch of the normal enemies before the boss returns for phase 2, but implementing it got messy and I decided to scrap it and go with the two phases. I didn't have time to playtest the boss too much, but I know it is beatable. I will implement tweaks after the playtest. I also didn't have time to implement the scoreboard for the end of a speedrun mode game, but I started and I will do it after the playtest. The game is also missing sound and I have to add the credits (although pretty much all of the assets I used were CC0).

Duration: 12 hours

Files

ProjectC.rar 25 MB
May 15, 2024

Get Project C

Leave a comment

Log in with itch.io to leave a comment.