Jump to content

MMaps Redux


Guest auntieMangos

Recommended Posts

extract the mmaps takes more than 4 hours Oo

Well before some of my tinkering, it was taking 3-4 times that long. So you're welcome :)

Map 000 builds fine with --hiResHeightmaps set as false but 001 still crashes. On Win 7 x64 4GB memory, plenty free. =)

Could you give me some more details?

Confirm this is what you're using...

movemapgen --hiResHeightmaps false --skipContinents false --debugOutput false

And tell me if you compiled for Win32 or x64.

It's still a WIP, but I've reworked the memory allocation strategy. The G3D stuff wasn't cooperating, so I'm just using more intelligent code which can pre-allocate what is needed. The 'Creating ChunkyTriMesh...' part is really memory intensive, it quadruples the triangle storage while it works. I wouldn't be surprised if you can only do hiResHeightmaps continents on a 64bit architecture, but I'll do some math and see.

Link to comment
Share on other sites

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

Compiled under win7 x64, currently building mmaps, even if the bash tell me it's working on map 000, i have 001 file in mmaps directory.

i used

movemapgen --hiResHeightmaps false --skipContinents false --debugOutput false

crash after 0003625.mmtile. bash says begin "building map 001"

@faramir : is this a writing error or the file named 001.map is not related to map 001 o_O

Could someone tell me how many mmtile he got for map 000.

Regarding at ressource it appears it only use one processor (correct me if i'm wrong). I think, due to the time it take, there should be a option where processor numbers could be enter.

One could make map 000, second 001, etc... and another could make other map which go way faster.

Link to comment
Share on other sites

faramir I used exactly this :"movemapgen.exe --hiResHeightmaps false --skipContinents false". I only have the option to compile as Win32 (why? :P) so that's what I used.

Curious you should be able to run multiple instances of the generator, each processing a different map. Just put the map id after program name like 'MoveMapGen.exe 000'. Would be cool if that was built in though! ^_^

Link to comment
Share on other sites

i just compiled everyting (core,and movemapgenerator) under win7 x86 , i have build the maps and it works 100% nice job so far faramir!

I assume you used --skipContinents true? Try building with:

MoveMapGen.exe --skipContinents true --hiResHeightmaps false --debugOutput false 001

In my case, it crashes after loading the heightmaps, on "[33,42]: Intersecting meshes" (~1 min).

EDIT: Are you on Linux or Windows?

Link to comment
Share on other sites

Crashlog :

Critical Error - MoveMapGen.exe
Memory manager returned NULL: out of memory?  Expression: data d:\\MaNGOS\\Source\\MaNGOS2\\dep\\include\\g3dlite\\G3D/Array.h:154  

At attempt to extract map 571. There is definitely something wrong with those map, as map 000 take a long time, with thos map the [x,y] are way too long.

Link to comment
Share on other sites

I assume you used --skipContinents true? Try building with:

MoveMapGen.exe --skipContinents true --hiResHeightmaps false --debugOutput false 001

In my case, it crashes after loading the heightmaps, on "[33,42]: Intersecting meshes" (~1 min).

EDIT: Are you on Linux or Windows?

by adding 001 at the end you nullify --skipContinents true, it's written in the readme.

There is something in log.txt only with map 571, 001 and 530 don't produce logfile.

Link to comment
Share on other sites

Clearly. This is why my original post explicitly says that I'm talking about continents 001, 530 and 571. Again, low res Eastern Kingdoms and all of the instances seem to build just fine. The instances can also be built with hiResHeightmaps set to true.

Link to comment
Share on other sites

Regarding the continents:

I wasn't initially concerned with them, because I think pathfinding is most important in instances and PVP areas (because pets are stupid).

There are other important things I want to work on resolving, but I'm going to give this my best effort until I think it's wasting time :)

when creature doesn't find a path it fly to the player

You are correct. If no path is found, creatures default to the old behavior.

This is mainly an artifact from when this project was started, because:

  • * paths were constrained to 1 tile, which was a severe limitation for large instances
    * using the old vmaps implementation created "holes" in some meshes, and inserted "walls" in others, which were problematic to say the least

My implementation of pathfinding in mangos' core is a proof-of-concept, and it is by no means complete (or even efficient or stable).

Even the generator is lacking at this point. Lava is a perfectly suitable surface to walk through, and I still have no idea how I'm going to break the heightmap mesh when a model protrudes from underground.

Even so, I am still extremely satisfied every time I watch a monster walk around a wall. I think I need to get out more.

Link to comment
Share on other sites

problem with continent movemaps is with rcCreateChunkyTriMesh function

[ntris*3] converts into negative value like -842150451

seems like that is fix:

int triCount = m_triangles.size() / 3.3;

UPD different maps need different divisor (like 3.3 for map 0, 3.5 for map1, etc)

Link to comment
Share on other sites

int triCount = m_triangles.size() / 3.3;

If you do this, you're not using all of the mesh data.

It takes three floats to define a vertex:

vertCount = m_vertices.size() / 3;

We reference m_vertices data with indices, which are stored in m_triangles. It takes three vertices to define a triangle. So:

triCount = m_triangles.size() / 3;

Link to comment
Share on other sites

Hehe yea best fix ever..."just scrap some of the data" :)

Anyway, I don't think I understand why you need to load the whole map and use rcChunkyTriMesh anyway, to me it looks like you could just load, rasterize and unload each tile independently...

Link to comment
Share on other sites

Look at first post. I might add that you have to copy the mmap extracto to the same folder that contains vmap folder. And you should create a mmaps folder too. If you can't manage to make it work you will have to wait until it's done.

btw faramir your directories check failed for me, all i had was "unable to write...." forgot to mention :)

and what the use of meshes folder ? Mine is empty.

Link to comment
Share on other sites

I assume you used --skipContinents true? Try building with:

MoveMapGen.exe --skipContinents true --hiResHeightmaps false --debugOutput false 001

In my case, it crashes after loading the heightmaps, on "[33,42]: Intersecting meshes" (~1 min).

EDIT: Are you on Linux or Windows?

i mentioned there that i compiled under windows 7(win7) x86

Link to comment
Share on other sites

yes i built all of them. Took like 3 hours

Unless you have a monster machine, 3 hours seems way too quick. It took me about the same time to build the instance maps, and I'm sitting on Core 2 Duo 3.0GHz. Again, please try running --skipContinents true --hiResHeightmaps false 001, or at least actually see if your mmaps directory contains any map tiles that start with 001.

Link to comment
Share on other sites

yes i built all of them. Took like 3 hours

I think you used only movemapgen and SkipContinent is true by default so you build only the instance mmap. We are not insulting your inteligence or something but with correct machine eastern kingdoms take like 1 hour and a half to complete.

--skipContinents true --hiResHeightmaps false 001

there is still no point using --skipContinents true and 001 at the same time

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