Jump to content

MMaps Redux


Guest auntieMangos

Recommended Posts

seems this bug with mob aggro appears after 30 mins of uptime (that's why i didn't detect this bug after fresh mmap installation :/ ) and even HiRes mmap extracting can't help! Is there the only way to fix it - disable mmaps at these locations? Many BC instances are bugged too.

another bugged place at Stranglethorn Vale -14473.779297 144.225128 2.056659 0 2.334106

i was also tried mmap.ignoreMapsIds = "0,1" then .reload conf but this doesnt helps O_o - mobs still tries to aggro and immediately evades, normal mobs still using pathfinding at these maps, so i think it applies only at server restart.

I found interesting thing, the bugged mobs is cured after some time when no players walking near these mobs at 500 yards (looks like the grid is unloaded), because i returned to this place again and these mobs works normal now.

Looks like mobs are bugged when someone loaded they in grid and stay here more that 10 mins. Can someone reproduce it?

Link to comment
Share on other sites

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

Found it. It can not load more than 64 mmap tiles. I am trying to change m_maxTiles in dtNavMesh::init in DetourNavMesh.cpp right now...

EDIT: So far, so good - works

m_maxTiles is loaded directly from MAP_ID.mmap files, it is put there by extractor in MapBuilder::buildNavMesh().

It limits the maximal number of tiles per map. So, if lets say, in map 530 there are 1024 tiles total, it should be 1024.

You saying it is not loaded or stored/calculated properly?

Link to comment
Share on other sites

well, I have seen "ERROR:Error: could not load XXXXXXX.mmtile into navmesh" in log so many times, so i followed the code, tried to show .debug mmap stats several times and no more than 64 tiles were loaded. So i changed the number to 2048, and it shows no more errors and creatures are not evading, and when I type .debug mmap stats, more than 64(more than one hundered actually) tiles is loaded.

Link to comment
Share on other sites

Confirm KAPATEJIb's posts. I have no problem with mob's aggro in world but have problem in instance. Uldaman for example. First mob immidiatly evade... I think that mob can't find way. Mob try to closer to me, move but go to evade.

Pet's problem: Warlock with pet try to go to instance (Uldaman). Pet in instance stay as Unknown and not move. Change config (off mmaps), reload config - no problems -> so this problem from mmaps.

And I have get many memory leak in debug... Can't confirm at it Release...

Link to comment
Share on other sites

Doh... fixed. If you build 1 tile from each map, it should rewrite the .mmap file with the correct info.

Sorry, I'm bad at math.

so we need to rebuild mmaps with _new_ MoveMapGen? Is there a way to make it in one command or i should rebuild mmaps completely ( again waiting for ~6 hours :/ ) ?

Link to comment
Share on other sites

you can change m_maxTiles size in dep/recastnavigation/Detour/Source/DetourNavMesh.cpp in dtNavMesh::init (line 237) as temp solution until you rebuild mmaps. But, as faramir said, it is enought to rebuild single tile from every map. Or, you can change generator's code temporary, so it will skip all tiles and generates only .mmap files

Link to comment
Share on other sites

Doh... fixed. If you build 1 tile from each map, it should rewrite the .mmap file with the correct info.

Sorry, I'm bad at math.

You beat me into pushing it :)

But i think we can do with 1024 (or 2048) tiles there and save 2 more bits for polys. Since bigest maps have just under 1k tiles.

I also pushed something to hopefully prevent some memory leaks. Even tho, this case, most likely was caused by this tile number limit.

Link to comment
Share on other sites

To fix maxTileCount problem quickly:

Apply this patch, then run movemapgen like you did before. It will 'patch' all your .mmap files.

You can revert the patch change afterwards.

As for using 1024 or 2048, sooner or later we're going to have tilecount go up by few factors.

Seems like the only really good way to eliminate those long, thin triangles. It won't be soon, but we'll at least see how well it works.

Link to comment
Share on other sites

To fix maxTileCount problem quickly:

Apply this patch, then run movemapgen like you did before. It will 'patch' all your .mmap files.

You can revert the patch change afterwards.

As for using 1024 or 2048, sooner or later we're going to have tilecount go up by few factors.

Seems like the only really good way to eliminate those long, thin triangles. It won't be soon, but we'll at least see how well it works.

Apply this patch, reextract mmaps, replace old mmaps by new. Crash at player login:

Call stack:
Address   Frame     Function      SourceFile
004057FA  00000000  dtNavMeshQuery::findPath+21A
007B6FE9  00000000  PathInfo::BuildPolyPath+A09
007B5EB4  00000000  PathInfo::PathInfo+444
00788536  00000000  WaypointMovementGenerator<Creature>::MoveToNextNode+146
0078740C  00000000  WaypointMovementGenerator<Creature>::LoadPath+1BC
00787503  00000000  WaypointMovementGenerator<Creature>::Initialize+13
0047A793  00000000  MovementGeneratorMedium<Creature,WaypointMovementGenerator<Creature> >::Initialize+13
004B495F  00000000  MotionMaster::Initialize+12F
00500753  00000000  Creature::AIM_Initialize+A3
00502FC7  00000000  Creature::LoadFromDB+517
007AA653  00000000  LoadHelper<Creature>+173
007A9D0B  00000000  ObjectGridLoader::Visit+17B
007AAD3F  00000000  VisitorHelper<ObjectGridLoader,Creature>+F
007AABF0  00000000  VisitorHelper<ObjectGridLoader,Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > >+10
007AAAE3  00000000  VisitorHelper<ObjectGridLoader,GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > >+23
007AAA20  00000000  VisitorHelper<ObjectGridLoader,TypeList<GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > > >+10
007A9EBC  00000000  ObjectGridLoader::Load+1C
007A9FEC  00000000  ObjectGridLoader::LoadN+DC
0048DDE9  00000000  Map::EnsureGridLoaded+1D9

