4

One of the creators of HAA* (a generalization of HPA*) wrote a very accessible article explaining how it works on aigamedev.com. Unfortunately that site seems to be dead, but fortunately archive.org has the article archived. I highly recommend reading it, but to summarize: HPA* breaks the map into chunks. In each chunk, you identify the possible entrances/...


3

If you need to wrap just a few steps out of bounds (up to negative size), then you can do this like so: (size + coordinate) % size When coordinate = -1 then this gives you (size - 1) % size = size - 1. And when coordinate = size then this gives you (size + size) % size = 0. For any value in between (0 to size - 1), this behaves the same as the identity ...


1

Let's update your function to return the time of intersection if there is one, or a negative value otherwise. This will treat rays that start inside the box as non-intersecting, but you can output max(tmin, 0) instead of tmin if you want to count the ray origin inside the box as an honorary intersection. function intersection(b, r) { var t1 = (b.min[0] - ...


1

The GDC multi-game session AI Navigation: It's Not a Solved Problem - Yet includes an explanation of how Star Craft 2 handles navigation. The SC2 content is presented in the first 20 minutes of the talk. There's a joint question and answer portion at about the 54 minute mark with a number of question pitched to SC2. While a complete transcript of the ...


Only top voted, non community-wiki answers of a minimum length are eligible