ommmmmmm / keeperfx

Automatically exported from code.google.com/p/keeperfx
0 stars 1 forks source link

Imp pathfinding #399

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
(please describe a single problem, providing as much detail as possible)
1.see attached savegame. Load and find gems
2. observe strange imp behaviour taking a long winding route to a treasure room
even though one is right next to them
3.

What is the expected output? What do you see instead?

What version of the product are you using? On what operating system?
(you can see your KeeperFX version by viewing keeperfx.log in notepad)

0.45.1422

Please provide any additional information below.
(describe one bug per report, but with all you can gather about it)

Original issue reported on code.google.com by dayoka...@gmail.com on 17 Oct 2014 at 10:27

Attachments:

GoogleCodeExporter commented 9 years ago
re-checked with nightly build 1503, and it's still the same strange behaviour.

Original comment by dayoka...@gmail.com on 8 Dec 2014 at 2:27

GoogleCodeExporter commented 9 years ago
I find imp behaviour quite irritating now. They seem to have become less 
'clever'? For example, if they dig out a room, they nearly always miss a few 
squares when 'claiming', so I have to pick one up and drop him next to it/them.

Original comment by dayoka...@gmail.com on 25 Jan 2015 at 7:31

GoogleCodeExporter commented 9 years ago
It is important to know where are they going when stopping the dig task.

Could you check what is the new task they've taken?

Original comment by mefistotelis on 25 Jan 2015 at 10:31

GoogleCodeExporter commented 9 years ago
It is about claiming, not digging.

My experience is that the will sometimes continue to claim tiles in another 
room if those tiles are closer (if you ignore the walls in between).

Original comment by Loobinex on 25 Jan 2015 at 11:34

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I see.

When Imp finishes a task, he does the following:
1. try to repeat the last task on surrounding slabs
2. try to get different task from imp tasks queue
3. if no task - go to do nothing state, walking around and toking

The tasks queue I mentioned is updated every 128 game turns; it contains all 
tasks for imps in given players dungeon - unless there are too many tasks of 
specific kind, in which case some are ignored. The queue size is 64 tasks.

So, when imp claims a tile which has no unclaimed sibling, and there are other 
imps claiming that part too, it is possible that he will be assigned a task 
somewhere else. But after queue is updated, he should get back for the 
remaining part.

I think the mechanism made there is quite good and I'm not sure if it needs any 
update.

Or maybe there is a problem where the step 1 is not used even though it should 
be?

Original comment by mefistotelis on 3 Feb 2015 at 11:28

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
The issue can occur with only a single imp.

See attached image. When an Imp claims tile A, as a player you want the imp to 
continue claiming at tile B. That makes sense as it is the closest tile.
However, the imp will think that tile C is closer(ignoring the wall it is) and 
continue claiming at tile C.

As a player that means you cannot start building your room yet.

How that relates to the process you describe I do not know. I do not know how 
the tasks are prioritized, but I would assume that if there are 2 similar tasks 
(e.g. claim dirt), the closest gets prioritized by the imp.
I think it is similar to issue #187, which in behavior differs from the 
original game.

Original comment by Loobinex on 4 Feb 2015 at 12:49

Attachments: