Turn Based Framework - What to use

  • A* version: [5.4.4]
  • Unity version: [6.2]

I am making a turn based game set in a standard (non tile based) 3d world (ie slopes and overlapping bridges) and am currently deciding on how to build the movement system for combat movement. Basically the game should behave like Baldurs Gate 3, as in i click a point and the character moves to it with the most direct path avoiding all other actors (i also need ways to create temporary areas that interact with the movment calculation).

I know DoS 2 (precursor to BG3) used a hidden grid system, im not entirely sure what BG3 uses.
So i am a bit unsure whether i should go with a layered Grid graph or a recast graph.
One thing i worry about with a grid is performance, because a large world and small cell size = bad performance, especially when a lot of pathfinding needs to happen within 1 frame for movement previews and co (this is something im afraid of, i cant gauge the speed efficiency of this library adequately).
On the plus side i can guarantee that only 1 actor is ever going to move at the same time.

Edit: After some more testing i presume that grid is the right solution. I see the SingleNodeBlocker under the Documentation for Turn Based Utility, but my agents have a much larger size than the nodes (nodes are sitting at .25 right now. Humanoid actors have a diameter of 1 and some enemies are even larger). And ground effects obviously take up multiple cells.
Is there any given utility to have all cells “under” an object tagged?

And as a side question, does the pathfinding on the grid take the size of the actor into account (ie a 3x3 actor cant go through a 1x3 tunnel)?

Me reading this: “So like Balders Gate 3 I think?”

“Oh, yeah, okay” :joy:

I’d probably skew more towards Recast on this specific use case? Honestly either or is fine. I’d skew Grid Graph for your use case because of the note here:

Pros:

  • Grid graphs work well with penalties and tags.

  • Graph updates are fast.

  • Scanning the graph is comparatively fast.

I think you’re looking for the aptly named tagging feature. I also want to link this page about specifically agents of different types.

There’s also a page specifically about different agent types of different sizes.

Feel free to hit us with any follow-up questions or requests for clarification :+1: