Sign in to follow this  
Followers 0

Text generator

Thought I'd show this off something I've been working on recently. Freedoom's build system now automatically generates the chunky text images used in the menus. Here's a screenshot:



Until now the text graphics were static images that Andrew Apted made looong ago in the early days of the project. The problem with having static images is that it's hard to change them or add new ones. This new script makes changing them easy. Other advantages:

  • It's easy to make a new font. Just come up with a new set of characters, drop them in and all of the menu/intermission screen graphics will be changed. Actually I kind of hope someone will do this. I don't like the current font very much.
  • We can now set the level names easily. Currently the level names shown in the intermission screen are just "E1M1" or "MAP01". It would be nice to give the levels some real names. I plan to sync this up with the level names from the Dehacked lump so that there's a single source of truth.
The new autogenerated graphics are a bit darker around the edges than the old ones. I used the original font_RAW image as the base for the font characters. It looks like the old static images had their brightness/contrast adjusted. Personally I think it looks better this way - I like the extra contrast.

Another convenient thing here is that it's possible to add extra lumps for source ports that define their own graphics for extended menus. I've included replacements/overrides for ones used by PrBoom and Eternity Engine. Here's PrBoom+'s setup menu for example:



There's a bug with PrBoom/+ in that it loads its resource WAD after the IWAD, so the Freedoom overrides currently don't work. I've commented on this in the PrBoom+ thread so hopefully this will get fixed. Until now it's possible to get the above result by running with -iwad doom.wad -file doom.wad.

Share this post


Link to post
fraggle said:

Another convenient thing here is that it's possible to add extra lumps for source ports that define their own graphics for extended menus. I've included replacements/overrides for ones used by PrBoom and Eternity Engine. Here's PrBoom+'s setup menu for example:

There's also Skulltag's "Multiplayer" menu, though there was talk of removing it in Zandronum so maybe it's not worth adding.

Share this post


Link to post

It doesn't hurt to just include it anyway - it's not like these extra graphics take up much space. Interestingly ZDoom has its own internal font lump that is used to render additional text on its menus, so to support that we will need to generate one from the Freedoom font.

Share this post


Link to post

Somebody please make a decent menu font!

It's about time the current placeholder was dropped into a black hole and literally never seen again.

Share this post


Link to post

I agree. The good thing is that it's now trivially possible to do exactly that.

Share this post


Link to post

I think the intermission screen has regressed.



This is what it looked like in 0.7.



To clarify, the black background on the times and percentages is obviously wrong. I think it is a bug in the current version of imagemagick in debian sid: it seems a single-character image loses its transparency when saved to the temporary file.

It can be worked around by removing use of a temporary file and combining the two invocations of imagemagick into one (which also happily speeds up a clean rebuild from 1:21 to 0:45 on my machine...)

Patch here: http://sprunge.us/VXMJ

I think it's polite to ask fraggle for a review before I commit this, as it's his new code I'm making a mess of ;-)

Share this post


Link to post

Looks great, thanks for that - please go ahead and apply.

It's particularly great to see the text generation being done in a single command line instead of two. I tried but couldn't figure out how to do that.

The Debian version of ImageMagick has a bug that caused it to not work properly when I was developing the text generator. I actually built the latest version from source as a workaround, but forgot to test using the stock Debian version before committing.

Share this post


Link to post

I think this is still not fixed: I'm seeing a black background on the blue-tinted text (the "Choose Episode:" / "Choose Skill Level:" graphics).

Share this post


Link to post
andrewj said:

Somebody please make a decent menu font!

It's about time the current placeholder was dropped into a black hole and literally never seen again.

Ah, I'm not even sure why I'm volunteering myself, but I could possibly make a new set for you guys. I have some existing fonts here which can be used (actually ask me before using them so I can confirm they are 100% my work), but they are old and not that great. My latter font works are much better in my opinion, the latest being the font in Unholy Realms.

If there's is a particular style and design you guys would like, let me know.

Share this post


Link to post

Thanks! I took a look at your past work and they look really nice fonts. It seems like you have a real talent for it, and Freedoom really needs a new font.

I guess something chunky like Bolo or Aethernox would probably work well, although we want something distinctive that doesn't just look like an outright copy of Doom's original font. It needs uppercase and lowercase letters (though the "lowercase" ones can be smaller allcaps, like the current font, and like you've done in Bolo). The text generator assumes the font characters are white GIFs with transparent backgrounds, and translates to other colors automatically.

Ideally we'd want a matching small font as well, though I don't know if that's too much to ask :) The current small font isn't too bad - the main thing is replacing the large font, which as andrewj points out, is awful.

Share this post


Link to post
fraggle said:

I think this is still not fixed: I'm seeing a black background on the blue-tinted text (the "Choose Episode:" / "Choose Skill Level:" graphics).

Fixed hopefully. It turns out there are some subtleties with -colorize that are not readily apparent from the documentation...

Share this post


Link to post

Well, I did have some plans to redo some of my older fonts with Aethernox being one of those. Though if I remember correctly, Aethernox was supposed to be an attempt at some sort of Heretic/tech design...which didn't really turn out very well in my opinion. I could give it a go if it seems like a worthwhile design though :)

I'd be more than happy to let you guys use Bolo, buuuut I'm not 100% if it is one you guys could legally use. It was based off of the DeepZ font by Risen. According to that thread, the typeface is licensed as freeware. But unless I'm mistaken, the font is essentially extended from some of the Doom graphics. So ehhh, I dunno about that one.

Anyways, a bold, chunky font is definitely doable :). If there are any of those other old fonts of mine that look interesting as far as design is concerned, they can be redone to look more bold (and less sucky). Also I can definitely do a smallfont as well. I almost always make a matching smallfont replacement alongside a bigfont replacement. Although smallfonts tend to be a bit harder to do for a number of reasons (maintain readability with the design, ensure graphic size doesn't break certain menus, etc). I'll almost certainly make a smallfont with a bigfont, even if you guys decide not to use it :)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0