So, for the movement, this was my first experiment:
I was forced to remove the coloring of the border, because it took too long to display. Mainly, the generation of meshes in Unity during runtime is slow. It’s also being done on the main thread so it blocks execution, and that causes hiccups in the framerate.
In the end it looks similar to in Phantom Brave:
But you’ll notice the border is not a perfect circle. It takes obstacles into account.
Furthermore, you’ll see he can move about 40 meters here:
But only about 20 meters here:
This is because that part is actually a hill, while the other part is relatively flat:
So, yes. Height elevation is taken into account. The reason is it takes a lot harder for troops to trudge through elevated terrain, so it costs more stamina.
In game terms, elevated terrain confers advantages in combat, which is why I, as designer, forcefully make it hard for troops to get there.
Actually, the simple fact of making it hard to get there gives advantage by itself. Ranged units would be wise to position themselves on high ground, as melee enemies will take longer to get to where they are (since its slower to get to higher terrain). This offers the ranged unit perhaps enough scant time to finish off those enclosing melee opponents.