Jump to content
The Dark Mod Forums

Segfault when dmap is completing...


PranQster

Recommended Posts

Has anyone run into this? Just after [store AAS], I get a segmentation fault (code to be quoted below). I'm running Linux, by the way.

I already had AI paths working, visportals all working, info_location ambient audio working (all of these were the most recent things I had been working on. I had a problem of the game locking up, along with X windows, when my player was in a certain location. I had just reverted a large section of func_static back to worldspawn to try to fix the freeze, but then the segfault started happening every time I ran dmap.

I can actually still run the map, but AAS32 is out of date and one single AI has problems with pathfinding now. Removing all path corners etc. does not help.

One additional potential factor is that the computer had been shut down and re-started, so perhaps a recent update of the system may be causing this..??

 

[Merge Leaf Nodes]
 1493 leaf nodes merged
[Merge Portals]
 4315 portals merged
[Melt Portals]
 7280 points inserted
[store AAS]
signal caught: Segmentation fault
si_code 1
Trying to exit gracefully..
--------- Game Map Shutdown ----------
ModelGenerator memory: No LOD entries.
--------------------------------------
Shutting down sound hardware
------ OSS Sound Shutdown ------
close sound device
--------------------------------
idRenderSystem::Shutdown()
------------ Game Shutdown -----------
--------- Game Map Shutdown ----------
ModelGenerator memory: No LOD entries.
--------------------------------------
ModelGenerator memory: No LOD entries.
Shutdown event system
--------------------------------------
shutdown terminal support

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

Complex finely detailed worldspawn can cause crashes fixed by converting to func_static so reverting some of your func_static back to worldspawn probably needs reversing. Hopefully you keep earlier copies of your map to revert to.

 

The original problem before you did that might be lack of monsterclipping resulting in over-complex pathfinding. You can test that quickly by dragging out a huge brush enclosing your entire map and giving it common/monster_clip. But basically if you have even a moderate sized map with AI but no monsterclip then you will get this problem. Mappers who prefer to leave monsterclipping till later could use dmap noAAS mapname so pathfinding is not created. If you try that then first delete all the aas files in your map folder that have your mapname. But the giant monsterclip is probably easier with monsterclip filtered out.

 

Other problems might be memory limit. In Windows we use a 4GB patch to extend that. I don't know if there is an equivalent for Linux. I'm not sure how to define this anyway but number of entities is a guide. Although the 4096 limit was extended to 8192 we all still find that around 4096 we hit this problem (probably because by then the average map is complex enough to start hitting other limits.) The Windows patch fixed this.

Link to comment
Share on other sites

Complex finely detailed worldspawn can cause crashes fixed by converting to func_static so reverting some of your func_static back to worldspawn probably needs reversing. Hopefully you keep earlier copies of your map to revert to.

 

The original problem before you did that might be lack of monsterclipping resulting in over-complex pathfinding. You can test that quickly by dragging out a huge brush enclosing your entire map and giving it common/monster_clip. But basically if you have even a moderate sized map with AI but no monsterclip then you will get this problem. Mappers who prefer to leave monsterclipping till later could use dmap noAAS mapname so pathfinding is not created. If you try that then first delete all the aas files in your map folder that have your mapname. But the giant monsterclip is probably easier with monsterclip filtered out.

 

Other problems might be memory limit. In Windows we use a 4GB patch to extend that. I don't know if there is an equivalent for Linux. I'm not sure how to define this anyway but number of entities is a guide. Although the 4096 limit was extended to 8192 we all still find that around 4096 we hit this problem (probably because by then the average map is complex enough to start hitting other limits.) The Windows patch fixed this.

 

OK. Thanks Fidcal. I had tried wrapping the func_static wall with a big monster_clip brush to try to fix that yesterday (is a low wall seen in my screenshots in my 'newbie mapper' post as the very top of my fort with torches along the outside). I had not done monster_clip on it previously since it is basically a wall and there is nothing for AI to bump into, or so it seemed at the time. The area in question is simply made of large rectangular brushes... nothing complex or exciting about it. I should change it anyway and build it a bit more interesting. I have a few ideas for these changes in any case.

I'll try chopping off the top of the building and re-doing it... it's very easy basic brushwork and can easily be saved as a prefab in case it's not the culprit and I want to drop it back into the map.

Unfortunately my backup map had been saved after whatever changes occurred which caused this problem... so I'll have to do some deconstruction now.

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

Just to clarify, AI do not see even simple func_static walls so would blindly try to walk through them if they were in the way. AI see only brush worldspawn and movables. They respond to door entities but they can't see them. They do not see any other entities or even worldspawn patches. They can detect the player and other AI. Here is an example of monster clipping.

 

This dining room is how we see it...post-400-130463556528_thumb.jpg

 

Without change, this is how AI would see it.post-400-130463560296_thumb.jpg The fireplace is all worldspawn but not some of the detail around it.

The chair that the noble will sit on is a moveable. Everything else is still there but he can't see it. The table and other furniture even torches and gaslights on the wall would obstruct him if he blundered into them. He collides with them but doesn't know it so keeps walking blindly.

 

This is after monsterclipping. post-400-130463562554_thumb.jpgThis is what the AI actually sees. Just a simple maze of monsterclip worldspawn brushes. It goes right up to the ceiling so as to simplify pathfinding. We don't want pathfinding on top of the table etc... Note that I don't tightly monsterclip each item individually like wrapping a birthday present. I try to include as much as possible in one big block and avoid little gaps where the AI can't go anyway. They do not need to walk into every crevice where they might get stuck. Keep it simple and large as possible.

Link to comment
Share on other sites

Just to clarify, AI do not see even simple func_static walls so would blindly try to walk through them if they were in the way. AI see only brush worldspawn and movables. They respond to door entities but they can't see them. They do not see any other entities or even worldspawn patches. They can detect the player and other AI. Here is an example of monster clipping.

 

This dining room is how we see it...post-400-130463556528_thumb.jpg

 

Without change, this is how AI would see it.post-400-130463560296_thumb.jpg The fireplace is all worldspawn but not some of the detail around it.

The chair that the noble will sit on is a moveable. Everything else is still there but he can't see it. The table and other furniture even torches and gaslights on the wall would obstruct him if he blundered into them. He collides with them but doesn't know it so keeps walking blindly.

 

This is after monsterclipping. post-400-130463562554_thumb.jpgThis is what the AI actually sees. Just a simple maze of monsterclip worldspawn brushes. It goes right up to the ceiling so as to simplify pathfinding. We don't want pathfinding on top of the table etc... Note that I don't tightly monsterclip each item individually like wrapping a birthday present. I try to include as much as possible in one big block and avoid little gaps where the AI can't go anyway. They do not need to walk into every crevice where they might get stuck. Keep it simple and large as possible.

 

Thank you. That clarifies things quite a lot.

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

Just to clarify,

 

Wow, that post should go on the wiki along with the images, it makes it immidiately clear what monsterclipping is about! :wub:

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Wow, that post should go on the wiki along with the images, it makes it immidiately clear what monsterclipping is about! :wub:

 

Yeah. After Fidcal's post, I immediately re-did all of my monster_clip brushes. I had been trying to make tidy birthday packages.

 

Funny thing... when I tried to wrap my new roof-top walls with monster_clip, I again got that crash at the end of dmap. There's nothing complex up there, so I think I'll leave it unwrapped.

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

One qualifier I should mention wrt monster clipping, since I'm about to submit changes to AI relighting lights ...

 

When an AI spots a light that's out, and it's supposed to be on ("shouldBeOn" spawnflag = "1"), he picks a spot where he will stand to relight the light. If you have a candle sitting on a table, he could approach that candle from any angle in the room. So he could be arriving at the front of the table, or he could be arriving on either side.

 

If you've monster-clipped the sides of the table because there's no room for him to get in there, that's fine. But if you've monster-clipped the sides because he could easily fit, but you don't want him in there, you might want to rethink that. If he can't relight from the sides, it reduces the odds that he'll relight the light, because he can only do so from the front.

 

Relighting lights isn't a frequent occurrence, but it does add a bit to the variations in AI behavior, which is a good thing.

Link to comment
Share on other sites

Hmm... new issue. What could cause this?

If I add a rat anywhere in my map, I get the following:

[Write AAS]
writing maps/j8/j8d.aas32
done.
	2 seconds to create AAS
=======================================================
no entities in map that use aas100
=======================================================
[brush Load]
  569 brushes
[brush Merge]
  569 original brushes
   17 brushes merged
 1069 brush sides clipped
[brush BSP]
  552 brushes
  437 grid cells
  100 %
 4909 splits
[Portalize BSP]
 9819 nodes
 9819 nodes portalized
[Remove Outside]
 2475 solid leaf nodes
   89 outside leaf nodes
 2346 inside leaf nodes
[Gravitational Subdivision]
  494 subdivisions
[Merge Portals]
  400 portals merged
[Melt Portals]
 7366 points inserted
[Ledge Subdivision]
  445 ledges
  863 subdivisions
[Merge Leaf Nodes]
 1649 leaf nodes merged
[Merge Portals]
 4674 portals merged
[Melt Portals]
 8394 points inserted
[store AAS]
signal caught: Segmentation fault
si_code 1
Trying to exit gracefully..
--------- Game Map Shutdown ----------
ModelGenerator memory: No LOD entries.
--------------------------------------
idRenderSystem::Shutdown()
------------ Game Shutdown -----------
--------- Game Map Shutdown ----------
ModelGenerator memory: No LOD entries.
--------------------------------------
ModelGenerator memory: No LOD entries.
Shutdown event system
--------------------------------------
shutdown terminal support

 

If I add a horse instead, no problems... just a problem with the rat.

Edited by PranQster

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 2 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
×
×
  • Create New...