I Thought Maybe QS...
may have been forked from Fitz or something. :-/
@Baker
#437 posted by szo on 2013/04/11 22:32:21
Please try the svn version: we might be releasing a 0.85.9 soon(ish). Source snapshot and pre-built binaries are temporarily at: http://quakespasm.sourceforge.net/devel/
I'll Do That
#438 posted by Baker on 2013/04/12 04:04:53
I have to say, after reviewing your code changes in detail super-detailed review of Quakespasm changes, I think Quakespasm with all things considered is the best Quake engine ever top to bottom measured by platform interoperability, project structure, debugging and convenience.
@szo ...
#439 posted by Baker on 2013/04/12 05:03:36
I just looked over the changes between 8 and 9 and something MH would say goes like this:
You have IN_Activate and IN_Deactivate referenced everywhere, but really you should just check that in one place in the source once per frame.
Not that I've actually conquered this myself ... yet. Spike would recommend a Q3-like message queue (don't handle SDL messages immediately, queue them --- then handle once per frame --- so you have a single point of evaluation per frame and one place it happens).
In Mark V, this is a major goal to be in the late summer release. The way Quake handles input activation/deactivation is not good, case in point often in many engines if I ALT-TAB out and then back in, the brightness corrects and then it for some reason goes back to system normal (not what the Quake brightness option is set to).
If I can get a proper handle on this in the coming months --- after the feature is in a released Mark V for long enough to be considered road-tested -- I see if I can rework Quakespasm to use it.
OMG Man.
cheers for the patches Baker.
@Baker
#441 posted by szo on 2013/04/12 07:45:22
Personally, I'm not very happy with our IN_Activate() & co being called from everywhere, either. It was done at some point during development of whichever version I can't remember, and it gradually got messier. It was partially adopted from uhexen2 but with more messiness. Needs addressing in newer versions, yes.
As for new version wrt your fov changes: I think they would not be needed anymore after the fov_adapt (Hor+) stuff, yes?
As for the demo changes: I know the idea is appealing, but I believe it needs a little more maturing? (esp. after reading the fog, etc. concerns in the code?)
Well ...
#442 posted by Baker on 2013/04/12 08:22:19
Both fog and skybox are hacks. They are read from worldspawn client-side [not via server svc] which violates client-server ideology.
Arguing against demo record in that context is like arguing against save games.
The issue is uncorrectable because to do it right, you would need the QuakeC source code to every map that uses a skybox to fix it. Except there are several dozens of closed source single player mods.
But Quakeworld has had demo record since 1996, ProQuake since 1999 and JoeQuake since 2003.
Do you tell people that want demo record --- and keep it mind that no demo record is recording that info, nor save games for that matter --- that because of design-flawed after-the-market implementations of fog/skybox [id Software's Quake didn't provide these, the after-the-market modification community did = all of us] that as a result you want to make it hard to record a demo?
Not that demos that record today in Quakespasm record skybox or fog -- because they don't.
I get your point and agree with it. Except we have to work with the world we've got, not the one we want.
How are the demos recorded in Quakespasm with say the "Necros savegame/loadgame trick alias" superior to the record at any time feature? They aren't.
So then the question just becomes user convenience.
But have you noticed an explosion of demo recordings lately? They are using Mark V.
I'm not trying to win an argument -- I view this with the same disappointed angle as you if you remember a discussion about mod cvars aren't recorded in Quake saves --- there isn't an absolute proper "win" to be had here.
Quake save games and demos are never going to record the entire server state.
#443 posted by anonymous user on 2013/04/12 09:03:19
... has had demo record since ...
This sounds more like no other thing supports demo record, where you possibly mean ability to record after connect :)
I see your points, though. If Steve has no objections I can include the demo stuff in 0.85.9.
#444 posted by anonymous user on 2013/04/12 11:06:32
OK then, applied the demo stuff at r847:
http://sourceforge.net/p/quakespasm/code/847/
So, v0.85.9 will support demo recording after connecting to server.
Will upload a source snapshot and prepare test binaries later today.
Demo With Reloads And Non-system, Gamma??
#445 posted by slapmap on 2013/04/12 13:50:41
Is it possible to continue recording a demo after level change or a reload (and demo would actually play back after reload point)? I know DP allows that, any other (hw accelerated win32) engine?
And any (again hw accelerated win32) engine that has internal not system gamma controls (again besides DP)
Posting in a top engine thread, but its about any engine.
#446 posted by Spike on 2013/04/12 14:03:17
Anything that uses stuffcmds cannot be saved into saved games, and will need special care for clients that record mid-game.
Saying that the fog is part of the map is just about the least hacky way to do it, and will work in all saved games or demos, so long as there's no stuffcmds.
Its for this reason that csqc was designed to avoid random writebyte etc use, depending upon entities and stats. Stats can be trivially regenerated by the server (because they're dependant upon some global or field, and mapped correctly in the worldspawn function). Ents are regenerated automatically via the same mechanism that covers pvs, which must be present anyway. The fact that 515 added tempentity hacks to dp which got popularized by xonotic is a disapointment that breaks saved games all too easily.
Yes, saved games and demos will never record the entire state, but the key thing is that they don't have to - so long as the mod abstains from stuffcmd (and similar extensions). The rest can be reproduced from the state that is preserved.
Which is how mvds and qtv work. Note that mvds allow you to switch perspective from one player to another on the fly, while qtv is capable of adding new spectators mid game, all without access to the original game state.
TLDR version: stuffcmd is evil and cannot be supported properly. Stats rock.
More Stuff!
#447 posted by sock on 2013/04/12 14:40:02
stuffcmd is evil and cannot be supported properly.
What do you suggest that MOD creators use instead of stuffcmd? I know several MODs that use stuffcmd to change fog parameters for example, how else can the MOD issue console commands without the echo to the console?
@slapmap
#448 posted by szo on 2013/04/12 16:03:26
<quote>Is it possible to continue recording a demo after level change or a reload (and demo would actually play back after reload point)?</quote>
IIRC, QuakeSpasm has support for that since v0.85.7.
Test Builds For New Version
#449 posted by szo on 2013/04/12 16:10:16
at: http://quakespasm.sourceforge.net/devel/
If nothing goes wrong, I guess I'll release this as v0.85.9.
Random Btw Comment
#450 posted by negke on 2013/04/12 16:50:26
I don't know about others, but in my view the console and status bar alpha values that QS defaults to are way too transparent. I'd prefer 0.8 and 0.9 respectively - currently it's sometimes unnecessarily harder to read on bright or busy backgrounds. I also wonder why this is forced on by the engine while other things like the slow console speed remain unchanged.
Test Build
#451 posted by slapmap on 2013/04/12 17:40:06
Works fine, didn't test much just tried insta/reload demo recording.
#452 posted by Spiney on 2013/04/12 20:49:29
I also wonder why this is forced on by the engine while other things like the slow console speed remain unchanged.
Should honestly just get rid of the console sliding imo...
#453 posted by Spiney on 2013/04/12 20:50:13
(should have been in quote tags)
FSAA In OS X Version ?
#454 posted by Barnak on 2013/04/12 21:16:30
Is there an option to turn ON the FSAA, on the OS X version ? This is a must have !
And Command-H On OS X ?
#455 posted by Barnak on 2013/04/12 21:18:20
I forgot to ask about the command-H feature, on OS X. Can we put Quakespasm to background ? Another must have.
V0.85.9
#456 posted by szo on 2013/04/12 21:30:15
Version 0.85.9 of QuakeSpasm is released:
* fixes for several undefined behaviors in C code (gcc-4.8 support.)
* implemented Hor+ style field of view (FOV) scaling, useful for
widescreen resolutions. configured by new cvar fov_adapt: set it to 1
and your fov will be scaled automatically according to the resolution.
enabled by default.
* adjusted string buffers for PR_ValueString and friends to fix crashes
with excessively long global strings seen in some rude mods.
* toned down warning messages from PF_VarString() a bit.
* fixed fitzquake's map existence check in changelevel (used to leak
file handles which would end up in a Sys_Error() due to consuming all
free handles if many maps reside not in pak files.)
* fixes/cleanups in chat mode handling. client no longer gets stuck in
chat mode upon disconnect.
* mouse grab/key_dest fixes and key cleanups.
* the "speedkey" now acts as "slowkey" when "always run" is on.
* support for demo recording after connection to server. (thanks to
Baker for a patch)
* corner case fixes in COM_Parse() for quoted strings and support for
C-style /*..*/ comments.
* changed lightmaps to GL_RGBA instead of GL_RGB.
* better parse for opengl extensions list (from quakeforge.)
* vsync saving/loading fixes.
* fixed pointfile loading.
* multiple cleanups in gl_vidsdl.c.
* Opus music decoding support (as an optional patch only.)
* several other minor fixes/cleanups.
What About The OS X Vcersion ?
#457 posted by Barnak on 2013/04/12 21:39:54
So if I understand, there's still no FSAA and command-H features for the OS X version ?
@Barnak
#458 posted by szo on 2013/04/12 21:47:03
No, not yet, unfortunately.
Grrr!
#459 posted by Barnak on 2013/04/13 00:17:44
Then this update is useless to me...
AAARGH ! I'M GONNA KILL ONE THOUSAND OF FIENDS AND PEEL-OFF A SHAMBLER !
Barnak
You can send QS to the background by switching to windowed mode (Alt+Enter) - it's a bit clumsy, but it works. To release the mouse, hit Esc to go to the menu.
Regarding FSAA, If you have a high resolution screen, you can just run QS at its native resolution and everything will be pretty much as smooth as if you were running with FSAA. I run QS at the native res of my 27" iMac and I don't miss FSAA at all.
|