Posted December 21, 2024 by TheNevel
#2D #bullet-heaven #Bullet Hell #Loot #Pixel Art #Roguelike #Roguelite #Singleplayer #Survivor-like #vampire-survivors
Although I haven't put out a new build this week, I'm feeling good about the direction Bloodmoon Survivors is going. I feel like I got absolutely nothing done and yet looking back on in reflection I found that there have been a lot more wins than I expected. Let's dive into it
Not to stray from the structure for this devlog series, let's start with art. Ref has been doing a lot of work brushing up the powerup effects this week and it has been going well. We're 6 powerups in and I'm immediately starting to feel the improvement these effects are adding. It's sad to see my replacement effects hit the road, but the new ones are much better in my opinion.
Screaming Blast - the lighting ability that applies the electrocuted status effect. Yes it is very phallic in nature, that's a feature not a bug. Did I mention that upgrades make it bigger?
Electrocuted status effect - This one was a ton of fun. I actually got the inspiration for this effect from Marvel Rivals, I noticed the same effect happens over your ultimate button when it's fully charged. Ref ran with that idea
Poison Pool - the challenge with this effect was making sure it read correctly with the size of the collider. The black circle is roughly how large it had to be. My upgrade system lets me scale up the ability while preserving the look. We cheated a little bit with this one and don't maintain perfect pixel scaling, but there's so much green it's really hard to tell at larger sizes
Gravity Well - this one ended up being my favorite in the lot. The ability sucks enemies in and holds them in place. Great for melee combat. This thing certainly looks terrifying
On top of this I started adding tons of particle effects to all of the abilities. This has been a fun update for me since I'm really starting to see the importance of game JUICE, and am finding that particles really sell certain effects. Most of my game's abilities benefit from them so I'm adding them wherever I can.
Poison pool and electricity use particles to show noxious fumes and sparking. Gravity well, uses particles to show the player the SIZE of their gravity vortex. I thought it was a clever way of showing the radius without stretching the original animation :)
Another big win this week has been sound design! I spent an ungodly amount of time refactoring my audio folder lately but its really starting to pay dividends. Juan has been creating lots of sounds, and fortunately I'm starting to realize that we don't need as many as I initially thought. I'm finding a lot that do a perfectly good job of emphasizing the effect of particular powerups and that's really cutting down the amount of powerup sounds we need.
The other big win was getting explosion sound effects and taking the time to update my Attack Pattern Manager to support them properly. This is something I'd been dreading doing because its hard to manage explosions and keep them from stacking on top of each other and blasting a player's ear drums. My solution was to have Juan create a heavily reduced explosion sound effect and another one I call "rolling explosion" If there's more than 1 explosion going off at once we switch to "rolling explosion" which is a single sound playing multiple explosions at the same time.
On the programming side the biggest wins have been updating all of my powerup code (it was hot garbage before. Now I'd say it's lukewarm garbage) and getting the SFX explosions working with my attack pattern manager.
To go a little more into just what I did with my SFX explosions, I built a callback system where each explosion basically tells it's manager when it should be firing off a sound effect. Then I made the manager class handles that information accordingly. The secret, I found out, to managing this information in a smart way was separating "explosions" from "explosion patterns" making these 2 separate groupings let me better decide when to use single explosions or my rolling explosion sound effects.
The 3 main use cases I found were:
- Single explosions per attack pattern: these are good for when I have a boss do a single or multiple attack patterns but they really only have a single sound effect. For instance: an enemy stomps down causing a big AOE around them. Or they starting jumping and making AOES where they land. In both cases I want a single explosion effect for each "explosion pattern" grouping
-Multi explosions per attack pattern: These were attack patterns that happen in clusters. So for instance, the boss throws out like 10 dynamite which all detonate at roughly the same time. This explosion pattern plays 1 instance of my rolling explosion. Another benefit to this system is in instances where the groupings are kind of separated. So for instance, a boss fires 10 dynamite, then pauses then fires off another ten. Each explosion pattern needs its own rolling explosion.
-Single explosions per ATTACK: This use case was actually a bit of a surprise to me, but emerged because there were some bosses that just lob a TON of explosions but I randomize where and when they'll land. For this to sound convincing I needed each explosion to have its own landing sound. The trick ;) though was adding a sound limiter to these explosions, which under the hood checks how many are going off at once. if it's more than 3, it stops the oldest one an restarts it, instead of creating a new audio source.
Looking forward to next week (and Christmas!) I'm excited to spend more time implementing a new feature I've wanted to add for about a week now and just haven't found the time. If you recall, last week I was ruminating on introducing multiple currencies to encourage players to play at higher difficulties so they can unlock end game upgrades. Well, I've been researching other games and found that this may not be the best solution. Instead, I'm now planning on adding a BraveryPoints (BP) system, which makes players spend to unlock higher levels of play.
Now you might be asking, what the F is the difference? Well, dear reading the difference is that people naturally love progress bars, and seeing that something is out of reach inherently makes it more desirable. By making it so higher difficulties are something you need to unlock, it incentivizes players to work harder to get it. The icing on the cake is this system lets me sneak in a clever way of earning BP which is adding per-level quests. this will encourage players to replay a level if they don't complete the quest, AND the quests will naturally promote having players try new play styles such as using specific weapon and ability combos. Anyway, I think this is the true solution to my dilemma, and will be burning holiday time putting this together. Stay tuned!