#2982 posted by Baker on 2017/09/13 01:16:00
A map pack has 12 maps. One of the maps has large coordinates.
The start map does not have large coordinates.
Are you going to switch to protocol 999 when you walk through the teleporter to the map that needs large coordinates?
Or ...
Someone types "record mydemo; map verybigmap"
The demo is already recording before the map loads. Are you going to switch the protocol from 666 to 999 during the demo?
Someone wants to see how their map works under protocol 666 and types "sv_protocol 666; map my_new_map". Are you going switch to protocol 999 against their will?
John and Harry are playing coop. John types "changelevel verybigmap". Now what happens?
#2983 posted by ericw on 2017/09/13 01:55:32
Are you going to switch to protocol 999 when you walk through the teleporter to the map that needs large coordinates?
The demo is already recording before the map loads. Are you going to switch the protocol from 666 to 999 during the demo?
Yes. Going through a changelevel trigger does a Host_Changelevel_f which calls SV_SpawnServer, which sends the protocol version in SV_SendServerinfo, so it will already change protocols in QS e.g. if you load start.bsp with sv_protocol 666, change the sv_protocol cvar to 15, then walk through the teleporter to e1m1, e1m1 will start in protocol 15. Recording a demo of this and playback seems to work fine, and I confirmed that the demo file has two "FITZQUAKE 0.85 SERVER (24778 CRC)" headers with different protocol numbers after.
Someone wants to see how their map works under protocol 666 and types "sv_protocol 666; map my_new_map". Are you going switch to protocol 999 against their will?
No.. I guess to avoid breaking this scenario, sv_protocol would need to default to some other placeholder like "auto" or "666+" or something. Then "sv_protocol 666" would mean "force use of 666".
John and Harry are playing coop. John types "changelevel verybigmap". Now what happens?
Should just work as I was describing above, since the changelevel sends new serverinfo that may include a different protocol (?)
Btw appreciate the questions as I had to go and test the demo thing. I don't mean this is set in stone, and it's not implemented, but it would be nice to have automatic support for large maps if it can be done without negative side effects.
#2984 posted by Baker on 2017/09/13 02:18:36
It appears you meticulously walked through everything in great detail.
Which is how it should be done.
I haven't looked at the protocol 999, but I would assume it properly maps
WriteCoord (MSG_BROADCAST, player.origin_x);
WriteCoord (MSG_BROADCAST, player.origin_y);
WriteCoord (MSG_BROADCAST, player.origin_z + 16);
To the appropriate WriteCoord16/24/32 function.
Perhaps
sv_test_protocol for the second scenario Baker alludes to, so it's crystal clear what it's used for.
#2986 posted by Spike on 2017/09/13 02:52:32
@Preach+metlslime
Those are not examples of MSG_INIT / signon buffer. Maps can't use it without QC, and marcher uses MSG_ALL (and breaks for new clients as well as saved games).
Yes if a mod uses writeshort instead of writecoord then you'll have issues if the engine switches protocols randomly. On the other hand, most people can't be bothered to do the *8 or the *256/360 thing, so mods that actually break in that way are rare, plus they'd be broken in DP too (like so many other things).
@Baker
there's not much difference between a demo and a regular network connection. I don't see any reason at all for that to break any differently from single-player breaking.
Besides, you can already switch protocol for the next map.
@ericw
Easiest is to just default to 999 and add a separate cvar to override the primitives. eg fte's sv_bigcoords cvar. Empty=auto(default), 0=shorts, 1=floats.
This would provide .scale support, even with 16bit coords...
The risk being people's configs that override things, and outdated clients. Forcing 666 up to 999 when using bigger coords is frankly the safer choice for those outdated clients, but hey.
#2987 posted by Baker on 2017/09/13 03:50:27
Why have a sv_protocol cvar if no matter what value the user selects, it will never be honored?
I pick 15 ---> nope you get 999
I pick 666 --> nope you get 999
I pick 999 --> you are lucky because I was going to give you 999 anyway.
If you see the humor.
What would work is honoring the sv_protocol cvar, but defaulting it to an automatic setting.
Spike would make the automatic setting "0", because Spike likes a value of zero to do wildcard things.
Spikeworld: Would you like 1 lump of sugar or two?
User: zero
Spikeworld: Then 12 lumps of sugar it is!
But a better default value would be "auto", which happens to have an atof value of 0 ;-)
@ericw
#2988 posted by Baker on 2017/09/13 08:03:13
How does this sound for worldspawn keys?
"_maxcoord" "10000" if you need +-10000
The bounding box of the worldmodel would be superior method.
The bsp already has that data.
Would not require older maps to be recompiled.
@Baker
#2989 posted by Spike on 2017/09/13 13:28:30
re-read #2976
#2990 posted by iriyap on 2017/10/02 12:33:47
Here's a minor bug.
Quakespasm.pak doesn't load when using -basedir. It has to be copied to the actual Quake root folder. Maybe change it so Quakespasm loads it from wherever quakespasm.exe is?
Trying to make Quakespasm and vkQuake work with the same installation of Quake. Their DLLs are different versions and break each other, so I have to get creative.
Also, what's the deal with the vid_ stuff being ignored in autoexec.cfg?
Hostmax Fps
#2991 posted by Qmaster on 2017/10/04 22:08:01
Is the greater than 72fps a limit of the network protocol?
Hud Gfx.wad In-QC Reference (no Not CSQC)
#2992 posted by Qmaster on 2017/10/04 22:12:42
Is there a way to allow QC to refer to gfx.wad textures by name for certain "slots" in the hud inventory?
Not sure if there is a way to use WriteByte to send a string of commands to the engine to signal updating a specific hud "slot" to use a specified texture by name. QSS feature?
#2993 posted by ericw on 2017/10/04 22:13:51
I think it's more a limitation of how the physics simulation is designed.
Spike was saying that the results of physics after one 72fps timeslice can be different than after two 144fps timeslices.
HUD
#2994 posted by Preach on 2017/10/04 23:53:20
Is there a way to allow QC to refer to gfx.wad textures by name for certain "slots" in the hud inventory?
No.
#2995 posted by Baker on 2017/10/05 00:03:34
The HUD is absolutely and totally hardcoded into the engine.
DarkPlaces, FTE give you additional options (csqc). I don't believe Spiked Quakespasm has any csqc support.
I think with csqc you need to self-draw the HUD. Nahuel at QuakeOne had a open source implementation of a CSQC HUD.
http://www.mediafire.com/download/3tzacatwdazo4r6/HUD_v4.81_Nahuel_Dresk_Smith.zip
http://quakeone.com/forum/quake-mod-releases/finished-works/10604-csqc-hud-v4-8-rt-lights-edit-tool
http://forums.insideqc.com/viewforum.php?f=16
Providing information only so you can decide on options, altering the HUD is impossible in vanilla Quake.
If you were to make a CSQC custom HUD, it could work for DarkPlaces/FTE and other engines would simply ignore the csqc progs.dat just use the regular HUD.
Ericw
#2996 posted by anonymous user on 2017/10/05 00:26:55
I have a small request, please bring back m_filter.
Ya
#2997 posted by Qmaster on 2017/10/05 00:34:24
I've done my own dragndrop csqc inventory before. I'd prefer a simpler method, but alas oh well.
Quit Messages
#2998 posted by CoolGuy on 2017/10/05 08:16:40
Hey all, I've never posted on a forum or anything before but I'm seeking some help.
I was just wondering if there was ANY possible way to get back the funny quit messages from vanilla or DarkPlaces in QS. I know enabling "-fitz" in the shortcut gives you the credits box, but its bothering me far more than it should that the original quit messages are seemingly gone in this port.
Any help would me appreciated, thanks
MacOS CLI Install Method
#2999 posted by AAS on 2017/10/14 06:00:10
I've added the 'cask' for the 'homebrew' package manager on macos, now you can install the client from the command line:
1) install homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2) install homebrew-cask: brew tap caskroom/cask
3) install quakespasm: brew cask install quakespasm
4) put pak0.pak and pak1.pak into /Applications/QuakeSpasm/id1
5) enjoy
#3000 posted by iriyap on 2017/10/19 17:18:35
Model skins in some mods are corrupted, appearing half blue, half black. In particular, gib skins in Shrak and tarbabies in Arcanum. This is an old GLQuake bug which is fixed in Bengt Jardrup's Enhanced GLQuake, DarkPlaces, Mark V etc.
#3001 posted by iriyap on 2017/10/19 17:26:53
This bug was present in earlier versions of Mark V, I found it reported here:
http://www.celephais.net/board/view_thread.php?id=60831&start=826&end=850
I suppose, Baker can help you fix it.
I'm Pretty Sure
#3002 posted by Qmaster on 2017/10/20 03:52:01
That the blacknblue checker is indicative of a mod trying to use a skin that doesn't exist. This is most notable with gibs if they are coded to 'inherit' the skin of the monster being gibbed when the gib model only has one skin.
Which mod did you see this on and what model?
#3003 posted by iriyap on 2017/10/20 04:47:23
The corruption doesn't happen with Mark V or Darkplaces running exactly the same installation of Quake. Here's how you can check this:
Grab the mods here:
https://www.quaddicted.com/files/commercial/Shrak2.7z
https://www.quaddicted.com/filebase/arcanum.zip
In Shrak just start the first level and kill one of the shotgun enemies (input "impulse 255" in the console to get Quad Damage so that you can easily gib them), their head gib is affected.
In Arcanum go to map arcanum5. You'll see the tarbabies right at the start.
Not Sure
#3004 posted by Qmaster on 2017/10/20 14:48:51
But maybe the other engines default to skin 0 if the skin is not present?
#3005 posted by ericw on 2017/10/20 21:40:23
for arcanum5, I think you missed an install step; you need to install arcanum on top of drake. The monsters at the start should be spiders, not tarbabies.
In shrak, I see the blue checkerboard on the gibs. It's a feature inherited from fitzquake, I guess the intention was for modders to notice invalid mdl skins.
It looks like MarkV is displaying skin 0 instead of the checkerboard for compatibility with mods like shrak that set invalid skins.
@ericw
#3006 posted by iriyap on 2017/10/20 21:58:27
Oh man, totally missed that part about installing Drake. Guess I got a bit careless when playtesting so many map packs. Still though, the tarbabies don't get the checkerboard pattern in the other engines.
I suppose you could change it to display skin 0 when developer is set to 0, this way it would accommodate both players and modders. Backwards compatibility with old content is pretty important, especially in this decade that's so heavy on the 90's nostalgia.
Just my two cents, is all.
|