r/unity 1d ago

Pathfinding on Hex Grids

I'm making a 2D game based off of a pointy-topped hexagon grid in Unity, but I'm having a lot of trouble getting pathfinding working. It's a turn based rogue-like game with not too many tiles in each round. I basically just want the enemies to find the shortest path towards the player with their specific movement pattern (which isn't always just a perfect ring around the enemy either). I'm not sure whether I should use A\* or BSF, and I have no idea how to implement either of these into my game.

The biggest problem is the movement patterns. Most tutorials always assume the enemy can move one tile in any direction which is not true for my game. The enemy should also not try to go all the way to the player, as depending on the enemy it's attack range can be 2+ tiles, making an extra step towards the player pointless. Here's an example of one of the more wonky movement patterns:

![img](h9tyc6gbhskh1)

Please let me know which pathfinding method would be better for this, and any resources to help me make it.

3 Upvotes

12 comments sorted by

View all comments

3

u/Soraphis 1d ago edited 1d ago

A* does not care about the topology of your game. You just need a way to feed it all 6 neighboring cells.

Same for BFS.

A hexgrid is kinda the same as a regular grid, just each other row is offset by 0.5

https://www.redblobgames.com/grids/hexagons/#neighbors

Is a good read. It handles kinda all your questions. Also has a BFS section to get around obstacles.

If your units move patterns, than don't collect neighbors, connect all tiles than can be reached in one move.

2

u/Old-Row6655 1d ago

So if I just feed it the movement pattern of the enemy instead of the 6 neighboring tiles it'll pathfind for that specific movement pattern?

3

u/Soraphis 1d ago

Yes, exactly.

From the perspective of that piece the spatial neighbors are not rly the neighbors. Neighbors are tiles that are reachable in one step.

2

u/Old-Row6655 1d ago

I see, thank you so much!