Hey Mark, can we talk? Monster Size 5 and Vaal Oversoul

During ExileCon, it was discussed that monsters in Path of Exile can't be larger than a certain size due to pathfinding limitations. I believe it was stated that this was referred to as "Monster Size 5" internally, but I don't remember the exact number. One of the talks specifically calls out Kitava and Arakaali as monsters that get around this problem by either not moving or turning hitboxes on and off. That latter part had me a bit intrigued and, while walking through act 2 recently, I couldn't help but notice that Vaal Oversoul doesn't move either. My guess is that it's because of this size issue.

So here's a thought. Have you looked in to procedural animation and inverse-kinematics? Explaining for anyone reading that doesn't know - Inverse kinematics is the process of solving how to move a set of bones to a given position and is often used to place feet on terrain in animations. For example, a walking animation just animates legs going back and forth, but doesn't account for stepping on stairs or slopes. IK blends in to this animation to position the feet such that they don't go through the slope, and solves how to position the chain of bones (lower leg, upper leg, etc) that connect to the feet. Procedural animation is the process of using IK or IK-like solvers to animate a body based on its surroundings. Why do I bring this up?

Well, it seems to me that Vaal Oversoul (and Arakaali!) could move without heavy animation work, and be able to pathfind. Vaal Oversoul exists in an arena of a confined, known size. This arena can be divided in to a grid of waypoints. There are four locations that need to be tracked for Vaal Oversoul - the body of the Vaal Oversoul, which is where the damage hitbox for it is, and is limited to size 5, and one location for each leg.

The concept would be as follows - Move the body via pathfinding on a grid sized smaller than the number of waypoints. (e.g. if the grid is 10x10, only allow the body to go to an 8x8 centered subset of those points) When the body moves, pick three points around the body to move the legs to and position them with IK. The points being around the body is why the body only moves through a subset of the points - so that there is always a point more-outward than the body. As the body moves you change the nearby points, thus changing where the legs try to position themselves, and thus generating an animation from this transition. Now you have a Vaal Oversoul that can pathfind and move.

There is an alternative way to do this that involves a Kitava-like approach of turning hitboxes on and off. By creating hitboxes for each point in the waypoint grid, you can turn them on and off based on the position of the Vaal Oversoul and its legs. This would let you give the legs hitboxes, too, while the entire animation solution is handled dynamically. Heck, it may even be possible to forego a hitbox and pathfinding on the body itself and just move the entire model dynamically through the waypoints.

This same concept would work for Arakaali as well. Unfortunately, this ties the bosses to an arena, unless they can generate their waypoints and hitboxes dynamically within a range around them based on the pathfinding information. If they can, though, then you could make it so they could roam outside of their arena (have I shown you my Calamity pitch?).

If they can generate the waypoints and hitboxes from pathfinding information then you'd only need to generate a certain size around them instead of the entire arena. You could just pool out a set of, say, 5x5 waypoint/hitbox sets and have the sets move with the modulus of the position, so they're getting consistently reused. Then you could make it so the body is on and repositioned based on its position within the waypoint grid, and the legs can be turned on/off based on their movement percentage. E.g. if it's walking, only give it two legs "on" while the third is "off" and animating to the new position, and while it's moving to a new grid position only change which body hitbox coordinate is on (if there is one) when it's crossed half way to the next grid point. If the grid is fine enough resolution then there shouldn't be an issue with hitbox position jank. This is starting to read like I just got drunk and wrote a bunch of random stuff down - sorry.

Why do I propose this? Dude, have you looked at the Vaal Oversoul? It's just a wee babby. It could reasonably be at least twice its size. Make it so we can only hit the legs and put the fear of the Vaal back in the players.

I understand that this is a solved problem for PoE 2, but not for PoE 1. Would love to discuss this further - I'm sure there's more to this problem that I don't know.

---

If you have a particularly strong opinion about this suggestion and want to see others like it, check out these:
Ancestor Totems as a full mechanic
Calamity - A hypothetical league with fighting factions that you create.
Jewels and Tattoos - Keep both, Rework Both
Last edited by DJFariel#2802 on Aug 23, 2023, 7:35:14 PM
Last bumped on Aug 18, 2023, 9:36:56 AM
This thread has been automatically archived. Replies are disabled.
They clearly have larger bosses like Kitava and Brine king but those don't path anywgere afaik. I guess they could make vaal oversoul not move and just make arms extend far enough to cover whole arena. Should be several ways to make a monster seem larger and challenging without having to deal with the pathing issue :). I dunno. The old code might cost too much to change.
"
arknath wrote:
They clearly have larger bosses like Kitava and Brine king but those don't path anywgere afaik. I guess they could make vaal oversoul not move and just make arms extend far enough to cover whole arena. Should be several ways to make a monster seem larger and challenging without having to deal with the pathing issue :). I dunno. The old code might cost too much to change.


That last bit is definitely a possibility - it might be too much effort to change these systems.

That said, there is definitely a monster size limitation that gets skirted around by making monsters not move. My understanding is that they get around this by turning hitboxes on and off. This solution would be basically that, and it would be masked by procedural animation. Turning off "leg 5,7" and then turning on "leg 4,5" shouldn't be terribly different from turning on/off "kitava left arm" or "arakaali east" in theory.

As it is Vaal Oversoul doesn't move, and I think with this implementation it could. Not only could it move, but it could be twice the size and ridiculously intimidating. The creeping frost areas and summoning are whatever, but imagine the slams and the lasers. Heck, you could also make it able to step on you as it moves with a bit of izaro-completion-push and damage. Vaal Oversoul could be turned in to one of the best fights in the game IMO.

Report Forum Post

Report Account:

Report Type

Additional Info