GUIs and Font Rendering

14 Jul 2005

Timing update: I have the code in place to start converting things over to a proper time-stepped solution, but it isn’t very exciting work, so I haven’t dug into actually doing the converting yet.

I did find something else exciting though: a presentation by Casey Muratori about Immediate Mode GUIs. He put together a movie (found here, look in the sticky topic for the movie) in which he describes a different way of going about putting GUIs together. There’s a lot of discussion about it on the site, and in general, it’s a very neat idea. And it works beautifully for games.

So I’m building an IMGUI into Egoboo. So far it’s very straightforward, easy to use, and easy to get robust behavior out of. It makes GUI programming a lot less tedious, and a bit more fun.

One thing that’s annoying me about it though is that Egoboo’s text rendering is rather… inaccurate, for lack of a better term. Where text appears on screen isn’t where you would expect it to, given the coordinates you tell it to draw at. It’s offset downwards by a bit. It’s bugging me, and I’m iffy about trying to fix it and breaking text locations for most the game, so I’m quickly adding TrueType font support via SDL_ttf to use in the GUI system. Dunno if I’ll keep it, but being that it supports Unicode text, it’s probably a good idea to. Makes it easier to do translations somewhere down the road.

I’ll post screenshots once I pretty this all up a bit.