JFC!!!!
#5111 posted by Mike Woodham on 2006/06/16 11:16:43
So, I've already split the map in two, (it was three, then one)removed huge swathes of brushwork to get under the marksurfaces limit and chopped out loads of monsters, and now I've hit a SZ_GetSpace error!
How do I find out how far over the limit I am and which items should I look to remove. I have a few switchable lights I could drop, I have loads of torches (three types) but want to keep them, I only have 86 monsters in this part of the map and half of those spawn-in as opposed to teleporting, I have the usual number of triggers (trigger_once, monster_push etc) and buttons (only 8).
Ho hum...
About Map Compiling
#5112 posted by Spirit on 2006/06/17 03:45:34
I just had a thought. With those looong compile times of big maps (like Tyrann: the long vis times required (~48 hours I'm guessing, still waiting...), how about something like SETI or the rc-72 project where lots of computers divide the cpu work. Would it possible to extend the compilers to do that?
Distributed Compiling
#5113 posted by Tyrann on 2006/06/17 06:22:13
I wish! I don't think it would be all that easy though. There was something called 'netvis' around a long time ago (I never had it, but read about it), which could apparently be used over a LAN to speed up vis. If anyone knows any more about this, I'd be interested in looking into it.
I'm currently vis'ing my map on the fastest machine I have access to (dual 2.8GHz P4 Xeon, running Linux) and it's already taken more than 48 hours. If anyone has a faster machine they can offer, let me know!
Findings...
#5114 posted by Tyrann on 2006/06/17 07:54:18
There was a version for quake, but it can't be downloaded now: http://www.bluesnews.com/archives/nov97-2.html
There were/are distributed tools for Half-Life compiling. Sounds like I was right about needing LAN speeds: http://collective.valve-erc.com/index.php?faq=source_mod_faq§ion=106159033732043100&question=106159940663775100
Oh well, that's enough time spent on that for now.
Multi Processor VIS Tool
#5115 posted by JPL on 2006/06/17 08:36:32
I already discussed that point with aguirRe during "Castle of the Dark Ages" fullvis runtime (around 51 days ... remember...). I asked him about multi processors vis executable existence, and maybe re-coding vis sources to target multi processors platform... He told me that first releases of vis.exe (correct me if I misunderstood please) were able to support multi processors... but on Unix environment only.. It was used by Id initially..
And as most of PC have only 1 processor.... it was not really a "priority"... well.. It is well known that it would divide runtime by two at most (or more if you have more than 2 processors installed on your PC)...
However, I never saw multi-processor PC platform... except at office (..under Linux... exactly like Tyrann's PC, but with P4 3.2GHz, 4Go RAM, 180 Go HD, etc..etc.. )...
Maybe these high performances machines will become cheaper in the next coming years... and then a multi-processors vis tool could help... though..
Time To Give Up?
#5116 posted by Mike Woodham on 2006/06/17 14:15:14
So, the map won't load in Fitzquake but does load in a couple of other engines. So, I am using aguirRe's 1.31 and although the map loads and I can play, I get some weird effects like certain monsters not taking their shots i.e. I cant kill them but they can kill me!
Also, some monsters don't wake up until I walk right up to them AND blast them with both barrels.
One question for aguiRre direct: you say the GetSpace error can be caused by too many static entites, max 128. Does this mean 128 different entites or a grand total of 128? And what is a 'static' entity: non-moving models (torches), triggers, doors?
My Qbsp output says that I have 1296 entities (1013 of which are lights) and I have 111 BspModels. The monster count is 118. There are 10 monster types.
Looking at the figures, is there any benefit to getting rid of torches and braziers, and replacing them with lights?
I'm gonna play with some worms :-(
SZ_GetSpace
#5117 posted by aguirRe on 2006/06/17 15:24:46
Right now I can't remember in which case the engine aborted with a GetSpace error when having too many static ents, but I recall having that problem.
In any case, the static ents are just the ones that are made static from QC by calling the makestatic function. I don't think there's any check for if they're the same type; it's the # makestatic calls that counts. Calling makestatic also frees up that edict.
In my engines, you can check the current status by using the staticents command. It's hard to say from your description whether replacing torches with simple lights would help.
If you send me the zipped stuff (or better just a link if it's big) to reproduce the error, I can probably help you more.
JPL
#5118 posted by Tyrann on 2006/06/17 18:08:14
I already discussed that point with aguirRe during "Castle of the Dark Ages" fullvis runtime (around 51 days ... remember...).
Argh! You're scaring me :-P
I asked him about multi processors vis executable existence, and maybe re-coding vis sources to target multi processors platform...
Yes, I know how to do this now (at least on Linux, but I think I can do the same for Windows). I'll put it into my next version of rvis and I'm sure aguirRe will pick it up soon after that. It won't be 'til after this map is done though.
AguiRre
#5119 posted by Mike Woodham on 2006/06/18 03:51:21
Thanks.
It seems to be a question of 'sharing'. I have 200 static entities, which is 72 too many. Max_edicts are 1024 in Fitzquake and your engine reports that I have 700 in my map.
So, remove 'makestatic' from my five models in QC and they become 'edicts', which will then total 900 with 124 to spare. Or does something else fall into the melting pot?
I'll try it later today anyway.
I'm Afraid That
#5120 posted by aguirRe on 2006/06/18 06:23:19
turning the statics back into dynamics might add to the SZ_GetSpace problem (and/or packet overflows) as they then have to be updated to the client.
Btw, Fitz can handle up to 8192 edicts via the max_edicts cvar. Although I wouldn't recommend pushing it that far ...
AguiRre
#5121 posted by Mike Woodham on 2006/06/18 07:53:16
OK, back on-track. I had mis-interpreted what the engine was telling me. When I looked at the .qc files, the 'makestatic' entries had already been turned off. Therefore the GetSpace error was not in fact to do with the staticents but probably with the edicts.
Turning some of the different types of torches back to 'makestatic' allows the game to run in FitzQ.
I now have 121 staticents and 235 edicts. So, I guess that means no more torches and the like but bung a few more monsters in.
I will now carry on, shaken but not stirred.
Tyrann
#5122 posted by JPL on 2006/06/19 00:01:01
I'll look forward to aguirRe's and your next vis version for sure !
QC Setsize
#5123 posted by aguirRe on 2006/06/20 16:39:54
Is it more or less mandatory in QC to call setsize together with setmodel? I've noticed that if setsize isn't called on some mdls, then in some cases, the mdl isn't rendered properly by the engine; it sometimes disappears. This behaviour seems generally engine independant.
Specifically, there's a monster_rider in Malice that consists of one leg part and one upper body part. The body's size isn't set properly and in some of the maps, the body is sometimes invisible when it moves around.
Hm..
#5124 posted by necros on 2006/06/20 16:54:26
don't know about rendering problems, but every time a model is set with setmodel, the bounds of the bbox are changed to the max and min of the largest frame in the model, so if you don't reset them, then collision will get screwed up.
AguiRre
#5125 posted by Mike Woodham on 2006/06/21 11:13:20
Same problem with SZ_GetSpace errors.
I added to the monster count and was at 119 with everything working OK. But I added one more (now 120) and crashed out of FQ with GetSpace: > 8010.
Using your GLQuake 1.31 I can see in the loading log 'SV_CREATEBASELINE: excessive signon buffer size'. And it tells me that it is 8010 and the maximum allowed is 7998.
I have 121 statice ents, 427 edicts and 120 monsters, which is at least 30 short of my target.
My question is a simple, "How can I reduce the signon buffer size?" But I suspect the answer is not going to be staightforward :-(
This is not a revolutionary map by any means (except that as an FMB map it's all my own work!!) and I have already slashed it to the bone, but I would like to finish it to at least a half-way decent standard.
As always, any help or pointers you can give will be much appreciated.
A Slight Development..
#5126 posted by Mike Woodham on 2006/06/21 13:04:32
I made the last two monsters (119 & 120) into spawned monsters (spawned-in not transported), and it now runs in Fitzquake.
Can I somehow read the SV_CREATEBASELINE value to see what effect the spawning had?
Is this the way to go i.e. make plenty of the monsters spawn in after the engine has loaded and is running?
The Signon Buffer
#5127 posted by aguirRe on 2006/06/21 14:25:34
is used by the server to build a list that represents the initial dynamic state of the map and this buffer is then meant to be sent to the client.
If the map contains too much dynamic stuff (e.g. monsters), then this buffer can't hold the entire list and the server aborts. The original buffer size was 8000 bytes, but due to a bug it can only handle 7998. I've increased that to 64k along with many other similar buffers.
As you've already noticed, delay spawned monsters usually help to cut down on the list size. This method is used extensively in e.g. Marcher or the recent JPL maps that utilize my variant of the old Zer trigger_spawn monster code. By spawning in monsters as the player is going physically through the map, the total dynamic load on the server is greatly reduced. Delayed spawning helps in the beginning and middle of a map and corpse removal helps in the middle and end.
There's currently no way in my engines to see the buffer requirements if it's lower than the old limit. Beware that some combinations of dynamic stuff (e.g. moving brushes) may cause overflow also during play or when reloading a saved game, even if seems OK at startup. My typical example is Menkalinan on Hard skill; try loading it with Fitz repeatedly and you'll see that sometimes it works, sometimes it doesn't.
AguiRre
#5128 posted by Mike Woodham on 2006/06/21 15:02:12
Thanks for that, I feel a lot better now.
I have had spawning monsters since the start of the build (Preach's "style" "1" code that I have adapted somewhat) but only used it for ambushes and return routes. I will now extend it.
I also have selective corpse removal (I didn't like the look of monsters sinking through overhead walkways) and numerous 'killtarget', more for tidying up than anything else, so I will review the further use of these.
On the one hand I am fedup with continually finding limitations within Quake (yes, I know it's ten years old!) but on the other hand, it's great fun learning new things about it :-)
Thanks again.
Tyrann
#5129 posted by Baker on 2006/06/27 03:20:17
You might try to contact the author of NetVis:
seanc ::at:: gearboxsoftware.com
I Wonder
#5130 posted by HeadThump on 2006/06/27 08:25:29
if anyone has been tempted to add Quake support to Q3map2 now that the code for it is GPLed. I build my maps testing for leaks with that compiler before compiling to Quake format, and the compile times are usually quicker.
Vis For Other Quakes
#5131 posted by Tyrann on 2006/06/28 18:34:19
Quick question for a Quake 2 or Quake 3 mapper: when you vis a map in those games, I assume it tells you the number of portals. Are the portal counts similar to those for Quake? If possible, could you post the console output from a vis job for a large map?
I'm just trying to get some perspective on some of the different tradeoffs used in the Q2/Q3 vis tools.
FWIW, there are some nice optimisations in there, and I've already managed to speed things up about 20% so far. That's only testing with medium size maps though (obviously I'm not going to run 10 different benchmarks on JPL's map ;).
Baker
#5132 posted by Tyrann on 2006/06/28 18:36:06
Thanks for the tip. I might try contacting him once the QExpo stuff is out of the way.
I'll Mail You A Vis Output
#5133 posted by pjw on 2006/06/29 11:54:35
tonight for a large Q3 map, if no one else gets around to it, and I don't get distracted by some shiny object.
I don't really want to post it because it would just be a big bolus of crap in the middle of the forum. :)
That'd Be Good
#5134 posted by Tyrann on 2006/06/29 14:00:10
Thanks pjw.
You Have Mail
#5135 posted by pjw on 2006/06/29 20:22:18
I sent the vis log for pjw3dm5, along with compiler/switch info; let me know if you need anything else.
|