In response to FIREking
FIREking wrote:
The server wouldn't generate anything. The server and client, both, would use an icon as the font.

> font/my_font
> icon = 'my_font.dmi' //contains an icon state per ASCII character
> glyph_width = 8
> glyph_height = 8
>
> mob/verb/example()
> var/obj/test = new
> var/font/my_font/f = new
> test.screen_loc = "1,1"
> src.client.screen += test
> f.Display(loc = test, message = "Hello world!")
> //OR
> var/ref = f.Display(loc = test, message = "Hello World!")
> src << ref //similar to how images currently work, but the client assembles the glyphs instead of the server
> sleep(10)
> del ref
>


Maybe not exactly that, but something similar. The Display proc sends the "display some glpyhs" message to appropriate clients, and the client itself does the actual rendering. Or it returns a ref that can be output to clients, the client will still do the heavy lifting of actually assembling the glyphs onto the screen.

So yeah, I am looking for a solution that doesn't require doing icon operations or using overlays and image calls, or using an atom per glyph.

Perhaps the icon editor could even be extended so that you could mark the icon file as a "graphical font", and the properties of the font can be defined within the file itself. Just an idea.

I really like this implementation.
Lummox JR resolved issue with message:
Two new vars, atom.alpha and atom.color, influence the appearance of icons on the screen. The alpha value can be used to fade an atom in and out; the color is multiplied by the icon.
Page: 1 2 3