Doomsday Font and UI Tune-Up

edited 2006 May 27 in Developers
<i>This post was originally made by <b>skyjake</b> on the dengDevs blog. It was posted under the category: Engine.</i>

In revisions 3230 through 3235 I have added a new set of fonts and tweaked the UI so that things look a bit better. Make sure to check out the new default settings for the console.
<ul>
<li>Three variants of the variable-width font (normal, light, bold).
<li>Console now has the Doomsday titlebar.
<li>Console background defaults look much better.
<li>Text drawing should be faster since no separate shadow has to be drawn.
</ul>

We still could revise the UI theme and colors, but I think these changes already make a significant improvement (IMHO!). I think there are a couple of details left to tune (console help box overflows), but on the whole it's looking quite good.

Comments

  • There may be an endianness issue in gl_font.c. When the bitmap is loaded, the RGBA components are set like this:
    <pre>*ptr++ = (alpha | (blue << 8) | (green << 16) | (red << 24));</pre>
    ULONG() may have to be used, and the order of the components reversed.
  • Ooh swish. The new variable-width fonts look much nicer, great work.

    I've noticed a few small issues:
    <ul>
    <li>Console text can be seen through the Doomsday titlebar due it's transparency.</li>
    <li>Text inside UI buttons in the control panel is too low (about 6 relative pixels).</li>
    <li>Setting the font to use DOOMFONT (eg) makes the font in the Doomsday titlebar huge, forcing the [gamename] string off screen.</li>
    <li>The width of the cursor in the console doesn't match the width of the character underneath it. Never a problem with fixed width fonts.</li>
    <li>CCMD "font": the 'default' settings need to be updated to match those of the font chosen at startup.</li>
    </ul>
    It would be nice if the UI faded out when adjusting the light range compression, ambient light level and other similar settings when in-game (maybe display the light range matrix too).

    Also, I think the fading of the UI when adjusting the video settings currently is a little bit too slow.

    What do you think of the slightly tweaked version of the Doomsday logo I created for the DEW? It has a bit of an under light which I think makes it look a bit better.
  • <blockquote>Console text can be seen through the Doomsday titlebar due it's transparency.</blockquote> This is intended. I kinda like how it looks. However, the minimum height of the console should be adjusted so that the minimum is that there is a single line of text visible under the title bar.

    <blockquote>Text inside UI buttons in the control panel is too low (about 6 relative pixels).</blockquote> Yes, I noticed that too. It seems like it's caused by the rather high line height of Gill Sans. I'll tweak the font script and the renderer so that ascent+descent it used as line height, instead of the glyph bitmap height, and adjust the normal fonts' ascent to be a bit lower.

    <blockquote>The width of the cursor in the console doesn't match the width of the character underneath it.</blockquote>Should be fixed now?
  • <blockquote>Should be fixed now?</blockquote>
    Well, its not urgent :)
  • Some fixes:

    <ul>
    <li>Title bar height a bit shorter.
    <li>Alignment of text in buttons (and other centered lines) should be better now.
    <li>DOOMFONT does not mess up the title bar.
    <li>Console cursor width seems OK to me now.
    <li>"font default" updated.
    </ul>

    <blockquote>Also, I think the fading of the UI when adjusting the video settings currently is a little bit too slow.</blockquote> Also adjusted to be a bit faster. The speed should be a cvar, though. Look for UI_ALPHA_FADE_STEP in ui_main.c.

    <blockquote>What do you think of the slightly tweaked version of the Doomsday logo I created for the DEW? It has a bit of an under light which I think makes it look a bit better.</blockquote> Looks fine, but in the control panel there is no light coming from underneath, so I don't think it would work there so well.
  • <blockquote>It would be nice if the UI faded out when adjusting the light range compression, ambient light level and other similar settings when in-game</blockquote> No problem. Just add the necessary UIF_FADE_AWAY flags in the UI objects table.
  • The UI/console are looking pretty good now.

    I've not really noticed any other problems other than:

    When editing a text field in the UI - the cursor is not positioned correctly. It looks like it is being positioned relative based on fixed-width font?
  • Which text field? At least the server password, and the name and description fields work correctly for me. Have you updated to the latest revision?
  • <blockquote>Which text field? At least the server password, and the name and description fields work correctly for me. Have you updated to the latest revision?</blockquote>
    Definetly broken here: <a href="http://www.daniel.ddsdesign.co.uk/Stuff/editfieldcursor.png&quot; rel="nofollow">editfieldcursor.png</a>
  • I have revision 3243. Your screenshot looks older (tall title, misaligned button captions, large word gaps and line height in help text, etc.).
  • <blockquote>I have revision 3243. Your screenshot looks older (tall title, misaligned button captions, large word gaps and line height in help text, etc.).</blockquote>
    Sorry, you're right I wasn't using revision 3243. I could have sworn I ran update before I commited my changelog entries...
    <blockquote>When editing a text field in the UI - the cursor is not positioned correctly.</blockquote>
    This issue is resolved in 3243 for me too.

    However, I now get the following new warnings with 3243:
    <blockquote>Src\con_main.c(2673) : warning C4013: 'GL_ChooseFixedFont' undefined; assuming extern returning int
    Src\con_main.c(2673) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'int'
    Src\con_main.c(2688) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'int'</blockquote>
  • Revision 3247 fixes that.
Sign In or Register to comment.