New HD fonts with real shadow (PR #113)

Hi,

I began the development of a new fonts implantation. Mainly there are now 6 fonts and they have “real” shadow.

Functionalities:

  • font : replace old (maybe illegal) Agency FB for all standard texts
  • bigFont : dedicated to big texts, as loadings bar and others big titles
  • smallFont : Same as font, but lighter
  • chat : A font dedicated to the chat. Also used for tutorial mode. (standard font is too much compact and have sometime multi-line overlap, mainly with emoticon and brackets)
  • alien : dedicated to aliens team. Used in team score and in centers prints. Could replace “bigchar” used in health bar and other numeric thing.
  • human : same as alien for human
  • Font system still compatible with old fonts
  • Resize teamscore’s columns
  • Windows background blur

Issues :

  • Cosmetics:
    • Emoticons haven’t “real” shadow, only old school (for now)
    • Neon effect/shadow seem to not be exactly under the font. (Not so grave due to the enhancement)
  • Memory usage:
    • I haven’t do any research. Since my animated creep tag are by far a lot worse than 30 * 1024^2 pixels, no ?

Todo:

  • Maybe solving some cosmetic issues
  • Create a script for all designer / developer to generate emoticon shadow
  • Rewrite CG_DrawFieldPadded
  • Open to suggestions
  • Repair some compatibility break

Patching bugs:

  • Stop measuring width of \0 when asking the width of a one char string (+ \0).
  • 127> chars didn’t behave well. With news fonts it’s highlighted.

Note:
This pull request is based on my “gamepad” update since it contain some UI patch and other patch to my previous “game quality” update. Merging this pull without “gamepad” update is a almost a nonsense.
Moreover I do this request separately because making a font update could perturbate some user, and could be in some way a bad idea. BUT, I tried to keep old font fully working. Replacing it in PK3s should works.

GitHub

1 Like

Nice looking set of changes, do you have any screenshots of the new stuff?

Any testing to verify that the new traps and UI syscalls don’t interfere with legacy (1.1 and 1.2) cgame and ui qvm’s?

I’d also ask that you rebase your commit history and document as much of your work in your final commits as possible.

I may be able to give a proper code review over the weekend.

Nice looking set of changes, do you have any screenshots of the new stuff?

I just made a video of it, as it’s almost OK according to me. There are some bugs to solve about gamepad (previous pull request still not finish).
Wait for upload…

Any testing to verify that the new traps and UI syscalls don’t interfere with legacy (1.1 and 1.2) cgame and ui qvm’s?

I just test myself by connecting to old servers, manually. Also I try to never replace old things, but making it secondary (unused but still there) as I did for old fonts, with a new configuration format for it.

I’d also ask that you rebase your commit history and document as much of your work in your final commits as possible.

Yes, I will rebase on latest master, as possible. However I got a lot of surprise while rebasing, that’s why I try to only do it at the end.

I may be able to give a proper code review over the weekend.

Nice! Remember that this pull request is based on this one. However its more logical to verify all at once since there are too many details.

Also, I have a did a website promoting what changes I did. I should publish it soon.
Moreover I have started the development of a launcher. For now only it’s UI is really coded. Still not published too.

Hi,
I think I will stop there for this pull request. I have nothing more to add for the font system.
A complete review could be began.

I will spend more time nextly to make these update accessible, probably by implanting some less aggressive compatibility options.
Also I will see what I can do to create a server. Currently the main issue is that the server absolutely want to send GrangerHub’s assets which are not necessary compatible with old clients (issue with JPEG images): fixing it or documenting it is not bad options.

New server creation is critical as I expect issues with modded server (oc, betaserv, …).

Hi,
I consider my work as done.
There are some screenshot of the final: screenshots - Google Drive

However, I would like to reopen the same PR with less small commit, and no buggy commit (as git rebase caused a lot of troubles, even if the final is OK)
It will also allow me to self-review my code as this kind of PR is hard to review.

I close it for now and will reopen it later.