Today was generally a waste of time. The original plan this morning was to 'quickly' get fonts/text-drawing implemented, and then code in a simple GUI system to allow the future players to set some simple options (like Host or Client mode, or their alias) and generally look pretty.
Unfortunately, only the first part happened. The 'quick' font implementation took the majority of today. Being the spoiled little coder I am, I was under the impression that adding text drawing would be rather trivial, like it is in Direct3D via the ID3DXFont interface. Wrong! [grin]
First I went along with NeHe Lesson #13 to try to get bitmap fonts working. I really liked the idea of being able to create new font sets/styles on-the-go, rather than being bound to a premade image, like texture-mapped fonts. Rasterized fonts like bitmap fonts aren't as fast, but they sure as heck take less time to implement (when you know what you're doing). In summarization, the bitmap fonts didn't work. Odd. I was using SDL rather than the evil Win32 API like the NeHe tutorials use, so I figured that a simple call to wglGetCurrentDC() would get the device context and make life simple. Nope. Nothing rendering on the screen. The heck?
After an hour or two I caved and decided I'd try some other method to get that elusive glyph-y paradise on my screen. A few 3rd-party libraries were attempted, but they simply didn't play nice with Windows; strange makefile lingo and QT references left me feeling dumbfounded. Nuts; off to something else.
Next I went after Ravuya's RavBitmapFont class that was conveinently close to his Propane Injector files. It sounded relatively nice and easy, since it could read in AngelCode-format texture-mapped font files. Doh. Again I was struck by non-Windows fervor. Or something like that. In either case, it didn't work out. No offense to Ravuya of course. It was likely something silly on my behalf that led to my failure.
By this time I was furious. I grunted in frusteration and played Infantry, Restricted Area, and some other PC games for most of the few hours before Draffurd came over, where we drank Alexander Keith's (a flavourful beer!) and played Doom 2 on his XBox. Good times. I'm actually still semi-drunk, so excuse any illogical sentences or typos -- although I'm pretty good at preventing the latter.
Long story short:
I got it working. Turns out if you don't glDisable GL_TEXTURE_2D, rasterized bitmap fonts will never appear. Funny stuff, huh? I didn't laugh. [sad]
Anyways, this clears the path so that I can encapsulate font drawing into a class system (so multiple fonts/styles can exist), and then writing that GUI system. And then, my friend: networking!