{"action":"created","issue":{"url":"https://api.github.com/repos/cxong/cdogs-sdl/issues/256","repository_url":"https://api.github.com/repos/cxong/cdogs-sdl","labels_url":"https://api.github.com/repos/cxong/cdogs-sdl/issues/256/labels{/name}","comments_url":"https://api.github.com/repos/cxong/cdogs-sdl/issues/256/comments","events_url":"https://api.github.com/repos/cxong/cdogs-sdl/issues/256/events","html_url":"https://github.com/cxong/cdogs-sdl/issues/256","id":33495455,"number":256,"title":"Optimise pathfinding","user":{"login":"cxong","id":1083215,"avatar_url":"https://avatars.githubusercontent.com/u/1083215?v=3","gravatar_id":"","url":"https://api.github.com/users/cxong","html_url":"https://github.com/cxong","followers_url":"https://api.github.com/users/cxong/followers","following_url":"https://api.github.com/users/cxong/following{/other_user}","gists_url":"https://api.github.com/users/cxong/gists{/gist_id}","starred_url":"https://api.github.com/users/cxong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cxong/subscriptions","organizations_url":"https://api.github.com/users/cxong/orgs","repos_url":"https://api.github.com/users/cxong/repos","events_url":"https://api.github.com/users/cxong/events{/privacy}","received_events_url":"https://api.github.com/users/cxong/received_events","type":"User","site_admin":false},"labels":[{"id":24618658,"url":"https://api.github.com/repos/cxong/cdogs-sdl/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/cxong/cdogs-sdl/milestones/23","html_url":"https://github.com/cxong/cdogs-sdl/milestones/0.6.4","labels_url":"https://api.github.com/repos/cxong/cdogs-sdl/milestones/23/labels","id":2136497,"number":23,"title":"0.6.4","description":"","creator":{"login":"cxong","id":1083215,"avatar_url":"https://avatars.githubusercontent.com/u/1083215?v=3","gravatar_id":"","url":"https://api.github.com/users/cxong","html_url":"https://github.com/cxong","followers_url":"https://api.github.com/users/cxong/followers","following_url":"https://api.github.com/users/cxong/following{/other_user}","gists_url":"https://api.github.com/users/cxong/gists{/gist_id}","starred_url":"https://api.github.com/users/cxong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cxong/subscriptions","organizations_url":"https://api.github.com/users/cxong/orgs","repos_url":"https://api.github.com/users/cxong/repos","events_url":"https://api.github.com/users/cxong/events{/privacy}","received_events_url":"https://api.github.com/users/cxong/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":0,"state":"open","created_at":"2016-11-15T12:35:01Z","updated_at":"2016-11-25T11:39:25Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2014-05-14T14:12:11Z","updated_at":"2016-11-25T11:42:08Z","closed_at":null,"body":"The recent work on autonomous AI (#203) has greatly increased the usage of A_. Normally this is fine, but a lot of A_ calls end up to inaccessible areas, so A\\* ends up visiting a lot of nodes, causing a big pause in the game.\n\nOne way to improve this is to offload the pathfinding to a separate thread, which is used like a service and returns results asynchronously. One problem with this is that there are also code paths that check if there is a path to a location, which may be difficult to make asynchronous.\n\nAnother method would be to give the A\\* algo a work budget, and be able to resume pathfinding an intermediate path. Not sure if the current A\\* implementation allows that.\n## <bountysource-plugin>\n\nWant to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/2157455-optimise-pathfinding?utm_campaign=plugin&utm_content=tracker%2F347422&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F347422&utm_medium=issues&utm_source=github).\n</bountysource-plugin>\n"},"comment":{"url":"https://api.github.com/repos/cxong/cdogs-sdl/issues/comments/262939416","html_url":"https://github.com/cxong/cdogs-sdl/issues/256#issuecomment-262939416","issue_url":"https://api.github.com/repos/cxong/cdogs-sdl/issues/256","id":262939416,"user":{"login":"cxong","id":1083215,"avatar_url":"https://avatars.githubusercontent.com/u/1083215?v=3","gravatar_id":"","url":"https://api.github.com/users/cxong","html_url":"https://github.com/cxong","followers_url":"https://api.github.com/users/cxong/followers","following_url":"https://api.github.com/users/cxong/following{/other_user}","gists_url":"https://api.github.com/users/cxong/gists{/gist_id}","starred_url":"https://api.github.com/users/cxong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cxong/subscriptions","organizations_url":"https://api.github.com/users/cxong/orgs","repos_url":"https://api.github.com/users/cxong/repos","events_url":"https://api.github.com/users/cxong/events{/privacy}","received_events_url":"https://api.github.com/users/cxong/received_events","type":"User","site_admin":false},"created_at":"2016-11-25T11:42:08Z","updated_at":"2016-11-25T11:42:08Z","body":"Putting this on the list for the next release; the performance can really suffer on some maps like a few of the doom levels, which tend to have AI characters behind locked doors. Number of A* queries should be limited, also for AI it should be possible to cache whether a path exists to even a moving target (like the player), and only invalidate that cache whenever obstacles are destroyed or keys picked up."}}
{"actor":{"display_login":"cxong"}}