|
Posted by Baker on 2012/06/29 11:38:17 |
I wasn't planning on doing this mini-project, it started as an effort to address some Fitzquake issues, fix them the right way up to Fitzquake standards (i.e. do it right, once and properly versus continual releases) and donate it back.
FitzQuake Mark V Download:
http://quake-1.com/docs/utils/fitzquake_mark_v.zip
Short version: Eliminated most issues in FitzQuake thread, most issues I can even remember hearing of ever and marked every single one clearly with a very minimal implementation.
It may be the case that only metlslime and Quakespasm and engine coders may find this engine upgrade of interest.
Features: 5 button mouse support, single pass video mode, external mdl textures, alpha textures (like RMQ), record demo at any time, rotation support, video capture (bind "capturevideo toggle"), console to clipboard, screenshot to clipboard, entities to clipboard, tool_texturepointer, tool_inspector (change weapons to see different info), clock fix, contrast support, fov does not affect gun, gun displays onscreen, Quakespasm wrong content protection, external ent support, session-to-session history and .. (see readme). |
|
|
#1207 posted by Baker on 2016/09/28 11:09:24
DirectShow mp3 playback in Quake engines is not new. Mark V was nowhere near the first engine to use it.
FitzQuake 0.85 + mp3 support --- November 11, 2009 http://celephais.net/board/view_thread.php?id=60306&start=275
ProQuake with mp3 playback --- July 2010
http://quakeone.com/forums/quake-help/quake-clients/5698-mp3-option-proquake-4-36-a.html
DirectQ - A post from 2012 where someone is asking about mp3 and MH states that DirectQ has had mp3 playback for "about 3 years".
http://quakeone.com/forums/quake-help/quake-clients/7412-directq-1-8-8-a-3.html#post106070
Engine X - September 2010
http://quakeone.com/forums/quake-help/quake-clients/5942-engine-x-4-61-beta.html
Reckless (now known as Revelator) used DirectShow playback for his Realm engine (2010ish?)
And none of these engines were anywhere near the first to use it, probably an ancient MHQuake engine from 2003-2005 was.
#1208 posted by mh on 2016/09/28 12:27:21
I'm pretty sure that I wrote the DirectShow code for DirectQ because I had this idea that I wanted to use DirectX components for everything. Older versions would have used the Windows Media Player SDK. You can also use MCI which is a little cleaner and more "C-like".
Unfortunately I'm in a similar situation to Baker and just don't have the time to put together experimental code to test all of this out.
#1209 posted by Gunter on 2016/09/29 07:41:54
Well I tried Glpro438 just to be thorough, and the MP3 loading delay is the same.
On to other things, I saw the "smooth text" option in DirectQ, and that looked really nice. Mark V could benefit form that.
Also, r_waterripple is neat, but it moves too fast. If the "waves" moved much slower, it would look better.
Uhh, I was trying to make use of the Copy command today, but it failed me... I mean, for some reason, it did not copy the link someone had posted just prior to me issuing the "copy" in order to grab the link. Then I waited a moment and did "copy" again, and it still omitted the link (which was visible in my console), in addition to the thing that was said just prior to the "copy" command again (which was just some chat text).... I can't seem to reproduce it now. I'll mess with it when there are people on the server again....
Here's the section in question. There may have been other things happening in the console farther up, so I don't know if there were any weird characters or what...
------------
Gunter: what the link again?
Sgt-PieFace: cobalt PMed you on the forum
Sgt-PieFace: for this server I think
]copy
Copied console to clipboard
Sgt-PieFace: wana stop by RN? me and cobalt are there
]copy
---------------
There was text in both the blank spaces in my console. I'll try to do more testing.
#1210 posted by Baker on 2016/09/29 10:48:24
1) "copy" copies the context of the console --- like "You've got nails" "Host Error" ... whatever.
Maybe I described what it does poorly.
But if you need some of the text in the console -- it copies the whole thing and you can paste it into notepad.
Fine tuning the copy ability further would be a PITA.
2) Smooth text.
Smooth text is for scenarios that would cause stretching and the make the console look terrible.
ProQuake uses it when the someone is using an odd combination of resolution + "2d resolution".
At some point Mark V will likely have smooth text.
Notice that ProQuake has the very superior "console width" option in the discrete "advanced settings" menu.
Well, that knocks the snot out of every other Quake engine because the
a) setting is easy to use
b) offers a few different choices easily
c) and the text looks good every time
(* DirectQ might have had a similar feature, I can't recall. Even if it did, I wrote my mine first ;) Haha )
But yeah, Mark V doesn't have that option -- solely because there were bigger fish to catch.
3) r_waterripple is neat. I forgot about that feature. It probably is a bit too fast and lacks customization. Mark V has a few experimental things like that which are defaulted off which are like that.
R_waterripple
#1211 posted by mh on 2016/09/29 11:24:24
For this kind of thing I always prefer to see it controlled by a fractional value of the cvar rather than adding an extra cvar. So maybe r_waterripple 0.5 for half speed, or would that make more sense for height of the ripple?
r_waterripple really depends on water surfaces being subdivided too (and is sensitive to the value of gl_subdividesize).
#1212 posted by Baker on 2016/09/29 11:28:19
I don't know if you have seen this, but as someone who maintains a QuakeC code base, you may find this interesting ...
Type "tool_inspector" in the console. Type impulse 9 to give all weapons.
Change the information seen by selecting a different gun.
Examining map issues or QuakeC problems under some circumstances becomes far more convenient.
#1213 posted by Baker on 2016/09/29 11:39:10
And one last thought since you do coop,
Mark V has a per player coop scoreboard if Mark V is the server. Defaults on. It's one of the sv_ options.
#1214 posted by Gunter on 2016/09/29 20:08:21
Yeah, I understand how the Copy command works -- I was fine with copying the entire console to be able to also grab the link. The problem was, the Copy command left blank spaces in what it copied, and I didn't get the link....
In regard to that "console width" slider in Proquake, Quakespasm does it better with that nice "scale" slider. It seems to adjust all the things that I am setting manually in Mark V:
scr_sbarscale 1.55
scr_conscale 1.55
scr_menuscale 1.55
But yeah, that tends to make the text a bit jaggedy.
I think we already get the full scoreboard like that in FvF, because it runs in kind of a hybrid Deathmatch+Coop mode (it's kind of like team Deatmatch against the monsters). Well, FvF can be voted into regular Deathmatch mode, but people seem to prefer the Quest mode.
Wow! I like that undocumented tool_inspector thing. I think I will definitely have use for that.
#1215 posted by metlslime on 2016/09/29 21:39:41
i would recommend scale values that are whole numbers like 1,2,3, etc. Much clearer looking text.
#1216 posted by Baker on 2016/09/29 23:12:57
@gunter - A one-factor master scale cannot adequately address a four-factor scaling problem.
It'll just offer a lot of different ways for most of the possible settings to get jaggy text and scrunched 2D graphics.
LordHavoc and R00k were both on a server one time talking about engine development topics and got into a long conversation about 2D scaling challenges. I didn't even know how compile a Quake engine at the time, and stopped playing to listen to their fascinating engine conversations.
The 2D scaling conversation was the conversation that really drew me in -- at one point in the future I took what LordHavoc and R00k said the problems were and drafted up a blueprint to address each bullet point in ProQuake -- I had to rewrite all of the 2D rendering mechanics in ProQuake, the text renders smoothly with any setting.
---
Co-op scoreboard. I meant for use with things like releases like Travail or Quoth or Arcane Dimensions or the Mission Packs and such.
Coop-oriented mods like FvF or RQuake already have that taken care of. ;-)
Back On Fog
#1217 posted by Gunter on 2016/09/30 03:57:52
Hmm, I have another interesting note about the fog in the DX version. If I turn gl_overbight off, I seem to get 2X the number of fog bands on lighted areas of the wall. This makes it look better because it's a smoother gradient... but it's weird that it does not show up on unlit areas of the wall. He's a screen comparison, again with gamma ramped way up and in an area that makes the fog look extra ugly:
http://imgur.com/BAyPhy2
In (my older version of) GL Mark V, I do not see the same thing happen when toggling the setting. Ah hah! That's one reason why the GL version fog looks better -- it ALWAYS has those extra bands on the lit areas of the wall. They are just really hard to see because they make a much smoother gradient... but I see them now that I'm looking for them.
In summary:
GL version has 2X the number of fog bands on lit areas of the wall, always.
DX version only has 2X the number of fog bands on lit areas of the wall if gl_overbright 0.
gl_overbright 1 removes the extra bands and makes the fog extra ugly due to a less gradual gradient.
Copy Command
#1218 posted by Gunter on 2016/09/30 08:11:04
Confirmed that it's the weird Quake characters that cause blank places in the COPY'ed text.
Didn't test all the various characters, but if you use the one that kind of looks like the left side of a bar, like this for your name (imagine the (= =) are the weird characters):
S(=name=)
Then anything appearing on that line after the S would be blank in the COPY'ed text.
#1219 posted by Baker on 2016/09/30 08:56:06
+1 ... Great bug report. Shouldn't happen.
Using this can you hover your mouse over the appropriate character and tell me the number.
http://www.quaketerminus.com/hosted/oqnm_4_20/oqnm_4_20.htm
I need to know the character code. My caveman-like brain can't quite imagine which specific one you refer to.
#1220 posted by Gunter on 2016/09/30 19:12:19
128 is the character in question which will blank the rest of the line after it appears.
Additionally (you didn't think I would neglect to test everything else, did you? heh), the following characters will insert a newline in the COPY text:
141
140
139
138
Also, when you get around to fixing that, please stop it from actually committing the name change every time you change one character, because my console looks like this just from using backspace and typing characters in the name field:
---------------------
Gunter's name12 renamed to Gunter's name1
Gunter's name1 renamed to Gunter's name
Gunter's name renamed to Gunter's nam
Gunter's nam renamed to Gunter's na
Gunter's na renamed to Gunter's n
Gunter's n renamed to Gunter's
Gunter's renamed to Gunter's 1
Gunter's 1 renamed to Gunter's 12
Gunter's 12 renamed to Gunter's 12n
Gunter's 12n renamed to Gunter's 12na
Gunter's 12na renamed to Gunter's 12nam
Gunter's 12nam renamed to Gunter's 12name
]copy
--------------------
#1221 posted by Baker on 2016/09/30 22:50:13
I did say you were a quality beta-tester. ;-)
At some point in the future I will refine the namemaker to commit the change "all at once", but it is better than the old system of committing the name "all at once" and having to choose "Accept" and accidentally hitting ESC and losing the name you spent a few minutes making. It's always been on the todo list to make that less spammy.
#1222 posted by Gunter on 2016/10/01 06:47:12
I don't suppose you could give me some kind of test build that would spit out some error messages when it crashes (or save it to a file)? Because it crashes a lot! Well, tonight it seemed that way.... But sometimes it goes for quite a while without crashing, seeming to run just fine. It seems to like to crash right when a map first loads, after exiting the previous map. Perhaps some maps seem to trigger it more than others, like e3m2 seems mighty prone to crashing.
Sometimes it just exits, and other times I'll get a Windows error box asking if I want to report it... and I can check more details about that, but it's mostly incomprehensible gobbeldygook.
It'd also be nice to figure out why the GL version crashes right away too...
#1223 posted by Baker on 2016/10/01 07:22:03
Well, we have back to the old catch-22.
I don't have time to commit to engine development now (engine development is extremely time consuming), nor will I have that kind of time in the near future either.
Maybe some time in the 2nd half of 2017 I will.
This engine is in beta, and is not being actively developed at the present time.
It's not the first big gap of non-development of the engine either.
Quakespasm is a stable release. There's also Qrack and such as options.
You might try FTE, it's pretty damn nice.
http://triptohell.info/moodles/win32/fteqw.exe
You can tell Spike that "nqconnect quake.shmack.net" isn't working in this build I linked :(
On 2nd thought, nevermind. I forgot you have an Intel 845, FTE is pretty big on the shaders and such, althought it does have a Direct3D version too.
http://triptohell.info/moodles/win32/fted3dqw.exe
What would Spike say? "Your mileage may vary" ;-)
Kinda Offtopic
#1224 posted by Spike on 2016/10/01 07:40:27
You can tell Spike that "nqconnect quake.shmack.net" isn't working in this build I linked :(
What would Spike say? "Your mileage may vary" ;-)
I would also say 'works for me'...
(I actually bothered to test that just now!)
(also, you can drop the 'nq' from 'nqconnect' if you want to explicitly specify the port, hurrah for nq+qw using different default ports! or just use the server browser, but whatever)
(also that first build contains both gl+d3d9 renderers, you can switch between them in the menus, and yes with basic settings it should still work without glsl, but certain features obviously will not).
See -- Spike Is On The Ball!
#1225 posted by Baker on 2016/10/01 07:52:30
Sorry, I have 10 copies of FTE in my Quake folder. I blew it, the "fteqw.exe" in my folder is out of date and quite old.
@gunter: FTE supports external textures and if you like options, compared to FTE, Qrack doesn't even have any options.
The number of features FTE has is off the charts.
And should have almost every possible feature you have ever seen.
#1226 posted by Gunter on 2016/10/01 20:15:47
Oh my... yes, FTE certainly does seem to have a ton of options. And the GL version runs just fine for me.
At the "nice" preset, I get 70 FPS, but at the "real-time" one I get like 4 FPS -- it may be one of the effects like that oldwater thing like in Quakespasm, but I don't know the setting to toggle it in FTE.
Is there lots of documentation about all the console variables so I can test stuff? Or I guess I'll have to go in and see what all the menu settings do....
The MP3 music seems to start up without delay... though it doesn't seem like it's playing the same tracks. hmm.
I will play around with this and see if I can get it set up how I like. I could sure use some exhaustive documentation! *searches around FTE site*
#1227 posted by Baker on 2016/10/01 20:50:38
Contrast
#1228 posted by Gunter on 2016/10/12 03:35:58
Setting my Contrast really high makes most things look really good -- the colors are vibrant and the walls aren't all bland. And it allows me to use a lower Gamma setting.
However, any fullbright textures become completely crunched and actually lose their contrast -- they just appear as one (way too bright) color, mostly, except for in the most contrasting areas (for example, torches).
gl_fullbrights 0 fixes the problem, making the torches (and any other fulbrights) again look nice even with high contrast, but of course that turns off the neat fullbright effect.
I already have both gl_overbright settings at 0
So, to keep the fullbrights from looking nasty, I have to crank the Gamma up higher to make things bright enough, but that tends to make things look a bit washed out and bland...
I saw above you said, "at some point I'll try to implement a sneaky tactic of shoving gamma+contrast into the textures (and hope it looks right). But that's for the future. "
Was that implemented? If so, the easy fix would seem to be to NOT have contrast affect any fullbright textures. Then everything would look good. I don't know if it would otherwise be possible to have "contrast" not affect fullbright textures if contrast is being controlled by hardware....
Also, just a thought (for potential future fixing): sure, the shadows are a hack, but a tweak that would improve them is to make sure they are not drawn at all if the distance to the model is greater than a certain amount. This would stop them from dancing around on surfaces way below where the model is actually standing (this is one of the common issues with the hacked shadows).
#1229 posted by Baker on 2016/10/12 04:47:47
I'll keep that in mind for future consideration.
Spike has caused the need for a Mark V update with ipv6 and (likely) ProQuake with ipv6, by making the code easily available and saving me a lot of time.
It'll need tested and one main concern I have is Windows XP.
Not sure when it will happen, but I expect it to be soon.
Because metlslime pointed out a quick way to solve your DirectX + model transparency thing, seems likely I can put that in there.
And if I am lucky, your clipboard interfering evil characters fix/scrub because that should be a 2 minute fix (probably a char codes 128-160 dequaked (-128) to control chars issues).
Can't say exactly when. I don't really have any time, but I've been sizing it up.
Ipv6 Maybe Sooner Than I Thought
#1230 posted by Baker on 2016/10/12 05:11:12
Maybe sooner than I thought.
I just used Mark V to connect to "Quakespasm Spiked" R4 via ipv4 and then ipv6.
#1231 posted by Spike on 2016/10/12 05:44:33
ipv6 ain't hard to support, its just a different/bigger sockaddr structure with corresponding different address family value.
name resolution is a little more involved (in part because colons are used in ipv6 numeric addresses, which necessitates square-brackets where ports were normally specified with colons).
operating systems have annoying hybrid socket support defaults, so you need to be explicit about that in order to not conflict with ipv4 sockets (and xp doesn't support hybrid sockets at all, so I went with dual sockets with qss).
broadcast doesn't work with ipv6, its all multicast, so instead of flagging a socket as able to send broadcasts, you have to flag a socket as willing to receive multicast packets to various addresses.
that's about it, really. the rest is just datatypes and glue.
really though, right now ipv6 only gets you support for public addresses when servers are behind ipv4 cgnats (but with their own globally routable ipv6 address).
mobile phone versions of quake may need ipv6 (iiuc, apple mandate that ios apps support ipv6).
other than that, no non-mobile isp would dream of skipping ipv4 yet, making ipv6 support nice but in no way necessary.
single-socket-servers on the other hand...
|
|
This thread has been closed by a moderator.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|