Go to the first, previous, next, last section, table of contents.
Telnet connections to glass-TTY interfaces are traditional
in the mud world, but very archaic and very limiting in
what one can do.
For example, writing a really good Muq db administration
and configuration tool using only glass-TTY style interface
tools strikes me as more work than it is worth.
I would really like to see decent GUI facilities
hooked up to Muq, and sooner rather than later.
There are several plausible design approaches:
-
Use Tcl/Tk. Tcl/Tk is
free, tested, reasonably secure, available on all the major platforms,
easy to drive as a subprocess, and already installed on
many Linux boxes.
We can write a
wish
script to handle the interaction,
and run it in a subprocess via Muq's existing ]rootPopenSocket
primitive. Wrappers written in MUF can hide all this from the
Muq application programmer, just as xlib
&tc hide X protocol
communications from C programmers. The Muq Event System should
be used to supply "callback" handlers for widget events.
If we want, we can run wish
processes on other machines via
network links, so the display doesn't have to be on the same machine
as the Muq server process.
Tcl/Tk already has a Toogl widget for doing OpenGL graphics, and
will likely shortly have a Gecko widget for doing HTML display.
-
Use wxWindows. This was my favorite option at one point:
wxWindows has a vigorous open source team developing it, and runs
on Windows, Mac, Unix/Motif and Unix/Gtk: It would let us be as
cross-platform as Tcl/Tk would, at a higher level of functionality
-- and also at a higher level of Muq support effort. It sounds
likely that wxWindows will soon also support Unix/Qt, allowing
nice Muq GUIs on both GNOME and KDE.
-
Use Gtk. Gtk has a fancier set of widgets that will integrate better
with the Linux hosts used by most Muq fans. A Tcl wrapper could be
added around the basic widget set and everything then done just as
in the above design. Or a Tcl-free subserver could be used.
This is currently my favored option, because there is now a
Windows port of Gtk (
http://user.sgic.fi/~tml/gimp/win32/
) and
I anticipate with the huge amount of momentum behind Gtk that this
port will thrive and a Mac port will follow in due course -- meaning
that Gtk will wind up as portable as wxWindows, without the overhead
of the extra software layer. Which in turn means that wxWindows probably
will get very little support. All in all Gtk looks like the safest horse
to which to hitch the Muq wagon.
-
Use the Java Swing widgetset. This would open the way to eventually running really
decent GUIs from Muq on random users who simply connect to the server
via HTTP while web-browsing, without downloading any sort of special
client. Dropping the Muq/Micronesia barrier to entry that low would
be fantastic. But the technology seems very bleeding-edge at present.
-
Use X, say by implementing CLX (CommonLisp bindings to X) in Muq
softcode, or simply linking an appropriate library (Lesstif?) into
the Muq server. I'm not very keen on this because X has severe
security issues (once someone can connect to your X server they
can do nasties like steal all your keystrokes) that make it
unsuited for running GUI components provided by random untrusted
sites on the Internet: This would vastly reduce the scope for
doing interesting collaborative applications in Muq.
This GUI stuff doesn't involve any deep understanding of the Muq
internals, so someone else could do it as easily as I could, but
it needs to be done pretty soon, so I'll probably wind up being
the one doing it.
Go to the first, previous, next, last section, table of contents.