Link to comment
Share on other sites

Another error in generator, fixed. It affected maps with 'wdt has wmo' = TRUE in this list.

But it also exposed a bug in core - if there is no tile loaded but there is a navmesh, it seems like mobs always evade.

I appologize to everybody who is struggling with...

  • ...bugs
  • ...re-re-re-generating mmaps all the time
  • ...understanding what the hell is going on ;)

We're making progress, so thank you for everybody that is helping test!

tilelimit.png

Link to comment
Share on other sites

This has probably been mentioned before, but I think it would be a very good idea to multi-thread this. I have 8 logical cores, and it takes FOREVER to run this. If someone is not already working on this, I would be glad to give it a shot, or if someone is already working on it, I would be glad to help them out.

Link to comment
Share on other sites

  • some creatures (succubus pets south of booty bay) travel slower and slower as they advance along the path.
    Almost like they try to recalculate path, but it gets added onto the end of the previous path.

Can you give me .go location to test this issue? on preferably static NPC.

This has probably been mentioned before, but I think it would be a very good idea to multi-thread this. I have 8 logical cores, and it takes FOREVER to run this. If someone is not already working on this, I would be glad to give it a shot, or if someone is already working on it, I would be glad to help them out.

Actually, this is something already exists, in a way.

Different map's extraction processes independent one from another. keep in mind that you can explicitly input the maps Ids you want to extract. So, no actual threading is needed.

What I do when extracting all maps, is usually running extractor at 3-4 copies. One for every major continent and one for the rest.

You can make some really nice bash script to extract maps loading them between the instances. Something that gets the # of CPUs and then loads the extraction equally.

Feel free making it. I'm sure people will appreciate it.

Thats about the extractor, about the core : you cant really load the balance properly while mangos runs all maps on the same thread. When it wont, we wont have to spread anything either.

PS: thank you all guys for testing and reporting. Above all, remember - this is work in progress.

PSS: Wojta/KiriX do you have those crashes with newly extracted maps?

Link to comment
Share on other sites

Fully, it will create the missing tiles.

is there a chance to just extract only "missing files" instead of full re-extracting? I mean this should be a check somewhere if tile is already exists in already created mmap folder and we should just skip it. Full extraction takes too much time :/

I think extractor should have own "version", like mmapgen b1.0.1 and etc, this can help users to see if they running old extrator or no

EDIT:

I found a way to not use full re-extracting

use this in .bat file

MoveMapGen 13 --hiResHeightmaps true

MoveMapGen 25 --hiResHeightmaps true

MoveMapGen 29 --hiResHeightmaps true

MoveMapGen 34 --hiResHeightmaps true

MoveMapGen 35 --hiResHeightmaps true

MoveMapGen 42 --hiResHeightmaps true

MoveMapGen 43 --hiResHeightmaps true

MoveMapGen 44 --hiResHeightmaps true

MoveMapGen 48 --hiResHeightmaps true

MoveMapGen 70 --hiResHeightmaps true

MoveMapGen 90 --hiResHeightmaps true

MoveMapGen 109 --hiResHeightmaps true

MoveMapGen 349 --hiResHeightmaps true

MoveMapGen 369 --hiResHeightmaps true

MoveMapGen 389 --hiResHeightmaps true

MoveMapGen 409 --hiResHeightmaps true

MoveMapGen 429 --hiResHeightmaps true

MoveMapGen 449 --hiResHeightmaps true

MoveMapGen 450 --hiResHeightmaps true

MoveMapGen 540 --hiResHeightmaps true

MoveMapGen 542 --hiResHeightmaps true

MoveMapGen 544 --hiResHeightmaps true

MoveMapGen 545 --hiResHeightmaps true

MoveMapGen 546 --hiResHeightmaps true

MoveMapGen 547 --hiResHeightmaps true

MoveMapGen 548 --hiResHeightmaps true

MoveMapGen 550 --hiResHeightmaps true

MoveMapGen 552 --hiResHeightmaps true

MoveMapGen 553 --hiResHeightmaps true

MoveMapGen 554 --hiResHeightmaps true

MoveMapGen 555 --hiResHeightmaps true

MoveMapGen 556 --hiResHeightmaps true

MoveMapGen 557 --hiResHeightmaps true

MoveMapGen 558 --hiResHeightmaps true

MoveMapGen 565 --hiResHeightmaps true

MoveMapGen 576 --hiResHeightmaps true

MoveMapGen 598 --hiResHeightmaps true

EDIT:

this doesn't helps :( The server still crashes at player add to some maps (idk what maps cause a crash...).

need full re-extraction... very bad... the check if file already exists and just skipping it would save our nerves and time, and better to do it like parameter, something like "--skip existed"

Link to comment
Share on other sites

still getting crashes ever with re-extracted mmaps :(http://paste2.org/p/1081042

the error appears at some players logging into game

2010-11-09 23:13:40 Error: Could not open mmtile file '/usr/local/mangos/work/mmaps/0013615.mmtile'

2010-11-09 23:13:42 Error: Could not open mmtile file '/usr/local/mangos/work/mmaps/0004906.mmtile'

and even more if more players logged in.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use