lavenderdotpet / LibreQuake

A freesoftware quake one remake with art under the BSD license
https://discord.gg/nsr6DTF6RX
Other
415 stars 34 forks source link

FTEQW Config Overhaul #161

Closed Zungrysoft closed 1 month ago

Zungrysoft commented 2 months ago

This is an overhaul of the default configuration in order to support FTEQW as our primary recommended game engine. I think FTEQW is ideal because it supports both singleplayer and deathmatch very well and has a ton of customization options we can use to fine-tune the default LibreQuake experience. We should make sure LibreQuake is compatible with most modern engines, especially the popular ones. But our focus for compatibility should be FTEQW.

Ironwail is still a good secondary choice so I made sure this config works well for it too. But Ironwail does not have good deathmatch support which is why FTEQW should be the first choice.

All changes:

I am open to any feedback on these changes, since some of them are rather subjective.

Big thanks to Spike for helping me with all of this config work!

Modern style: fte-20240915015913-0

Retro Style: fte-20240915015917-0

Zungrysoft commented 2 months ago

@MotoLegacy This is the way we've been doing it before. The alternative is putting the settings in config.cfg/ironwail.cfg/fte.cfg/etc. But those files get overwritten by the engine every time you load up so I don't think it's safe to put this sort of default configuration in those files. This config should be in default.cfg. If these engines have their own cfg file that doesn't get written by the engine, that would work.

Nolcoz commented 2 months ago

Okay, so I tested it on the vulkan version of fteqw and I have a lot of gripes with this. Mostly the engine that is. As for the FTEQW config this is what I think:

Outside of that I think the configs are fine. Okay, now the engine. I am gonna be honest, I dont like. For multiplayer I can see it being good, but after testing it with some maps I have so many problems with it.

Ye, thats why I think about it. I do know that for multiplayer this is THE engine, but for singleplayer I have a lot of reservations with it.

MotoLegacy commented 2 months ago

Making a note here that I have had an off-platform discussion with Zungry and Spike and we have come up with a solution for engine identification to clean up the configuration files.

Zungrysoft commented 2 months ago

@Nolcoz Thanks so much for your feedback! Let me answer your points one by one:

lavenderdotpet commented 2 months ago

once this is done please wait for me to review it

MotoLegacy commented 2 months ago

Much nicer, thanks for addressing my points. Left another small comment and then I'll happily approve.

Zungrysoft commented 2 months ago

@lavenderdotpet Spike politely asks why vid_restart is in default.cfg. He says it is unnecessary since the engine should already call vid_restart anyway.

You made the change in this commit: https://github.com/lavenderdotpet/LibreQuake/commit/4e8a8e6ee

Nolcoz commented 2 months ago

As far as graphical inconsistencies go, I compared my install of fteqw to your screenshots and my game looks much closer to your Ironwail screenshots than your FTEQW screenshots. Lit water works perfectly fine for me. Maybe it's a Vulkan thing? I used the FTEQW download from here: https://fte.triptohell.info/downloads

After downloading it from there, pretty much all graphical problems I had where gone and just looks the same as my Ironwail setup. You really did a perfect job at replicating that look.

For the HUD scale, I personally, I think 3 fits the style better. 2 just feels too small. The user can easily change this using scr_conscale, which will get saved into their engine config file. I changed the HUD style for the "modern" style to use the more modern HUD design in FTEQW and Ironwail so the size of the HUD doesn't get in the way.

Checking your new version, it is much better ye. I think something like 2.5 would be a nice middle ground but it is a very minor thing tho now.

For animation interpolation, I don't know if there is anything similar to Quakespasm's "pause animation for 2 frames after a muzzle flash" feature. It has r_lerpmuzzlehack, but it works a bit different and actually makes LibreQuake's weapon animations look way worse. It's tough because there probably are modded weapons that were made for Quakespasm's lerping rules. But I think this is the best way to go.

Ahh I see. Well I thats fine then.

For the broken maps, I think it would be best to fix the maps. I noticed the e2m3 bug as well in my testing. I'm sure with some fiddling, we can get everything to work in both engines. I'll look into the specific issues you identified and see if there are easy fixes for them.

K then. I can imagine the e1m7 problem can be fixed by making it so the brush that lowers the corpses isnt a clip brush. As for the key in e2m3, not sure what the problem is, but a similar technicque is used in e3m4 for armor and that seems to work fine, so it might be possible to fix

For automatic saving, the engine will automatically save the game every few minutes or so. It will notify you in console whenever it autosaves. You can manually load it through the Save/Load menu as normal.

Tried it and it seems to work like you said ye.

With all that in mind, things seem to work pretty well now. Only real gripe now is the scale of the hud but again its a minor thing. If you want to keep that scale just tell me and I will aprove this, all seems well. Also sorry if I was condescensding to FTE before, was just tired thats all

Zungrysoft commented 2 months ago

@Nolcoz I think I'm going to keep the HUD size the same. I still think 2 is too small, and I don't think decimal sizes look great either.

I'll look into all these map issues and try to identify fixes for all of them. There are some issues in my own maps as well.

I was pretty frustrated with FTE myself when I first started. Then I went into the FTE Discord and Spike helped me fix all of my problems. Turns out this engine is pretty amazing when you actually know what the commands for things are lol.

Nolcoz commented 2 months ago

I was pretty frustrated with FTE myself when I first started. Then I went into the FTE Discord and Spike helped me fix all of my problems. Turns out this engine is pretty amazing when you actually know what the commands for things are lol.

Ah okay, thats nice to hear. Ye, the first time I used FTE wasnt really pleasent, but with your configs I do like it way more now.

I'll look into all these map issues and try to identify fixes for all of them. There are some issues in my own maps as well.

Should I wait for that before approving, or is that more of a future problem more than anything?

MotoLegacy commented 2 months ago

@Nolcoz You should open issues concerning them so we can track it and fix it when you can. I don't think they should be a blocker for this PR.

lavenderdotpet commented 2 months ago

@lavenderdotpet Spike politely asks why vid_restart is in default.cfg. He says it is unnecessary since the engine should already call vid_restart anyway.

You made the change in this commit: https://github.com/lavenderdotpet/LibreQuake/commit/4e8a8e6ee

I don't remember feel free to remove

it might of been due to when I included resolution settings in the file maybe the engine wasn't doing vid restart

lavenderdotpet commented 2 months ago

image

retro should prob have no crosshair

also i think r_viewmodel_quake should be on for all

Zungrysoft commented 2 months ago

@lavenderdotpet

I considered turning off the crosshair for the retro style. I decided against it because first, I think it's more of a gameplay feature than a graphics feature and second, crosshair was an option even in the original DOS Quake. It was just off by default. I think disabling the crosshair for retro mode would be kind of like disabling mouselook.

As for the viewmodel_quake, I really don't think it looks better in either mode, especially with LQ's viewmodels. But that's just my personal opinion.

lavenderdotpet commented 2 months ago

As for the viewmodel_quake, I really don't think it looks better in either mode, especially with LQ's viewmodels. But that's just my personal opinion.

i prefer how r_viewmodel_quake looks due to the nice movement u get when looking up and down

https://github.com/user-attachments/assets/0ac99c5c-00c3-4fe1-8499-82770cb40048

Nolcoz commented 2 months ago

i prefer how r_viewmodel_quake looks due to the nice movement u get when looking up and down

I second this ye. Makes it feel more dinamic and less like its an image stuck to the middle of the screen

Zungrysoft commented 2 months ago

@lavenderdotpet @Nolcoz Alright. Since I'm outvoted here, I'll add it in. My problem was that it makes the viewmodel too far forward on the screen, but I can compensate by using viewmodel_fov of 80. I never noticed that it moves when you look up. That's actually pretty neat.

lavenderdotpet commented 1 month ago

@lavenderdotpet @Nolcoz Alright. Since I'm outvoted here, I'll add it in. My problem was that it makes the viewmodel too far forward on the screen, but I can compensate by using viewmodel_fov of 80. I never noticed that it moves when you look up. That's actually pretty neat.

at a later point we can look at maybe moving the position of the model a little bit

gonna do my test and review of this now

lavenderdotpet commented 1 month ago

Automatic saving is still enabled. Though player will have to manually load the save. Automatic saving fundamentally changes the way the game plays. It should be opt-in, not opt-out. @Zungrysoft

i think automatic load should be left on since people using engines that have it on by default will be confused when it suddenly stops working for them with librequake either the engine dev is gonna get issues over this or we are

i think if we wanna change that we should talk with the engine devs about it or leave it to default

lavenderdotpet commented 1 month ago

image

lq_toggle_style doesnt seem to be working its defaulting to the fte one and not the ironwail one edit: disregard this part re executing default.cfg fixed it

also whats the dif between lq_toggle_style and lq_toggle_style_set

lavenderdotpet commented 1 month ago

https://github.com/user-attachments/assets/7bd06cdb-d796-4cce-9d9f-8631aa49de89

the uvs are changing between the 2 modes why is that?

lavenderdotpet commented 1 month ago
  • Changed taskbar string from 'Quake' to 'LibreQuake'

@Zungrysoft could u elaborate on what this means

Zungrysoft commented 1 month ago

@lavenderdotpet If someone is used to the autosave feature, they'll probably be downloading the mod release which doesn't contain any of this config stuff anyway. For people downloading the full release, I strongly maintain that autosave should be off by default so we're not adding an unexpected feature that warps the way the game is played. Our levels are designed to be short enough to complete without save/load. And if someone wants save/load, they can still do it manually using F6 and F9. And the game still creates automatic saves. You just have to load them yourself. Just one extra step.

Compare this with the alternative. If this feature is not disabled, there is no way to restart the level from the beginning without losing all of your items. So people (like me) who don't play with save/load are completely screwed if they don't know FTEQW's hacky workaround to disable this feature.

I do think it would be nice if FTEQW had a cvar to control it like with Ironwail. Currently, it requires this hacky workaround that can't easily be disabled. I'll look at the codebase and see if I can open a PR for it. Because I do think it's good for people to have the option. But it definitely should not be the default.

