|
#20667 posted by metlslime on 2021/01/20 01:24:19
I think this is the solution, if I understand your problem:
original release (pak0.pak) has 2 maps: origin.bsp, target1.bsp. And origin.bsp's changelevel entity points to target1.
then you release a patch (pak1.pak) which contains target2.bsp, and also contains origin.ent which updates the changelevel entity to point to target2.
The solution you proposed is not possible AFAIK. QuakeC could have a modified changelevel entity that takes two different mapnames, but doesn't have a way to check if they exist on disk.
That's The Way It Is
It is as I thought, then. The problem is that there are two versions of the same origin map, each leading to the same target level, but with different names.
It would have been easy if I didn't have to include a patch for the origin map as well, forcing me to decide which target level should be the "chosen one". That really leaves no option other than to include the target map itself to make sure everybody gets the same result. I had hoped I wouldn't have to include an entire map for this, but apparently it's the only way.
Probably
#4196
I can't get this to work and I don't know what I'm missing.
// entity 175
{
"classname" "info_notnull"
"think" "InitTrigger"
"nextthink" "5"
"touch" "health_touch"
"healamount" "1"
"use" "SUB_regen"
"targetname" "heal1"
"target" "heal1reset"
// brush 0
(blah blah blah)
// entity 176
{
"classname" "trigger_relay"
"origin" "1742 320 1214"
"targetname" "heal1reset"
"target" "heal1"
"wait" "1"
}
Hurp Purp
#20676 posted by negke on 2021/02/14 09:40:39
What you're missing is that regular medkits (healtype 0 and 1) only heal the player if he's below 100. Use healtype 2 to go above. And unless it serves a special purpose, the relay isn't needed (wait doesn't work on it anyway); the trigger can fire itself after a delay.
That Did It
Thanks ne🅱️ke.
New Maps Should Be Rendered Without Light Effects Until Lit By Mapper?
#20678 posted by EARP on 2021/02/27 23:16:17
when building a quake map the area is supposed to be fully dark where the mapper sets all the lighting. i have done re installs of my tools and even changed the compile tools used. right now i am working with trenchbroom and i had been working with worldcraft. anyway, whenever i start working on a new map the floor and even additional brushes are lit up as if i have set lighting and i haven't. when in trenchbroom i do not see any values set for anything in worldspawn for light, _sunlight etc. i am not sure if my settings are messed up in darkplaces as far as lighting goes. my gamma is set to 1 though as i have noticed that just that setting alone can cause issues. i have tweaked settings before where the map rendered dark with no lighting effects going on and will revisit that through trial and error. does anyone know what is causing this?
EARP
#20679 posted by metlslime on 2021/02/28 00:10:55
If you have no lights placed in your level (or don't run light.exe), I think it will render fullbright in the engine.
#20680 posted by EARP on 2021/02/28 02:30:46
i am running a version of light.exe but i do not have any lights placed on the map and no values were placed in the world spawn. i read about _sunlight that is located in worldspawn but there is another tag named light as well there (there isn't enough info on these for me to understand how they work). anyway, it is lighting up fullbright despite this fact. maybe i will place an actual light as far as quake goes to see if it becomes dark. i guess it could be my darkplaces settings but that are fudged up.
#20681 posted by muk on 2021/02/28 02:50:54
m8, if you have no lights in your map it renders fullbright, as metl said
#20682 posted by EARP on 2021/02/28 05:08:14
yes thanks @metlslime @muk
something else is going on but i will take a look at it, adding took care of most of the issue
Compiling Profiles Disappear On Me
#20684 posted by Jaeon on 2021/03/14 03:44:41
I set up four working compiling profiles for Quake 2, Heretic 2, Kingpin and Hexen 2. Next time I open the editor there exist say only Quake2 or Quake 2 and Heretic 2 or None or just Kingpin. It's random as far as I can tell. What am I doing wrong? Is it possible to save or export the compiling profile so I needn't do it again and again?
Wait, BSP Is Not Dead?
#20685 posted by Hellkeeper on 2021/03/30 19:38:58
Haven't seen a mention of it here, but it seems BSP has been revived in 2018 (around the last time I posted something here) and has been making steady progress since then.
https://www.bspquakeeditor.com/
I remember it being abandoned since 2007.
Map Bounds
#20686 posted by 3t0 on 2021/03/30 23:47:55
This is question about metrics.
Before BSP2 (limit removing), I remember there were several limits to map size, not only due to bsp format but also due to networking packet format, etc.
As far as I understand BSP2, it increases number type of indexes so it allows bigger count of map structures (vertices, faces etc), however this does not automatically mean map (boundaries) can be bigger.
I am playing mainly with QSS and FTEQW and can not find any information on how big maps can be in these engines. Does anybody know?
Protocol Bound
#20687 posted by Preach on 2021/03/31 00:12:50
Hi 3t0. Without giving you an actual figure, I can point you in the right direction of the problem...
Unlike the vertex/face limits, the limit on the dimensions of a map in standard Quake is not actually due to the BSP format. Instead the limit is due to the network protocol used in Quake, which encodes positions in a fixed precision format that "loops" after 8000 units. Worth noting that even in single player, the game sends network messages between client and server processes on the same machine.
So an engine that supports BSP2 but uses the standard network protocol has the same limits on size as the original Quake engine. That said, QSS and FTEQW may support upgraded network protocols that allow for larger locations to be encoded - now that you know it's about network protocol you might have more success uncovering what limits the engines raise.
One last thing to realise is that if the engines do support larger maps, they'll support them just as well in regular BSP maps as they do in BSP2. Obviously the higher limits will allow you a better level of detail in a map that's testing the limits...
Protocol Bounds Resources
#20688 posted by 3t0 on 2021/03/31 21:17:26
Thank you Preach!
I knew as much from my Quake source spelunking days, and you pretty much confirm this.
I also am aware, that back in those days, in SP mode, network was being simulated using memory buffers, so that both SP and MP code could use share single NET logic. I also understand that that is the reason, we have separate SSQC and CSQC nowadays.
What I have been unable to dig out, is the currently supported map bounding box with regard to network code (even in SP).
Experimenting with QSS and it's netplay (just coop part), it seems that protocol was vastly improved as we could now easily play the AD game by just forwarding single port as readme says. I remember there being problems in the past.
Given the protocols saw new developments, would it be safe to assume network packet positional limits were updated?
Would anybody here know?
If nobody here does, it seems for now, the best way to find out this information would be to use Luke power and investigate whether QSS & FTEQW advanced protocols support bigger coordinates, right?
I wanted to avoid code dives by searching first, but my search-fu is not what it used to be and I can't find any current quake protocol limits (nor descriptions).
Thank you for pointing out though, that if such protocol is supported, map being BSP or BSP2 is entirely different thing, as I guess coordinates of both BSPs are stored in floats which are potentially unlimited thus both map formats would be able to express huge player positions without wrapping up.
#20689 posted by Spike on 2021/03/31 21:38:04
bsp29 (read: vanilla) supports bounds of up to +/-32767 units.
this limit is enforced due to the node+leaf lumps using signed shorts for their bounds. actual vertex info etc uses floats though. FTE has some special magic that allows it to ignore those leaf+node bounds and recalculating them itself, which basically makes that limit irrelevant. alternatively bsp2 upgrades them all to floats also.
this combined with protocol upgrades to network coords as a float means that the theoretical maximum map size possible is +/-FLT_MAX, aka +/- 3.40282346638528859812e+38F which is such a large number that you'll basically only ever see it written in exponential form. hint: really really big.
in practical terms however, the floating point precision will degrade far before you reach those bounds. acceptable precision is a much more subjective limit. so you should probably limit yourself to +/- 4,194,304 units, give or take an order of magnitude.
this is the same limit enforced by the qcvm. expect problems ranging from inaccurate traceboxes to severe gpu issues (like entire walls disappearing without even zfighting).
BSP2 files have a maximum file size limit of about 4gb. I suppose it may be possible to hack around to get 8gb out of it perhaps if you place the largest lump last, but that kind of thing is somewhat crazy talk. personally I don't have enough ram for that sort of behemoth.
plus you really don't want to force the engine to have to walk that many nodes. not everything will scale well.
so yeah, don't bother trying to find any hard limit, its high enough to be kinda irrelevant. that's the theory anyway.
#20690 posted by 3t0 on 2021/04/01 01:51:13
Thank you Spike!
I presume you are *the* Spike responsible for awesome QSS fork and FTEQW, correct?
So with modified protocol there is basically no limit, but numerically, many game's internal algorithms will start to break much sooner than that. Good to know that there is such mode of failure possible! I was certainly not expecting that.
From your knowledge of the codebase you then estimate this upper limit being roughly around 4,194,304 in both directions (positive & negative).
Okay it's not "that big", but still considerably bigger than 8000u that Preach estimated for old protocols and way more than 4000u shown in some Trenchbroom screenshots (or maybe that's same limit, Preach just posted maximum "width" from -4k to +4k, which it probably is).
Well I think one may quickly hit 8k limit relatively easily, if not very careful.
But from this information it seems, that anything that fits within +-16~32ku is relatively okay. Right?
Then I also presume that 4gb for map limit is when using "standard" ericw compilers, without any sort of magic reordering. First: this reordering, like to allow for 8g, would require modified compilers, right, it's not like it can be used already? Second: does this take into account external .lit (I am not sure QSS supports them but FTEQW certainly does)? Or external .lit have another 4g limit of their own? It being 4g, which is nice round number, I presume it's because file "chuk" size is measured in uint32_t, right?
My main question however is: this new protocol, is it active automatically? I assume you don't need to do anything and game should be using it by default. Correct, or?
I am asking because I've been playing this one specific map once, which I don't know name of right now (but could dig it out, if wanted), and I have a hunch, that when noclipping around while studying geometry, I accidentally wrapped around. I am not sure, if I really wrapped around, as my memory is hazy and I was too mesmerized by the architecture and forgot what exactly happened, but it made me remember there might be a map size limit. Could it be that new protocol was somehow not active (due to map fitting within 8Ku for example)?
Once again thank you so far! This was exactly the answer I was hoping for.
Floats
#20691 posted by Spike on 2021/04/01 06:30:45
qss defaults to fte-999. note that config files that try forcing `sv_protocol 666` can disable this.
fte's default is to guess whether to use its 'bigcoords' extension based on whether an entity is outside the +/-4k boundary or not. an info_notnull is enough to force it. it uses ents rather than bsp geometry so that eg pseudo-skyboxes or otherwise unreachable scenery can exist without losing backwards compat (so yes, its possible for it to guess badly). You can always set `sv_bigcoords 1` to force it, if you want.
so yes, config files are different, but they're otherwise equivelent.
QSS uses fopen et al, and thus is likely to be limited to 2gb file sizes.
FTE uses 64bit file offsets, but this is more for pk3s than anything else. Abusive bsps are completely untested.
the 8gb value is a theoretical max - if any map actually reaches it then the performance when actually playing it is likely to be so abysmally low as to be futile to try playing it.
Personally I prefer the occasional loading screen if only for a sense of progress, something that can be lost when you're 'stuck' trying to make progress through a 256mb labyrinth of a bsp. an 8gb bsp would likely just be painful.
|
|
6 posts not shown on this page because they were spam |
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|