|
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). |
|
|
#1309 posted by Joel B on 2016/10/28 19:42:07
Yeah that's difficult since a lot of stuff is not well-documented, plus there's an avalanche of little things that someone may or may not care about.
One could try to do a chart comparing engine support for widescreen, rendering API, palettized rendering output, texture filtering, QW multiplayer, QW listen server, singleplayer, colored lighting, soundtrack music files (and in what formats), bsp2, map texture replacement, model texture replacement, alpha-masked textures, various fog behaviors, .ent files, .loc files, QC extensions, clientside QC, XInput controllers ... you could really keep going and going and even then never get to things like "centerprint behavior" :-) or corrected weapon-viewmodel-height or whether the demos play on startup. Which some folks really care about!
It might be a good thing to try to set up as a shared Google-docs spreadsheet that a few engine experts/aficionados would be interested in keeping up-to-date. I dunno. There's a chance it would just get dozens of feature-columns added for minor things which only apply to one specific Quake engine.
#1310 posted by Joel B on 2016/10/28 19:42:31
was replying to Qmaster there
#1311 posted by Gunter on 2016/10/28 19:45:26
"Coop players spawn partially transparent ... cannot be telefragged"
Brilliant! We do have that problem in FvF! Unfortunately, I don't think this is going to help me, heh. That would be a server thing, right? Polarite runs some linux proquake for the server.... Further, FvF doesn't actually run in coop mode -- it runs in a special deathmatch mode (coop 0, deathmatch 3), so all the doors are already open and we don't have to go around collecting keys and things most of the time. We just get to killing the monsters.
But this certainly give me the idea to try this change in the mod, instead of the standard 3-second spawn protection pent (which prevents telefragging, but causes people to sometimes be pushed into the floor). Hm, but what happens if the players are standing on top of each other when they became fully opaque?
I'm hopeful about the gl issue workarounds....
#1312 posted by ericw on 2016/10/28 20:31:40
That is pretty weird behaviour in WINQUAKE.EXE: set the res to 1024x768, walk up to the episode 2 entrance in start.bsp, and the 5-line message is near the top of the screen. The episode 4 message (4 lines) is just above the crosshair.
This feels like something where the code is fudged in a way that looks good at 320x240. (another is the weird left-aligned deathmatch hud)
Episode Messages
#1313 posted by Qmaster on 2016/10/28 22:26:04
The episode ending messages use WriteString, not centerprint and that is why they are at the upper portion of the screen.
@Johnny Law: Might do...sounds tedious but I do like that sort of thing.
Chase_mode
#1314 posted by Gunter on 2016/10/28 23:54:51
Last night I was using chase_active 1 too look at some splashing water effect I'm trying, and I thought it would be nice if the crosshair was still accurate even in chase cam.
I used the autocomplete and found the chase_active setting which I had forgotten about, and toggled it on, and found that my crosshair was accurate in chase mode! Ok, that's nice.
However, chase_mode does not act in an intuitive manner -- I reported this as a bug in the past because I did not know what was happening. It seems that chase_mode cycles through 8 different modes (and most all of them are going to be completely non-useful, I think) without letting you know it's doing that. I did find that I can do "chase_mode 1" to specify I want that first mode with the accurate crosshair.
Perhaps the cycling of chase_mode should be followed by a notification, like "chase_mode is 4" or whatever.
And I guess this would throw everything off with crosshair accuracy, but it would really be nice if I could re-position the chase cam so that it was like right above my shoulder, as in many 3rd person shooter games (chase_right just doesn't work in chase_mode 1, etc).
Maybe one of the default chase_modes could be a view like that....
I can't tell what the difference is between chase_mode 1 and chase_mode 2. Chase_mode 3 and higher are rather crazy.
Quake has had chase cam for a long time; it's just never been that useful. Having an accurate crosshair even in chase mode is a big improvement. I just need to be able to move the cam to the right a bit so my guy isn't blocking my aim....
#1315 posted by Baker on 2016/10/29 00:35:21
Chase_mode is a "for fun" feature.
Gives different camera perspectives, possibly for making a "movie"/.avi/Youtube video.
Games with sophisticated camera control have massive C++ libraries created by paid game professionals, sometimes involving camera hint entities and such in the maps.
Like shadows, chase_active 1 is just a hack. I gave some extra flexibility for making a Quake vid and ...
... gave it an MH tune up where MH made the chase camera collide with the wall far more accurately. Used to be something mh and I talked about a ton, haha.
But once I saw the massive C++ camera code in commericial class engines, yeah ... sadly it's a lost cause.
Won't be altering chase_mode for the foreseable future. Have more important issues.
I'm just one person.
@qmaster
#1316 posted by Baker on 2016/10/29 00:58:05
I'll probably be making at least some light documentation since it looks like the engine will finally be out of beta testing stage -- a place its been living due a lack of time.
Window Switching Gamma
#1317 posted by Gunter on 2016/10/29 18:53:27
I don't know how fixable this would be, but I'll mention it.
I have an altered gamma profile on my netbook, to brighten the screen a bit -- the default is too dark. It loads up automatically in windows once I set it in the graphics properties.
Mark V uses hardware gamma, as you have mentioned, and it looks good in the game.
If I run Mark V in a window, I can see that my other windows are even brighter than usual, but when I switch away from Mark V (or when I exit Mark V) it returns my netbook to the default setting instead of my altered gamma profile (switching back to Mark V changes it again to the gamma settings I made in Mark V -- of course, this all still applies when I run in fullscreen too; it's just easier to notice when I run in a window).
It's not a huge problem, since I have a taskbar icon I can use to set my gamma profile, but ideally it would return my gamma profile to what was selected before I started Mark V, rather than the default (which is "no adjustment").
#1318 posted by Baker on 2016/10/29 19:07:56
You can do vid_hardwaregamma 0 in Mark V and only get contrast correction (no gamma). Only other option.
#1319 posted by Baker on 2016/10/29 19:11:34
Next version: Marcher is fully coopable; engine overrides bad keys behaviors in coop.
@gunter
#1320 posted by Baker on 2016/10/29 19:20:22
I might add a texture gamma option into the (it won't be very flexible though) next one. I want to see what texture gamma would look like (it might look nice, it might look "wrong" -- only one way to find out).
Mark V already can apply gamma/contrast, it does it to screenshots when hardware gamma is used so the screenshots look like what you see on the screen -- I just don't have it setup to do that when loading textures.
#1321 posted by Gunter on 2016/10/30 00:09:31
Ah. Well, as I reported a while back, the Contrast adjustment makes everything look really good, except fullbright textures, which it makes look pretty bad (really washed out, losing a lot of the variations in color). So I ended up turning contrast all the way down.
If there was a way to have contrast not affect fullbright things (like wall torches), that would be great.
Interestingly, when the Menu is up and the rest of the screen is kind of "darkened" then the fullbright textures look good again, and you can see the fine variations in color in them.
Also, I think I saw this in FTE, but it's really nice how, when you have selected gamma or contrast in the menu, that "darkened" effect goes away, so that you are actually seeing what the game is going to look like while you are adjusting the colors.
Here, visual aid:
http://imgur.com/a/OPTqa
I really like the way contrast makes everything else look (colors are vibrant, especially the screen text, which becomes much easier to read); it just crunches the heck out of fullbrights.
Z-fighting
#1322 posted by Gunter on 2016/10/30 02:48:54
Could something be done about the visual glitch commonly known as "z-fighting?"
It's what you see when two surfaces are at exactly the same location, and the engine seems to draw them both, producing really ugly, flickery/flashy results...
One of the best (worst?) examples of this is the large platform in the water on e2m2, which must be raised to get to the exit area. When it's lowered, it's at exactly the same level as the water surface, and it looks reaaaaly bad (this issue only occurs in 3D engines -- not software renderers such as Mark V Winquake).
And it's not always a z-axis issue -- the same thing can be seen on e4m5 where the secret door opens at the start.
I suppose the engine should favor drawing any map brushes over door entities to address this.
I use an ugly hack in FvF and move every door and wall entity on every map by a tiny amount (less than one unit) just so they never appear at exactly the same position as a brush! It eliminates the z-fighting (or x or y-fighting), but it causes tiny cracks to appear near many doors, if you look really closely, heh. But that's a much less ugly thing than the z-fighting.
#1323 posted by Baker on 2016/10/30 02:17:16
gl_zfix 1. It is off by default.
Z fix fighting fixes in engines are evil.
On some graphics cards due to different calculations, they will reveal secret doors.
On other graphics cards the z fighting calculation may not fix z fighting the same.
There is no such thing as a z fighting fix, just a way to try to cover up problems where the solution may yield different problems (hidden doors being exposed).
#1324 posted by Rick on 2016/10/30 04:01:57
The way I always understood it, z fighting was a mapping error. As in, don't let two valid surfaces occupy the same place, doors exactly the same thickness as the wall they slide into and that sort of thing.
#1325 posted by Gunter on 2016/10/30 04:30:32
Ah, thanks. gl_zfix 1 is a definite improvement, but not perfect for me (as you said).
It works better the closer I am to a surface. If I'm right up on something, it looks fine, but the farther away I move, the more it z-fights.
#1326 posted by Baker on 2016/10/30 04:35:45
In a perfect world, an OpenGL engine could use what WinQuake uses which as I understand it, clips away at doors and platforms where they occupy the same space as the world. Would be complicated and probably CPU expensive.
A different alternative would be someone making external .ent files to correct maps by nudging the entities on a case-by-case basis. But this isn't always possible. Mark V does this for a couple of maps internally (E1M1, E1M2, ..). quakespasm.pak has a few .ent files using this process. Plenty of instances where that cannot fix the issue, though.
#1327 posted by Baker on 2016/10/30 04:40:05
@gunter ... yeah z-fighting fixes suffer from the "fine tuning" problem ...
"Hey, this looks right on this map, where I am currently standing, with my specific video card, at this angle, if I don't go around and look at any more entities in the current map, ..."
#1328 posted by Baker on 2016/10/30 08:38:20
(pesky stuff) in next one:
1) Zoom: One-size fits all solution that handles specific sensitivity, fov, r_viewmodel_fov values according. dwere brought this up.
2) scr_showspeed - On-screen speed indicator, so someone wanting to speedrun a map or see how fast they can strafe jump doesn't miss JoeQuake.
2) renamed warppos to setpos for consistency with Quakespasm
3) scr_showpos -- for consistency with Quakepsasm r_pos will suggest this command. This is an on-screen indicator, not a console print one.
4) skyfog, wateralpha, slimealpha (etc) worldspawn keys ericw proposed as a standard
5) Curb stomps a couple of things in default.cfg overriding certain horrible Quake default keys, using a WASD setup for the keyboard. Only does this for default.cfg in id1/pak0.pak, does not interfere with mods that override that.
#1329 posted by Gunter on 2016/10/30 17:26:25
I wonder if anyone has made a list of all instances of z-fighting in standard Quake?
There aren't all that many "major" places where it happens. It's actually pretty easy fix in QuakeC, heh, just by giving the appropriate entity a different value for either start position or end position when the map is first loaded. It's certainly easier to do it that way than to edit all the maps (one modified progs.dat as opposed to a bunch of modified maps)....
Z-fighting
#1330 posted by mh on 2016/10/30 17:34:30
#1331 posted by Baker on 2016/10/30 23:02:29
It's certainly easier to do it that way than to edit all the maps (one modified progs.dat as opposed to a bunch of modified maps)....
Depends on your tools. External .ent files doesn't need QuakeC, it's like doing -onlyents map recompile.
In Mark V do this:
1) "copy ents" ... copies the entire map entity string to the clipboard.
2) Save that as c:/quake/id1/maps/e3m3.ent
3) With the map in Mark V, type tool_inspector 1
4) Press 3 for the graphical display to show the edict #.
5) In the console type "edict 55" if the edict # is 55.
You can just find the map entity in the .ent and change numbers.
I'm only pointing out what you can do with tool_inspector in Mark V.
#1332 posted by Gunter on 2016/10/31 03:39:18
Ah, that is pretty cool. Yeah, tool_inspector is a great feature -- I've found that very useful.
I didn't know about "copy ents," or really ent files in general. That seems like it would be a nice solution for engines that support it... but in practice it doesn't seem to work.
Looks like the ent information doesn't really contain ALL the information for the ent, and I can't seem to change an origin of a door using the ent file, even if I add a line for it. I know setting an origin can be tricky....
Hm, it looks like "copy ent" loads the information directly from the bsp (ignoring any changes I've made from the progs), and the ent file stuff is only applied if there's a difference between it and what's in the original bsp. And that happens after any progs changes have been applied (overriding any changes I make with QuakeC).
Also, having a blank ent file (as I first crated when testing) will prevent you from loading a level, heh, because "Host_Error: SV_ModelIndex: model progs/player.mdl not precached"
#1333 posted by Baker on 2016/10/31 04:07:11
An .ent file is just to replace the entity text in a .bsp (without recompiling the .bsp without doing -onlyents, which would replace that text).
Open a .bsp in a text editor, go to very near the bottom, that's the entity information.
It won't exactly match the output of the "edicts" or "edict x" command because some of the edict entity information is filled in at run-time.
An example is modelindex. The .bsp (the map) has no idea what that will be, because a map have idea what progs.dat will be running, etc., etc.
But some fields will be exactly the same much of the time, like "spawnflags". A monster's origin if stationary, door information, etc.
|
|
This thread has been closed by a moderator.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|