I am tuning back in with another blog entry to tell you a bit about the five damage types I have developed and the new enemy type I have implemented as well as a few other bits and pieces of progress I have made(despite being busy renovating my sons new room – my old work space).
The damage types I have developed now are not yet implemented ingame, but I have created the first recolor-assets for the balls and planned out how they will -probably- work. Please note that these decisions may change in the future but it’s the first concept I am willing to try out.
So what is the concept? As I have mentioned before, the player will be able to set his “loadout” in a menu he can access anytime during the game. He can choose between the five damage types and set one for each rotation direction.
The player can switch between the two selected damage types by switching between clock wise and counter clock wise rotation directions. That way the player is able to fast switch between his favorites or the two strategically best suited ball types. I am not yet sure about how the skill level system will work but switching out loadout spots will have to induce a cooldown or a drawback to prevent abusing behavior.
My design plan for the damage types is as follows:
Blast will increase the direct impact damage. It will be the first available damage type and pretty straight forward to use: hit the enemies and they take big amounts of damage. There will be no further status effects applied.
Frost does moderate amounts of damage and slows enemies. It has a chance to even freeze them in place. Frozen targets receive additional shatter damage on impact. Some enemies may not be slowed/frozen.
Poison does minimal impact damage but adds a damage over time effect that is stackable.
Lightning does moderate amounts of damage that jumps several times from enemy to enemy.
Curse does minimal impact damage and adds a status effect to the enemy. This effect builds up and releases a pulse in an area around the enemy after a time that deals moderate damage. The pulse also applies the curse(not infinitely repeatable).
I am quite happy about my design decisions regarding the damage types. It will be a challenge to implement and balance these five variants in an objective way to make them all viable and a valid choice and more importantly not so brokenly overpowered that any mechanic I invent becomes a cakewalk with it.
Now, let me introduce “placeholder-art-rocketlauncher-guy”. I am still behind on the art front with him but at least I have his main functionality implemented: firing rockets. He roams around the player and gets engaged when the player gets into his detection range. When he is engaged he has a small chance each frame to start his firing cast. If he does so, he gets into a firing state and creates a circle around himself that shrinks until the cast is completed. Then the firing ability is set on a cooldown and the rocket is launched. The rocket is the second enemy type I had implemented earlier. Now with this rocketlauncher I am able to spawn enemies with enemies.
Obviously the position of the spawning rocket is still off and coming out of the launchers body. But I will get to that as soon as I have the actual enemy sprites ready, so I can make it look decent and more fluid.
To be able to implement enemies easier, I rewrote the basic logic of the other enemy types as well. Now I am using finite state machines to be able to control them better and to make the parent object fit more different kinds of enemies(see DevBlog #5 for my thought process for using state machines). Basically I made everything more adaptable for any enemy I will come up with in the future.
That’s it for todays dev blog. After all those hours working on the menu, it was really refreshing to do something that affects gameplay again.
Thanks for reading yet another blog post, I appreciate any interest in this project whatsoever. 🙂
If you like this entry, you can read up the previous blog post “Background Enemies and first playtests”. You can also sign up to the newsletter, so I can inform you about new blog posts. Or you can get involved on my Discord server.