|
| 01 Jun 2015 12:04 PM |
How does it work exactly? the only way I could think of is, check the nearest voxel to the person that goes in the direction Target.Position - Human.Position and then keep checking from there, and when it fails, come back to check out other voxels... etc etc... (or not voxels, sry I keep getting mixed up with all these names, I'm having a headache already) but am sure Roblox does it more efficiently than that! anyone at least able to guess how?
"My Life is going Good... but..." |
|
|
| Report Abuse |
|
|
Trioxide
|
  |
| Joined: 29 Mar 2011 |
| Total Posts: 32902 |
|
|
| 01 Jun 2015 12:06 PM |
| google "pathfinding algorithms" |
|
|
| Report Abuse |
|
|
|
| 01 Jun 2015 12:08 PM |
| There is't much of a mistery to it. You can look it up on the Roblox Wiki, and there is a very good article on A* pathfinding on Wikipedia, as well. |
|
|
| Report Abuse |
|
|
|
| 01 Jun 2015 12:09 PM |
| If you're using PathfindingService then the pathfinding itself is already done for you. |
|
|
| Report Abuse |
|
|
|
| 01 Jun 2015 12:11 PM |
Trio, k, thnx.
nQ, what am saying is, am interested in learning how things work on the inside :P
"My Life is going Good... but..." |
|
|
| Report Abuse |
|
|
|
| 01 Jun 2015 12:19 PM |
I found a Wiki page about it... I understood half of it XD
"My Life is going Good... but..." |
|
|
| Report Abuse |
|
|
|
| 01 Jun 2015 12:20 PM |
http://en.wikipedia.org/wiki/A*_search_algorithm
Pseudocode[edit]
The following pseudocode describes the algorithm[dubious – discuss]:
function A*(start,goal) closedset := the empty set // The set of nodes already evaluated. openset := {start} // The set of tentative nodes to be evaluated, initially containing the start node came_from := the empty map // The map of navigated nodes. g_score[start] := 0 // Cost from start along best known path. // Estimated total cost from start to goal through y. f_score[start] := g_score[start] + heuristic_cost_estimate(start, goal) while openset is not empty current := the node in openset having the lowest f_score[] value if current = goal return reconstruct_path(came_from, goal) remove current from openset add current to closedset for each neighbor in neighbor_nodes(current) if neighbor in closedset continue tentative_g_score := g_score[current] + dist_between(current,neighbor) if neighbor not in openset or tentative_g_score < g_score[neighbor] came_from[neighbor] := current g_score[neighbor] := tentative_g_score f_score[neighbor] := g_score[neighbor] + heuristic_cost_estimate(neighbor, goal) if neighbor not in openset add neighbor to openset return failure function reconstruct_path(came_from,current) total_path := [current] while current in came_from: current := came_from[current] total_path.append(current) return total_path
|
|
|
| Report Abuse |
|
|
|
| 01 Jun 2015 01:09 PM |
looks kinda complicated with all these Symbols and stuff :/
"My Life is going Good... but..." |
|
|
| Report Abuse |
|
|