Nolcoz commented 1 month ago

the uvs are changing between the 2 modes why is that?

From previous testing, that seems to be a thing with the software renderer where the uvs of the gun close to the camera get distorted. Also happens with regular id1. Dont know much about the rendering side of quake so I could just be getting things confused tho

lavenderdotpet commented 1 month ago

@lavenderdotpet If someone is used to the autosave feature, they'll probably be downloading the mod release which doesn't contain any of this config stuff anyway. For people downloading the full release, I strongly maintain that autosave should be off by default so we're not adding an unexpected feature that warps the way the game is played. Our levels are designed to be short enough to complete without save/load. And if someone wants save/load, they can still do it manually using F6 and F9. And the game still creates automatic saves. You just have to load them yourself. Just one extra step.

Compare this with the alternative. If this feature is not disabled, there is no way to restart the level from the beginning without losing all of your items. So people (like me) who don't play with save/load are completely screwed if they don't know FTEQW's hacky workaround to disable this feature.

I do think it would be nice if FTEQW had a cvar to control it like with Ironwail. Currently, it requires this hacky workaround that can't easily be disabled. I'll look at the codebase and see if I can open a PR for it. Because I do think it's good for people to have the option. But it definitely should not be the default.

agreed it shouldn't be on by default

side question about this can cvars/aliases be executed by triggers like how u can change maps or skill with triggers

im asking so if maybe we can have a settings section in our start map for this stuff

lavenderdotpet commented 1 month ago

the uvs are changing between the 2 modes why is that?

From previous testing, that seems to be a thing with the software renderer where the uvs of the gun close to the camera get distorted. Also happens with regular id1. Dont know much about the rendering side of quake so I could just be getting things confused tho

thing is tho with fte and ironwail it isnt actually using a software render only emulating parts of it

Nolcoz commented 1 month ago

the uvs are changing between the 2 modes why is that?

From previous testing, that seems to be a thing with the software renderer where the uvs of the gun close to the camera get distorted. Also happens with regular id1. Dont know much about the rendering side of quake so I could just be getting things confused tho

thing is tho with fte and ironwail it isnt actually using a software render only emulating parts of it

I think its essentially emulating that effect then. It may be a thing with winquake too

Zungrysoft commented 1 month ago

@lavenderdotpet The UV's change because the Retro style emulates the software renderer's look, which uses affine texture projection for vertex models. If you've ever wondered why Quake uses BSP models for health and ammo packs instead of MDL models, this is why. If you use the software emulation mode in Copper (which uses MDL models for health and ammo instead of BSP models), this is what it looks like: fte-20240927194030-0

It's super obvious on boxy models like health and ammo, but barely noticeable on most other models. Viewmodels are probably the most affected MDL models. The original game designed its viewmodels so you can't tell unless you're paying attention. It's most obvious on the Shotgun model (when you have the viewmodel FOV higher than I have it here.)

It's a quirk to be sure, but these sorts of quirks are what give the software renderer its charm.

lavenderdotpet commented 1 month ago

@Nolcoz

I think its essentially emulating that effect then. It may be a thing with winquake too

https://github.com/user-attachments/assets/a01216f2-4755-45a9-aee0-c86ca0583883

yeah yall are right i miss remembered and thought they didnt emulate that part

Zungrysoft commented 1 month ago

@lavenderdotpet The taskbar string refers to what your operating system calls the program in your OS taskbar. So instead of it saying "Quake: e1m4" it will say "LibreQuake: e1m4"

image

lavenderdotpet commented 1 month ago

image retro should have scr_sbaralpha set to 1 and not 0.9999

image top scr_sbaralpha0.9999 bottom scr_sbaralpha

lavenderdotpet commented 1 month ago

@lavenderdotpet The taskbar string refers to what your operating system calls the program in your OS taskbar. So instead of it saying "Quake: e1m4" it will say "LibreQuake: e1m4"

image

oooo! heard i like that

Zungrysoft commented 1 month ago

@lavenderdotpet

side question about this can cvars/aliases be executed by triggers like how u can change maps or skill with triggers

im asking so if maybe we can have a settings section in our start map for this stuff

Not possible with the default progs.dat. We could have it as a feature in our custom progs.dat, but it would not work in any mods, so we would have to wall it off if the player is not using our progs.

Zungrysoft commented 1 month ago

retro should have scr_sbaralpha set to 1 and not 0.9999

That's correct. I'll fix that.

lavenderdotpet commented 1 month ago

@lavenderdotpet

side question about this can cvars/aliases be executed by triggers like how u can change maps or skill with triggers im asking so if maybe we can have a settings section in our start map for this stuff

Not possible with the default progs.dat. We could have it as a feature in our custom progs.dat, but it would not work in any mods, so we would have to wall it off if the player is not using our progs.

hmmm darn maybe just a room that tells u what all the aliases are that or we do the progs thing but if not using our progs the buttons for it dont show up so u would only see the aliases in text form

lavenderdotpet commented 1 month ago

I think this should be good we should have make discussion about the settings room idea at some point but I think this is good