ommmmmmm / keeperfx

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

Castle Kandro Crashes #123

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
(please provide as much detail as possible)
1. Game has crashed repeatedly on me now, shortly after "the lord of the land 
approaches", though not identical in fashion. (Nikolai's Castles campaign)
2.
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)

041_721. Win8. I have a savegame shortly before the crash - where do I find it?

Please provide any additional information below.

Original issue reported on code.google.com by dayoka...@gmail.com on 27 May 2013 at 3:41

Attachments:

GoogleCodeExporter commented 9 years ago
Hello,

Please upload the saved game. You can find it in "save" folder, it's one of the 
"fx1g000?.sav" files.

Original comment by mefistotelis on 5 Jun 2013 at 7:43

GoogleCodeExporter commented 9 years ago
Hi. This should be it. Thanks, Dayo

Original comment by dayoka...@gmail.com on 6 Jun 2013 at 8:37

Attachments:

GoogleCodeExporter commented 9 years ago
I installed the latest build (729) and loaded the save game. It crashed again a 
few minutes later.

There's a lot of creatures, and a map covering the maximum area nearly - I 
wouldn't be surprised if there's a connection. I attach the logfile, but 
there's very little in it.

Thanks for your attention, Dayo

Original comment by dayoka...@gmail.com on 7 Jun 2013 at 9:11

Attachments:

GoogleCodeExporter commented 9 years ago
Incidentally, when it crashes, I can't recover windows without re-booting.

Original comment by dayoka...@gmail.com on 7 Jun 2013 at 9:12

GoogleCodeExporter commented 9 years ago
You should be able to recover with ctrl+alt+del and kill the process in task 
manager.

The saved game nicely reproduces the issue. It is pathfinding problem - hard to 
fix.
Currently KeeperFX uses pathfinding from original DK - rewritten algorithm is 
disabled because it's even more buggy.

Original comment by mefistotelis on 9 Jun 2013 at 12:50

GoogleCodeExporter commented 9 years ago
Ctrl-alt-del doesn't work. Desktop stuck in 640 x 480, and can't kill frozen 
KFX. Maybe a win8 issue? No biggie.

I'm trying to complete level by restricting access to the 'maze' to minimisethe 
no. of creatures with pathfinding problems. Think this'll work?

thanks for your work, Dayo

Original comment by dayoka...@gmail.com on 9 Jun 2013 at 1:20

GoogleCodeExporter commented 9 years ago
I did a few fixes in the rewritten pathfinding and re-enabled it. Hopefully it 
will now be less buggy.

The bugs reported on this code were that creatures were sometimes going in 
infinite circles. It has to be tested whether it is really fixed.

Original comment by mefistotelis on 14 Jun 2013 at 6:02

GoogleCodeExporter commented 9 years ago
I loaded a savegame from further on, and that finished OK. I then downloaded 
the original savegame (from earlier in the thread) and that ran for ~10 
minutes, but crashed again. This was with the 737 patch. Log attached.

Original comment by dayoka...@gmail.com on 14 Jun 2013 at 10:42

Attachments:

GoogleCodeExporter commented 9 years ago
Fixing the freeze problem will take some time. But enabling the rewritten 
pathfinding code makes it possible - and that's already a big progress.

The reason of the crash is that layout of the dungeon is too complicated and 
exceeds 4500 points which make up the dungeon layout used in pathfinding.

To work around this, try simplifying the layout - dig rectangular rooms in the 
maze.

Original comment by mefistotelis on 15 Jun 2013 at 11:17

GoogleCodeExporter commented 9 years ago
I edited the map to simplify the design, with a view to uploading an amended 
version. I stressed it by adding lots of creatures, and it went fine until it 
crashed as the dungeon heart exploded. Logfile is attached if you wanna check 
it was the same error, but I'm sure it was. In truth, my changes weren't very 
elegant, so I will try again, and see if I can do a better job of retaining the 
'prettiness' of the layout, whilst still reducing the number of paths 
significantly. Dayo

Original comment by dayoka...@gmail.com on 12 Jul 2013 at 1:10

Attachments:

GoogleCodeExporter commented 9 years ago
I did a nicer job of re-design, but crashed again. What exactly is the limiting 
factor in the pathfinding code? Is it 'branches' (the number of different 
routes possible from 'here' to 'target'), or cumulative distance of the various 
paths, or the number of deviations from linearity? It'd help to know whether my 
re-designs are helping or not (I have assumed it's the number of possible paths 
- original Kandro is full of decorative dead-end pathways). Dayo

Original comment by dayoka...@gmail.com on 14 Jul 2013 at 11:13

GoogleCodeExporter commented 9 years ago
The most problematic limit are 'points' - which are used to define bound 
coordinates of different areas. If a corridor ends, or changes ground to 
water/lava, points are generated to close the continuous area and start a new 
one, with different properties.

Original comment by mefistotelis on 14 Jul 2013 at 8:25

GoogleCodeExporter commented 9 years ago
For clarity, you say "when a corridor ends" - does a corridor that winds up & 
down and left and right, but has no branches, use less 'points' than a corridor 
with lots of decorative dead-ends?

another way of asking this - does a corridor end when it deviates from a 
straight line?

thanks

Dayo

Original comment by dayoka...@gmail.com on 14 Jul 2013 at 8:37

GoogleCodeExporter commented 9 years ago
I've modified the code to scavenge some more points, got 517 more. That won't 
be enough for Castle Kandro, but some simpler levels may stop crashing with 
that modification.

Original comment by mefistotelis on 14 Jul 2013 at 11:22

GoogleCodeExporter commented 9 years ago
good news, but as you say, Kandro may still be too much. Can you try to address 
comment #13? I don't think I understand the problem sufficiently well to know 
how to make Kandro reliably playable. Thanks.

Original comment by dayoka...@gmail.com on 15 Jul 2013 at 1:56

GoogleCodeExporter commented 9 years ago
The points are used to prepare kind of layout, "top view" of the level. So 
every corner in the level has its point - a digged 4x4 room has 4 points 
(unless there are columns inside, or tunnels to other rooms). A tunnel joining 
a room generates 2 additional points, and a column inside generates 4.

This layout is later used to prepare tree of triangles and regions - so there 
are other arrays which also have size restrictions.

Original comment by mefistotelis on 17 Jul 2013 at 4:35

GoogleCodeExporter commented 9 years ago
OK, so it's very complicated then!! Is there any way of knowing the scale of 
the problem? i.e. if KFX can now cope with ~4,500 points, do we know how many 
points the 'virgin' Kandro map has? It'd help to know how drastic the changes 
need to be to ensure it is robust / stable.

Incidentally, I assume that, as the map is being changed regularly as keepers 
lay out a dungeon, that this is a dynamic calculation that is constantly being 
performed? 

I wonder if the logfile could record the point number at the beginning of the 
level, so any map-maker can know if they may have a problem? An idle thought, 
anyway. Dayo

Original comment by dayoka...@gmail.com on 18 Jul 2013 at 1:34

GoogleCodeExporter commented 9 years ago
The layout is re-generated every game turn on which a creature seeks for a new 
way, or asks if it can reach a certain place.

If I'm not mistaken with the above, then just revealing the whole map at start 
should show how many extra points are needed.

To find the amount, run heavylog version - it will show on-screen message with 
exact number of points which couldn't be allocated. The same message will be 
also inside log file generated by this version.

Original comment by mefistotelis on 18 Jul 2013 at 3:25

GoogleCodeExporter commented 9 years ago
i ran a heavylog before entering the complex layout stuff, went so far to 
destroy the heart, then of course it froze up. i took most of the log away to 
keep it under 10mb

Original comment by Demon1986 on 21 Jul 2013 at 12:53

Attachments:

GoogleCodeExporter commented 9 years ago
I've had a look, but I don't know what I'm looking for. Can someone help? I'm 
trying to get an idea of how much 'complexity reduction' this map needs, as an 
approximate percentage. If I know this I can try to re-design the map so it's 
stable. Dayo

Original comment by dayoka...@gmail.com on 22 Jul 2013 at 3:21

GoogleCodeExporter commented 9 years ago
The error log attached here says it got out of triangles. Actually, only one 
triangle was missing. So - this time it wasn't points, it was another array.

Original comment by mefistotelis on 22 Jul 2013 at 4:21

GoogleCodeExporter commented 9 years ago
Find attached modifications to the level. I tried a few things, none of which 
were very satisfactory (large rooms within the castle etc), as they spoiled the 
intricate design. In the end I decided to turn lots of the corridors into 
impenetrable rock. The intricate design mostly remains, but pathing issues seem 
to be eliminated. I did 3 trials, each with 'worst case' events (I didn't 
simplify the castle innards by digging, dropped all my creatures all over the 
'maze' to make them all choose a route back, released the heroes, and then let 
them find their own paths etc). I tried to e-mail Nikolai, but predictably the 
e-mail address is no longer valid. Dayo

Original comment by dayoka...@gmail.com on 11 Aug 2013 at 4:05

Attachments:

GoogleCodeExporter commented 9 years ago
I've put the updated map to release data files; they will be published with 
KeeperFX 0.4.4.

Original comment by mefistotelis on 12 Nov 2013 at 8:50

GoogleCodeExporter commented 9 years ago

Original comment by mefistotelis on 22 Feb 2014 at 12:20

GoogleCodeExporter commented 9 years ago
I wondered if the bug you found recently in the pathfinding code might have 
made the original level viable again?

Original comment by dayoka...@gmail.com on 22 Feb 2014 at 2:59

GoogleCodeExporter commented 9 years ago
I doubt that it completely fixed the problem, but original level should no 
longer hang the game.

The only way to be sure is to replay it and look at errors logged - if there is 
nothing about exceeded triangles or no points for border - then it is 
completely fixed.

If the game won't crash, but there are pathfinding errors in log file - the 
simplified level should still remain.

Original comment by mefistotelis on 28 Feb 2014 at 9:39

GoogleCodeExporter commented 9 years ago
I re-loaded the original savegame, and it crashed again. I guess that closes 
the issue. Dayo

Original comment by dayoka...@gmail.com on 1 Mar 2014 at 7:17