ec- / Quake3e

Improved Quake III Arena engine
GNU General Public License v2.0
1.2k stars 154 forks source link

[Feature] Chat message/console font scaling #129

Closed NightFright2k19 closed 2 years ago

NightFright2k19 commented 2 years ago

Chat messages (top left corner, also used for console text) are very small when playing in 1080p or even higher. It would be great if there was a way to scale this font somehow so it becomes more legible. Spearmint does this, even though I don't know how.

ensiform commented 2 years ago

Might be related to blurry console on > 1080p?

NightFright2k19 commented 2 years ago

I wouldn't call it blurry. OK, I am using an upscale pack, but even with that, the letters are just too small in high resolutions. The letters themselves are crisp.

The-Gig commented 2 years ago

I would like a cvar to change console/top left corner font size...

NightFright2k19 commented 2 years ago

Interestingly, when you use ingame chat, the font is larger while entering the message.

I could imagine a scaling option with +50-200% size increase, possibly even autoscaling.

The feature request isn't as trivial as it might seem at first since many bots have quite sophisticated messages, and other than Quake Live, Q3A relies heavily upon providing solid SP support as well, making bot texts an important part of the experience.

At least that's the way I see it.

ensiform commented 2 years ago

Without new assets I do not know if they'll look great on all aspect ratios though. And quake3e doesn't ship any pk3 plus it would not be used when playing online when pure

NightFright2k19 commented 2 years ago

There's the "High Quality Quake" mod on ModDB, it contains upscaled fonts as well. Easy to get, easy to use.

And even if texts stay lowres and blurry - at least you'd be able to actually read them if they are larger.

ensiform commented 2 years ago

But as I said, you can't just use any mods. If you play on a server (likely sv_pure 1) you will not be able to utilize those files.

NightFright2k19 commented 2 years ago

Actually I only play offline. And like I wrote before: I'd rather have an enlarged blurry lowres font than a tiny sharp one I can't read at all. And again, those that don't like it could always leave the rescaling option untouched (if there was one).

The-Gig commented 2 years ago

Well, having the ability to scale text at least in console (engine-driven I guess) might already be something. About scaling text in upper left corner (gamecode), maybe it may still be a nice feature for OpenArena, which uses its own gamecode. Maybe someone might open a pull request there...

ec- commented 2 years ago

Suggest cvar name

The-Gig commented 2 years ago

r_fontScale (default 1.0) maybe? Or maybe r_consoleFontScale, considering there are already r_consoleHeight and r_consoleType? If it had to be a thing for both engine and gamecode, then I guess com_fontScale might have fit.

NightFright2k19 commented 2 years ago

I could imagine anything like r_consoleFontScale, r_messageFontScale, r_statusFontScale etc.

Would be nice if the cvar value actually reflected actual scale, i.e. 1.0 is 1x (original), 2.5 is 2.5x etc. A value of -1 could try to apply autoscale, bringing it to the same or similar size as in the original game, assuming a display resolution no higher than 600p or maybe 768p, which was common at that time.

ghost commented 2 years ago

If I remember correctly these Q3e based forks greatly improved console as well: https://github.com/urbanterror/Quake3e https://github.com/themuffinator/dm-engine https://github.com/JBustos22/oDFe I think at least one of those forks scales console font as well. Unfrortunately Q3e forks are scattered and I lost oversight... Anyways maybe this will help you. Btw, in Spearmint zturtleman moved console drawing into the cgame module. Unfortunately this is suitable for Spearmint but not for Q3e as far as I know (because of mod incompatibility).

NightFright2k19 commented 2 years ago

I see _/conscale has been implemented with latest build. For me, a value of 2.4 yields the best results in 1080p. Thanks a lot for the fast implementation. Highly appreciated!

The-Gig commented 2 years ago

I had completely forgot about this, but an older release from past year https://github.com/ec-/Quake3e/releases/tag/2020-09-21 mentioned "Client: automatically rescale console chars height for resolutions greater than FullHD" (commit: https://github.com/ec-/Quake3e/commit/28b15cdee304da7d78e29bc207bafa34672011a2).

I don't have a screen larger than FullHD available, so I never tried it. Anyway, are we sure the new changes do not interfere with it and cause problems at higher resolutions?

ec- commented 2 years ago

Mentioned code has been replaced with manual scaling

The-Gig commented 2 years ago

Good, thanks!

NightFright2k19 commented 2 years ago

Since it already looked too small in 1080p, the new approach is much better. Anything between 2 and 2.4 should be a good value (I am using 2.25 right now).

Calinou commented 2 years ago

I wonder if the console text should be upscaled automatically from 640×480, and let the user scale it down with con_scale if they find it too large. This is how console text is scaled in id Tech 4 and later, and I find it to work better out of the box. This will be useful in particular on small screens, such as the upcoming Steam Deck.

ghost commented 2 years ago

Also, if someone here really has the skills to scale text automatically (like Calinou said), can we also change it so to have no fixed console linewidth, and the linewidth will automatically get scaled too? Just for reference, this is interesting: https://github.com/ioquake/ioq3/pull/86