<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Clients --> <!--X-From-R13: @nguna T Kbfcr <lbfcrNunjnvv.rqh> --> <!--X-Date: Thu, 19 Feb 1998 01:28:43 +0000 --> <!--X-Message-Id: Pine.GSO.3.95q.980218083205.10320A-100000@uhunix1 --> <!--X-Content-Type: text/plain --> <!--X-Reference: Pine.3.89.9802172254.A26542-0100000#directcheck,aries.net --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Clients</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:yospe#hawaii,edu"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00528.html">Previous</a> | <a href="msg00530.html">Next</a> ] Thread: [ <a href="msg00521.html">Previous</a> | <a href="msg00675.html">Next</a> ] Index: [ <A HREF="author.html#00529">Author</A> | <A HREF="#00529">Date</A> | <A HREF="thread.html#00529">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Clients</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Clients</LI> <LI><em>From</em>: Nathan F Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI> <LI><em>Date</em>: Wed, 18 Feb 1998 15:23:08 -1000</LI> <LI><em>Reply-To</em>: Nathan F Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On Tue, 17 Feb 1998, Katrina McClelan wrote: Hi, Kat! :On Tue, 17 Feb 1998, Travis Casey wrote: :> Why? I mud from a variety of locations, and don't want to get used to :> using an interface that I won't always be able to have. If that :> interface can only be used on some muds, I'd be even less likely to :> want to use it. :That's one of my problems in general with clients and the issue of telnet :is bad. I'll be the first to agree that telnet is a very silly protocol. :However, it's supported on almost any platform without extra downloads or :such. The solution I'd eventually use, and that I have mostly implemented :is a [psuedo] terminal server, terminfo, and lib curses. Yes, curses CAN :be used on multiple "terminals" from within the same program. I actually :have the starts of a nethack like game over telnet for multiple players. :I got bored with the whole thing (mostly because the game system was :stupid; the project was more a matter of getting menus to work over telnet :sockets than it was to have a good game), so I didn't finish it, but you :could log in and go through a character creation sequence that was all :menu driven. I suppose that curses limits features to text, but with full :screen manipulation of it, it's still quite versitile. Particularly if :you use ncurses and expect (partually dangerous) the the receiving client :supports colors in some way or another (doesn't have to be vt100 with :ncurses). The only real downside to this is character mode is required, :and that sometimes locally handling text requires that you retransmit it. :But if you're considering web based clients, character mode isn't THAT bad ::) The real question is, do you want to support the client as well as the server? There are a lot of "telnet" clients out there. Most suck. Most players, now, are unfortunately servents of the Borg, and the MStelnet is one of the worst. There are also a number of mud clients that don't follow any sort of standard, and tend to cater to one of the big three bases. So the options remain: Take your chances with telnet; Write the client for M$ (and possibly a few other OS's); Write the client in the form of a web extension; Write the client as a Java application... the advantages and disadvantages of each are: Telnet really isn't that hot a client; M$ is evil (and besides, there _are_ other OSs, and portable code isn't as easy as it sounds); web extensions tend to bring in that unspeakable element, and are slow to boot (even java applets); Java is not the most stable or efficient language at the moment. As for what I advocate... I chose the last option. I'm hoping Java1.1.x remains more or less viable for a while to come, and counting on JITs and native or optimizing recompilers, chunks of bottleneck code written in native on the big three or so platforms (Solaris, MacPPC, PPC, and x86), and the (hopeful) raw power of users' computers. I'm also releasing a hostable version that runs in a unix csh, so that users can run it on accounts, and thus get pretty close to the effect of a VT100 telnet interface. I also have started working on a system for storing a datafile in a form that is platform neutral, to be stored on a remote access account like a .newsrc, allowing a player to run different copies of the client and different machines at different locations with the same account setups and the same characters. The problem is, this datafile is the core for the neural net, and gets rather large. I anticipate sizes over 4MB, or possibly larger... I'm hoping to find a way to store it by dated entry modification files... The advantages to supporting a client is that it becomes the repository for oft-repeated player by player computations, data, and even communication, (I'm working on distributed hosting, and the idea of interplayer message-only communication nodes appeals to my sense of elegance in design, as does DCClike linkage between any pair, or possibly even trio, of clients.) ... it can handle any protocol you might need it to, (I'm creating my own data service protocols for both alternate media (graphics and sound) and database updates (new regions and materials, new behavior patterns, new models).) ... and it gives a player the option of game related persistance beyond simple macros. If I were to state one primary reason for supporting a client, however, I would point to the massive text parsing effort of just about every mud codebase I have seen. LP, Diku, Tiny*, or Cold, all use more cycles on text parsing than anything else (OK, maybe not always, but generally.) and none of them really even do anything fantastic with it. Now, where I branched off was the generated text... and this almost demands a new approach. What are the disadvantages to clients? Clients are not safe, tucked away on the server. They can be hacked. They can be made to put a programmer at an advantage in the game, if too much resides in them. I really don't much care, as I see any hacking for smarter response as advanced macro construction. ;) I don't have a typical mud, though, so my lack of worry may be more a reflection of a mistaken belief in this bulletproof solution to simulation. I don't think there is any data in my model that can be recognized enough to be tweaked by a player for a favorable balance through hacking, and not by any other means. The big risk of a client, in my opinion, is that it tends to limit the changes to the server, if not designed intentionally to maximum flexability. I am extremely aware of this problem, and quite vulnerable. I expect the client to be upgraded as often as the server, and only the datafile to be secure, and even that not during the first couple of testing years. -- Nathan F. Yospe - Aimed High, Crashed Hard, In the Hanger, Back Flying Soon Jr Software Engineer, Textron Systems Division (On loan to Rocketdyne Tech) (Temporarily on Hold) Physics student, University of Hawaii dept of Physics yospe#hawaii.edu nyospe#premeir.mhpcc.af.mil <A HREF="http://www2.hawaii.edu/~yospe/">http://www2.hawaii.edu/~yospe/</A> </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="00675" HREF="msg00675.html">VEIL (was: Re: [MUD-Dev] Clients)</A></strong> <ul compact><li><em>From:</em> Brandon Gillespie <brandon#roguetrader,com></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00521" HREF="msg00521.html">Re: [MUD-Dev] Clients</A></STRONG> <UL><LI><EM>From:</EM> Katrina McClelan <kitkat#directcheck,aries.net></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00528.html">[MUD-Dev] Re: Version Control (was: DBs and Events)</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00530.html">Re: [MUD-Dev] Java and Javascript</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00521.html">Re: [MUD-Dev] Clients</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00675.html">VEIL (was: Re: [MUD-Dev] Clients)</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00529"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00529"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>Clients</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="00450" HREF="msg00450.html">Clients</A></strong>, Stephen Zepp <a href="mailto:zoran#enid,com">zoran#enid,com</a>, Fri 13 Feb 1998, 21:48 GMT <UL> <LI><strong><A NAME="00465" HREF="msg00465.html">Re: [MUD-Dev] Clients</A></strong>, Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Sat 14 Feb 1998, 22:42 GMT </LI> <LI><strong><A NAME="00519" HREF="msg00519.html">Re: [MUD-Dev] Clients</A></strong>, Travis Casey <a href="mailto:efindel#polaris,net">efindel#polaris,net</a>, Wed 18 Feb 1998, 04:47 GMT <UL> <LI><strong><A NAME="00521" HREF="msg00521.html">Re: [MUD-Dev] Clients</A></strong>, Katrina McClelan <a href="mailto:kitkat#directcheck,aries.net">kitkat#directcheck,aries.net</a>, Wed 18 Feb 1998, 05:29 GMT <UL> <LI><strong><A NAME="00529" HREF="msg00529.html">Re: [MUD-Dev] Clients</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Thu 19 Feb 1998, 01:28 GMT <UL> <LI><strong><A NAME="00675" HREF="msg00675.html">VEIL (was: Re: [MUD-Dev] Clients)</A></strong>, Brandon Gillespie <a href="mailto:brandon#roguetrader,com">brandon#roguetrader,com</a>, Tue 03 Mar 1998, 12:26 GMT </LI> </UL> </LI> <LI><strong><A NAME="00556" HREF="msg00556.html">Re: [MUD-Dev] Clients</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 23 Feb 1998, 00:59 GMT <UL> <LI><strong><A NAME="00571" HREF="msg00571.html">Re: [MUD-Dev] Clients</A></strong>, Katrina McClelan <a href="mailto:kitkat#directcheck,aries.net">kitkat#directcheck,aries.net</a>, Tue 24 Feb 1998, 04:44 GMT <UL> <LI><strong><A NAME="00621" HREF="msg00621.html">Re: [MUD-Dev] Clients</A></strong>, Travis Casey <a href="mailto:efindel#polaris,net">efindel#polaris,net</a>, Fri 27 Feb 1998, 12:22 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>