v0.1.0 DevLog - JR


"Problems with Force Push Spell and Enemy Behavior"

Author: Jeremiah Rangel

Posted on 07/06/24

THE PROBLEM

After creating the "Force Push" spell and testing it on stationary enemies, all seemed to be working. Once I started working in a more "live" environment, there were bugs showing up with the enemies. Enemies were either not getting pushed at all or they would only get pushed a tiny amount that did not match the "force strength" the push was supposed to have. This caused the player to become vulnerable not only to attack but to getting surrounded and unable to move if enough enemies were present and chasing the player. 

 THE SOLUTION

The solution had multiple pain points that needed to be resolved. The first was the enemies seeming to ignore the push altogether. This was caused by both the enemy AI still trying to chase the player and enemies bumping into each other during the push.

The former would have the impulse's velocity change get immediately overwritten by the AI's assignment to the character movement to go follow the player, so I added logic that would immediately stop all of the enemy's movement and tell them they are not allowed to move until they are fully pushed.

The latter was caused by collision. If an enemy getting pushed had another enemy behind them that they would collide into, they would collide into them and stop all momentum from the impulse, which had the opportunity to completely nullify the spell's desired effect. In order to remedy this, I queried for all enemies in the level, then checked which ones were in the desired radius, then those within the radius would be told to ignore collision with other enemies until the push was finished, allowing the full distance to be traveled.

This went to show that even something as seemingly simple as a pushback can have many pain points that can prevent true functionality from occurring, and it shows to never underestimate a task at hand.

Get Plight of the Gods

Leave a comment

Log in with itch.io to leave a comment.