Message Text Color

Text to be sent to the console and screen (say, chat, server) could be highlighted with a color (or other) attributes for better discrimination.

Advantages: This would allow say_team text to have a unique color according to your team. And in CTF "say" text could be output in the color of the player's team. This would help make team chat better in a CTF game. It's hard in the heat of the moment to tell who's talking and what team they are on. Even with "(Player Name): Blah" you still have to think too much. And when people do a normal "say" to egg the other team on etc. it would be nice if it was in their team color so you wouldn't have to do a [F1] to find out who's team they are on. I'm sure as soon as this feature was availabile people would find many other uses for it.

Disadvantages: Potential abuse for "kewl" names and effects. Small bandwidth penalty (two or four bytes per message).

Effort: I don't know how hard it is for the Text Render function to handle multiple colors. It seems the console supports color text already. Just the DLL code doesn't have control over it.

The caller would have to be smart enough not to ask for black or other stupid and non-readable colors.

As far as the API's concerned it would be simple, just add a new function: gi.ccprintf...

  void    (*ccprintf) (edict_t *ent, byte* rgba, 
                         int printlevel, char *fmt, ...);

  void    (*ccprintf) (edict_t *ent, 
                         byte palette_index,
                         byte color_index, 
                         int printlevel, char *fmt, ...);
The latter would introduce palettes into a Q3 architecture that aims for true color throughout - if there are no standard palettes in Q3, the true color (including alpha) attribute would be more elegant. Handling of fonts and scales should be done with separate setTextFont and setTextScale functions - an approach that would also work for color. Ultimately, the OpenGL, or OpenGL based API used for setting text attributes could be exposed to the game subsystem.


The basic idea could be extended to font, size, and background/foreground color control.

This is essentially a workaround for the general lack of player-controlled message filtering and highlighting.

Submitted 980328, revised 980507, comments to Karl Bunch.