And
#172 posted by mechtech on 2013/03/19 23:33:24
Baker thank you for your dedication to Quake
#173 posted by necros on 2013/03/19 23:47:51
so how do modern games do it then? D3 had it, for example, and it's not even that new anymore.
I'm not actually asking for this, but I'm not really understanding what the big deal is. I understand that it takes time to decompress the audio files, but surely it's not so bad as to impact engine performance?
Necros
#174 posted by Baker on 2013/03/20 03:56:33
I think that goes outside the scope of this thread.
But would be good material for another thread to discuss this in further detail (Does Saurbraten do this? Did they think about doing it and rule it in or out and what reasons did they have? What does szo + co. think about this idea? As I understand it, DarkPlaces does not do this ... did LordHavoc rule this out? Did Remake Quake try to talk MH into this? Did MH reject this idea? Etc. etc.)
But these thoughts exceed the scope of FitzQuake Mark V and my knowledge almost entirely ...
[And it is so out-of-scope I'd like to not have it in the Mark V thread, since I can't even be a knowledgeable participant in the discussion ... if you see what I mean ...]
#175 posted by Spike on 2013/03/20 07:52:36
The time you spend decoding an mp3 is time you don't spend waiting for the disk to read a much larger wav.
If you're worried about decoding time, you can always offload it to another core before initiating playback.
You really won't notice it unless its done in bulk, but that's the same as everything else done during load time.
The real problem with mp3 is that its patented and thus the only way a gpl program can legitimately decode one is to make use of an operating system feature that does the magic for you, resulting in portability issues. ogg vorbis is thus a better choice on account of third-party libraries being legal in the usa and stuff.
In fte, its 200 lines to load+decode mp3 (using the win32-os-based decoder), and 400 lines to load+decode ogg (using libvorbisfile).
Sure, the sound code needs a slight tweak too, of course, but while you're doing that you get bonus points for running the audio mixer on another thread (if your mixer is on a different thread, your on-demand decoding will be too, and yes, I got a not insignificant fps increase from that).
16-bit Models
#176 posted by Kinn on 2013/03/20 17:16:22
So, following that quake character re-modelling thread (see General Abuse) - I learned that the QuakeForge engine supports an .mdl format that simply uses 16-bit vertex accuracy, rather than the standard 8-bit vertex accuracy.
What's more, the guy doing the new monster models is using blender, using an .mdl exporter that has the option of writing to this 16-bit .mdl format.
My question is this:
Does support for the 16-bit .mdl format sound like something that's easy enough and worthwhile enough to be worth considering?
Please Don't ;-)
Because then there's another incompatibility between engines.
Well
#178 posted by Kinn on 2013/03/20 17:35:19
if it was implemented in a way so it's only used to replace existing 8-bit models, in the same way that external texture support only works by replacing existing quake textures...
No worse than external texture support then, right?
#179 posted by necros on 2013/03/20 18:43:35
if you want to mess with the format, i would highly advocate MD2 format because the grid's granularity is calculated per frame instead of per model. that right there would give a huge boost to fidelity.
IQM
#180 posted by ijed on 2013/03/20 18:48:25
Or the inter-quake model format is already supported by a handful of Quake engines.
http://lee.fov120.com/iqm/
And yeah, works in exactly the same way as external texture support.
Okay
That sounds like a good compromise. And +1 for IQM.
Well
#182 posted by Kinn on 2013/03/20 20:41:08
I'm only suggesting this because it looks like that capnbubs guy is making some absolutely nop-notch and faithful remakes of the character models, which even an old fuddy-duddy such as myself thinks are cool.
So it got me thinking that it's a shame to have to be stuck with 8-bit vertex accuracy on those models if it's easy for capnbubs to export versions of those models in a better format...
Just tentatively dipping my toes into the water here really...
Appendage
#183 posted by Preach on 2013/03/20 21:50:17
There used to be an "extended-BSP" format which allowed you to bundle high-res textures etc with a bsp file - the extra data was zipped in a lump attached to the end of the file. Because existing quake engines were happy to ignore any junk appended to the end of a file, they would load in any engine.
You could do something similar with an extended .mdl format. It would be a bit fiddly to add the extended coordinates there. The way to do it with no duplicated data would be to split the 16 bit coordinates into a high and low byte, store the high byte in the regular mdl coordinate data and the low bit (offering the extra precision) in the extended data lump.
Care might have to be taken that this method didn't parse models which already have a lump of extra data on the end. Which models have that? Any saved by QME 3.0 - the extra data is things like skinnames and model groupw which the editor wants to preserve (3.1 has its own file format instead)
Necros/Mechtech Re:ogg
#184 posted by Baker on 2013/03/21 01:19:58
Spike basically said "already doing this in FTEQW, if you run sound in separate thread is not problem".
I have the next 2 versions of Mark V planned out, but don't expect to be working on those until late summer.
There is a chance that the "ogg instead of wav" could be in the 2nd future revision.
Meanwhile, in two separate projects goldenboy and Dr. Shadowborg are targeting FTEQW which does Fitz 666 protocol and bsp2. DarkPlaces does bsp2 and IQM.
There is ample opportunity to play around with those features even now in other engines.
#185 posted by necros on 2013/03/21 01:29:16
I just wanted to know why decompressing oggs or mp3s is such a problem for quake.
..
#186 posted by Baker on 2013/03/21 04:34:59
24 hours ago I had only considered "what might go wrong" or how someone might abuse the feature (turn every .wav into an 11 MB .ogg or .mp3 and then blame the engine and demand "you must fix").
Then it occurred to me that you can make a laggy map with bad r_speeds in a map editor. I had already changed my mind prior to Spike's post, but I had the idea of pre-emptively decompressing to .wav on gamedir change.
Spike's method is far better than that.
Not the first time someone thought "this feature would be bad" and later changing mind.
I actually look forward to playing around with this.
Mouse Acceleration?
#187 posted by Nick on 2013/03/22 14:30:22
How to get rid of mouse acceleration completely? It's switched off in the system and I use -dinput and m_filter 0
, couldn't find anything else in readme.
But still get inaccurate mouse input like with a bit of acceleration - depending on the speed I move my mouse with, not just distance.
It is specific fitzQuake problem, I don't have this in DP or FTE or other quake games.
Try
#188 posted by Baker on 2013/03/22 14:54:51
-noforcemparms
-noforcemaccel
-noforcemspd
or all 3.
http://www.quakewiki.net/archives/console/commands/quake.html#p--noforcemaccel
Both WinQuake and GLQuake have this issue, FitzQuake isn't unique. And the code causing the issue you refer to is "not well liked" by hardly anyone. But it is in WinQuake/GLQuake so like +mlook, the behavior is destined to remain in this engine so that keeps with the original Quake behavior [whatever they could have been thinking ... ??? ].
#189 posted by metlslime on 2013/03/22 20:23:34
it seems more and more that fitzquake gets called out for behaving in some ways the same as glquake.
At the time i thought it made sense because the target user is someone who is switching from glquake to fitzquake, so their configs should continue to work (i.e. i didn't change the defaults of any pre-existing cvars.)
Many years later i guess people install fitzquake before any other engine, or they are switching from more radically different engines like darkplaces, which have very different default behaviors.
So i should probably change all the default settings in the next version to "good settings."
@metlslime
#190 posted by sock on 2013/03/22 20:28:08
There are plenty of settings that should be default without having to change the config; mlook on, mouse wheel up/down changes weapon, console speed higher (terrible with large screens) and console/sbar text changes size to match screen resolution.
@sock ... Quake.rc + Default.cfg
#191 posted by Baker on 2013/03/22 22:26:07
There is sadly annoying stuff in default.cfg hiding in pak0.pak too:
* F11 key zoom alias that changes sensitivity and default.cfg
* Keys could be improved to default to WASD with Q and E for swim up/down
* "Reset to defaults" in the engine has unpredictable behavior because Quake didn't reset cvars, so re-running default.cfg does not fully default.
* The +/- sizeup and sizedown keys confuse if accidentally pressed and these are in default.cfg living in pak0.pak
Also the original QuakeC source didn't support both impulse 10/impulse 12 weapon switching, some single player mods like Castle of Koohoo or Duke of Ontranto (and far more) impulse 12 does not do anything.
[Avoiding mentioning too much how in original Quake (or Travail or Marcher or ...) in coop if one player grabs silver key and dies, key is gone and map is effectively broke as no further progress is possible ... relevant to exact topic ... I suppose not].
#192 posted by negke on 2013/03/22 22:39:17
In coop, the keys always stay just like the weapons (but unlike them, they fire their targets correctly).
I hope you found PGUP/PGDN keys too when you play a demo [fast forward/rewind].
No way... Nice feature :)
+1 Awesome Feature
#194 posted by sock on 2013/03/22 23:13:39
@Baker, there is certainly plenty of stuff that is wrong with the defaults and it is nightmare for anyone coming back to Quake wanting to play the game. I hope you still keep tinkering with this engine, I certainly appreciate all your effort.
+1 also for PGUP/PGDN, freakin awesome feature. I can't believe it is not a standard feature for Quake engines.
Ogg Stuff
#195 posted by mechtech on 2013/03/24 16:48:11
I converted pak0 and pak1 sounds to ogg 128bit. I ran DP 20130304. Works well IMO.
Nice converter at
http://www.rarewares.org/ogg-oggdropxpd.php
Revision 9: Automatic Gamedir Switch In Coop
#196 posted by Baker on 2013/04/02 17:24:13
Revision 9: If you setup a coop game running, say, Marcher or Warpspasm, when a Mark V client connects it will automatically switch to the right game dir.
Mark V Server tells client: I'm running "game marcher" or "game warpspasm -quoth" or "game hipnotic -hipnotic".
Mark V Client will switch.
Non Mark V clients won't even notice the message, it is fully backwards compatible and transparent to other clients.
Also:
1. When recording a demo, it will print what gamedir is running so someone receiving your demo can figure out what mod they need installed to view it.
2. Fixed a multiplayer coop demo bug.
Special thanks to Spike for how to achieve the gamedir switching in a way that didn't require yet another protocol --- like we need more of those.
Although I didn't plan on do another Mark V update for a while, there may be one more coming in a few days. If so, this one will solely be due to some fun information from Spike.
|