[Ohrrpgce] SVN: james/8832 A* Pathfinding now caches NPC locations in an NPCCollisionCache object

Ralph Versteegen teeemcee at gmail.com
Thu Jun 8 23:02:48 PDT 2017


This makes a big difference!
Amazingly pathfinding seems to be almost 10x faster if you compile with
debug=0; the 100 NPC map only takes about 20% CPU time for me in that case,
even without gengcc. I'm rather shocked that the difference is that much,
since gengcc only adds overhead on each function call and pointer access,
but there aren't that many of those.

I found another profiling tool I'd installed on my system, oprofile. This
one is very fancy indeed, it can simultaneously profile the whole system.
Anyway, it shows that all the runtime is inside fb_TlsGetCtx and
libpthread. I didn't realise that the -exx overhead when you call a
function (calls to fb_ErrorSetFuncName and fb_ErrorSetFuncName) store the
current function name in thread local storage.

On 9 June 2017 at 07:34, James Paige <Bob at hamsterrepublic.com> wrote:

> Now the 100 npc map runs *almost* completely smoothly on my computer.
>
> On Thu, Jun 8, 2017 at 12:33 PM, <subversion at hamsterrepublic.com> wrote:
>
>> james
>> 2017-06-08 12:33:51 -0700 (Thu, 08 Jun 2017)
>> 195
>> A* Pathfinding now caches NPC locations in an NPCCollisionCache object
>> which is used for the whole pathfinding operation, rather that looping
>> over every npc on every pathfinding collision check.
>> ---
>> U   wip/game.bas
>> U   wip/game.bi
>> U   wip/game_udts.bi
>> U   wip/pathfinding.bas
>> U   wip/pathfinding.bi
>> U   wip/testgame/a-star.hss
>> U   wip/testgame/a-star.rpg
>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>
>
>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20170609/a733b85e/attachment.htm>


More information about the Ohrrpgce mailing list