Baker: Deathmatch And Coop
#105 posted by szo on 2011/12/26 09:42:07
Are there really any mods that actually expect both to set at the same time?
Not My Area Of Expertise
#106 posted by Baker on 2011/12/26 20:46:15
That's a better question for modders like at Inside3D. Most of the mods I've played either fall squarely into the traditional single player genre or into the deathmatch genre. There are all kinds of mods and most of them aren't really interesting to me http://www.quaketerminus.com/addon.shtml
A cursory Google search indicates that this mod is an example of a coop/deathmatch hybrid that uses both cvars
http://www.gamers.org/pub/idgames2/quakec/teamplay/sge10.txt
My only interest in raising the issue is that really Quakespasm is the closest to an "all operating systems" "proper Quake".
Coop/deathmatch
#107 posted by szo on 2011/12/26 22:51:53
I see. That "inder siege" thing is a weird one at that. I certainly would like to keep quakespasm as you descried, i.e. "all operating systems" "proper quake", however there is no universal solution to the coop/deathmatch thing as far as I can see.
The "cvar behavior is decided by quakec" argument is incorrect, because some vars are really set by quakec, however some need not be and are decided by the server admin. (And there must have been a way the quakec of that mod would be written using only one of the cvars set and not both.) Hmph... If you have a solution, I'm all ears.
Development
#108 posted by Baker on 2011/12/27 03:18:23
This is all theoretical at this point anyway, in practice I can't name I've ever used that used both cvars simulatenously and I checked DMSP, SuperCoop and a couple of the "bots mods".
I guess the reason I had thought of this is lately in some other engines that are not commonly used I've spotted some very mod-unfriendly optimizations and I've had compatibility on my mind lately.
Needless to say, I think some of the ideas implemented in Quakespasm have been very forward-thinking and conscientiously implemented. I loved (and adopted, heh) the Quakespasm philosophy on search path priority. Ingenious!
Re: Development
#109 posted by szo on 2011/12/27 09:42:10
Hmm, thought about this more, and I am convinced that that changed was unnecessary and reverted it in the svn as of rev.555: http://quakespasm.svn.sourceforge.net/viewvc/quakespasm?view=revision&revision=555
While messing with this, noticed another related thing: see http://www.inside3d.com/qip/home.shtml (search "Looks funny" on the page.) After this, not sure if the solution would affect anything..
As for the compliments for quakespasm: thanks!
Re: "Looks Funny 'fix'"
#110 posted by Baker on 2011/12/28 03:59:59
"Cvars "deathmatch" and "coop" not reset when loading a SinglePlayer game."
In function Host_Loadgame_f() of host_cmd.c, look for...
#ifdef QUAKE2
Cvar_SetValue ("deathmatch", 0);
Cvar_SetValue ("coop", 0);
Cvar_SetValue ("teamplay", 0);
#endif
DarkPlaces certainly doesn't have that "fix". DarkPlaces can save multiplayer games!
One of the biggest annoyances in coop ... let's say two people are playing, say, Travail or some single player deal that absolutely cannot be played non-stop in a reasonable period of time ...
How do you save and continue that game?
Well ... you don't. Because you can't.
Re: "Looks Funny 'fix'"
#111 posted by szo on 2011/12/28 07:53:29
Well, that's not an answer but random sidetracking.
FWIW, hexen2 does reset those cvars when beginning to load because it also can save net games and it actually saves those vars along so they are restored to their intended states. Therefore hexen2 is immune to that funniness whereas quake is not. I don't know how dp handles the situation.
Hehe
#112 posted by Baker on 2011/12/28 10:02:24
I thought about bringing up that.
Quake's save game system is intended to save the state of the server.
And as you, it doesn't because it does not save the cvars. And this creates a real mess. Since server-side cvars belong to the QuakeC modder, any given one could be used or abused in a mod. Some mods use cvars in unexpected ways or use them for "inter-level storage" or for hacks and so forth.
Any attempt to "solve" the problem is likely to break something, any attempt to alter the behavior is likely to break something.
One idea is to make and/or propose a save game 1.10 format or just do it. Some people might say "your engine save game files cannot be read by <my favorite quake engine>", but that is mighty uncommon. [Can save files fail in other engines gracefully based on version? I have not checked ...]
Although I have absorbed quite a bit of information in 5 years of paying attention to these kinds of things, my level of experience on the technical aspects of these matters is way below a metlslime, FrikaC, Necros, Spike, MH, leileilol type of 15-year expert.
Something To Consider ... For Real ...
#113 posted by Baker on 2011/12/28 10:30:24
One of the more fun aspects of engine development is the freedom to fix/correct/enhance/play around without regard to exact compatibility.
DarkPlaces is an example of an engine that doesn't worry about breaking things versus, say, FitzQuake which is so conservative as to require typing +mlook in the console for mouse look.
This isn't the golden heyday of Quake and most of the mods that would get broke by "fixing" stuff probably rarely get played.
JoeQuake did this by stating that the engine was intended for use with id1 Quake and the 2 mission packs.
If you want to stick with the mainstream use of engines like id1, Quoth, Warpspasm, Mission Packs and DMSP/Frikbot kind of stuff ... do it.
An engine being developed is more important than a few oddball mods from 14 years ago that no one uses. Besides, that's what bug reports are for.
I might have too much influence from aguirRe and Spirit, aguirRe was very big on compatibility and assisted me a lot when I started engine coding and more or less kept me from breaking standard behavior on accident.
Save Games...
#114 posted by mh on 2011/12/29 01:19:53
...It's quite possible that RMQ is going to require an extended save game format shortly. One issue we've definitely encountered is use of "stuffcmd" to set some cvars and other things (like v_cshift) which are not being retained across sessions (or are being retained when they shouldn't be if the player changes or reloads the map). That's probably something more appropriate for a fuller discussion on I3D but I think it would be a good idea to at least co-ordinate efforts as this is a common enough problem with mods in general.
#115 posted by necros on 2011/12/29 01:45:02
can get around that easily with unsaved variables which you can use to force a cshift check on loading maps.
for loading new games, just put a catch all in putClientInServer or something.
in an older mod (which i lost) i was storing cshift in a .vector and .float on the player (rgb + intensity).
this allowed me to blend multiple colour shifts together and then use normalize on the rgb vector to keep things for washing out.
V_cshift
#116 posted by Baker on 2011/12/29 02:23:53
One of the things I have been working on with the "game state" is the end of the game state.
v_cshift obviously as a cvar does not reset upon the end of a map or when the client does "disconnect" or a QuakeC error or a client error that causes a disconnect state by error ("model xyz.mdl not found").
Have also been working on what cvars may be sent to the client. Well, actually not what ones that may be "sent" ... but rather ones that the client will acknowledge that either a server or demo may alter and the mechanism to reseting these upon "disconnect".
This is to finish a far more complete concept of "gamedir switching".
Mac OS X Release
I have updated the Mac OS X release of QuakeSpasm to 0.85.5. The binary works on Mac OS X 10.4 and up on 32bit and 64bit Intel and 32bit PPC systems.
Download here: http://quakespasm.sourceforge.net/download.htm
Shambler's Lightning Not Lerped
#118 posted by ToMaHaKeR on 2011/12/31 01:14:47
In QuakeSpasm 0.85.5 for Windows, Shambler's lightning animation is not lerped (interpolated, smoothed). It's the only thing that's not smooth, even if you clear the "r_nolerp_list" cvar.
#119 posted by mh on 2011/12/31 16:28:10
That's intentional, QS doesn't interpolate when an entity goes into a muzzleflash frame.
V0.85.6
#120 posted by szo on 2012/01/01 11:21:28
Version 0.85.6 of QuakeSpasm is released.
Happy new year to all.
Few Bugs In QS
#121 posted by ToMaHaKeR on 2012/01/07 00:23:53
QS v0.85.6, WinXP:
- if you Alt+Tab out of game, MWHEELUP and MWHEELDOWN cease to function. also, gamma resets to zero but that's a classic OpenGL issue, I believe
- if the zoom function (default key: F11) is used, mouse sensitivity resets
(but still the best engine :D)
ToMaHaKeR:
#122 posted by metlslime on 2012/01/07 00:36:23
the F11 zoom behavior is a bug in default.cfg isn't it?
#123 posted by necros on 2012/01/07 01:11:14
yeah, iirc, the f11 is just a basic alias that has a present sensitivity setting. you need to overwrite that yourself to match your original mouse sensitivity.
#124 posted by ToMaHaKeR on 2012/01/07 02:03:28
It will sound noobish, but where exactly is default.cfg located? Can't find it in any of Quake's directories, is it in a PAK file?
Default.cfg
#125 posted by mh on 2012/01/07 04:08:26
Is in a PAK file, yeah. And it is an old bug from 1996; the zoom aliases eventually reset sensitivity to 3 (IIRC) and because default.cfg is forced on you your only real option is to put aliases into your autoexec that override these (does QuakeSpasm exec quake.rc or the 3 .cfg file? Can't remeber right now, but quake.rc is another potential source of evil).
#126 posted by necros on 2012/01/07 04:32:23
there's nothing wrong with quake.rc;
quake.rc just execs the config files, nothing more.
anyway, what you want to do is open up your own config.cfg file and add this to the end (or anywhere, really...)
// zoom
alias zoom_in "sensitivity 2;fov 90;wait;fov 70;wait;fov 50;wait;fov 30;wait;fov 10;wait;fov 5;bind F11 zoom_out"
alias zoom_out "sensitivity 4;fov 5;wait;fov 10;wait;fov 30;wait;fov 50;wait;fov 70;wait;fov 90;bind F11 zoom_in; sensitivity 3"
bind F11 zoom_in
and change the sensitivity values appropriately.
#127 posted by erc on 2012/01/07 17:54:46
Hmm.. is it possible to have back the playtime in status bar without recompiling the engine?
Quake.rc
#128 posted by mh on 2012/01/07 21:10:14
Mods can and do contain a custom quake.rc that sets cvars and issues commands itself (e.g if a mod wanted to force water alpha it might add "r_wateralpha 0.4" to it's quake.rc after exec'ing the configs).
#129 posted by necros on 2012/01/07 21:57:27
right, it's there to provide a way to add in custom commands without messing with autoexec and config.cfg.
i did that myself with ne_ruins. i enforced developer 0 by running a config file after stuffcmds, for example, because in the past, players had tendency to play with developer mode on and then complain about console spam. :P
|