<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: Ho hum --> <!--X-From-R13: pynjerapNphc.uc.pbz --> <!--X-Date: from fabius.globecomm.net [207.51.48.6] by mx3.ibm.net id 861037392.87366-1 Mon Apr 14 17:03:12 1997 --> <!--X-Message-Id: 199704141706.KAA14123#xsvr3,cup.hp.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199704132248.WAA403102#out1,ibm.net --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: Ho hum</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:clawrenc#cup,hp.com"> </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="msg00132.html">Previous</a> | <a href="msg00134.html">Next</a> ] Thread: [ <a href="msg00125.html">Previous</a> | <a href="msg00099.html">Next</a> ] Index: [ <A HREF="author.html#00133">Author</A> | <A HREF="#00133">Date</A> | <A HREF="thread.html#00133">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: Ho hum</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: Mud Dev Mailing List <<A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A>></LI> <LI><em>Subject</em>: Re: Ho hum</LI> <LI><em>From</em>: <A HREF="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</A></LI> <LI><em>Date</em>: Sun, 13 Apr 97 09:29:35 -0700</LI> <LI><em>Reply-to</em>: <A HREF="mailto:claw#null,net">claw#null,net</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> In <199704132248.WAA403102#out1,ibm.net>, on 04/13/97 at 11:44 PM, Ling <K.L.Lo-94#student,lut.ac.uk> said: >On Sat, 12 Apr 1997, Nathan Yospe wrote: >> On Sat, 12 Apr 1997, Ling wrote: >> Hmmm. Did any of us provide personal life stuff? >Dunno, I thought I'd provide those snippets of information so you >guys know my leanings and background. *shrug* The main bit being >untrained which means I like to think I've got the aptitude and >intuition for coding but I don't know all the computer jargon >(there's a distinct trend to name and patent anything which moves). Sounds like me, except that I've been around long enough, and read enough to get the jargon. Ahh well, I guess I'm one of the few left who hasn't done the "Hi! My name is Bubba and I like beer, and fast women and country music!" song and dance. I'll start off with a cut'n'paste of a blob I posted earlier. I've inserted editorial comments in [[double squares]]: --<cut>-- >Which reminds me: How did you write your mud? from scratch? based on >some routines you had lying around and them fused together? Oooh boy. Long story. Short answer: From scratch, with lots of retries, restarts, and abandoned dead ends. I was contracting pretty much the whole time, so also borrowed lots of ideas from various workplaces and folded them in (more or less successfully) as I went along. Back in, oh, roughly late '84 timeframe I was playing Shades and SX MUD (MUD1/MUD2) a lot, and started talking to Pippin Caudry (cf IOWA and Bartle's MUD survey for placement/reference) about writing a MUD server for him to run on a BBC micro on direct dial-in lines. About the time that I actually started work on designing the beast (an absolute hack I now would shudder if it had seen the light of day), Pip instead decided to run with a local PL/1 chap who said he could do the neatest thing since sliced bread (never happened -- Mirrorworld, which was already in development, took its place). However, I was hooked on the idea of a really *NEAT* MUD server. I had hold of a PC, and a PDP-10, and was infatuated with the parallel processing concepts of the then new Inmos Transputer and Occam. I'd also just bought a copy of Zorland C (nee Datalight, later Zortech, now Symantec) and was teaching myself C. I generously figured that by the time I had the damn thing designed and partly written that I'd have a Transputer based machine with at least three or four T400's to do the rest on, and Occam would probably have succumbed to C (pray pray). <kof> <<Still got all those early notes and design drafts too>> By about 1Q87 what with the rest of real life and trashing everything I'd done a couple times, I had a DB layer all done along with area import/export, along with offline room, object, and mobile coding. <<Can you say three byte longs? I thought you could. I used them *everywhere* in the DB to conserve space (lotsa arrays). <unghh>>> Never did touch the actual run-time aspect then -- was still waiting for decent MP hardware to do the event stuff on (it was event driven from the start -- I never even thought of a polling loop). [[Note: My design model was Shades, encluding its utter lack of containers, etc but with a lot of the game complexity of MUD thrown in confusedly]] Nearly went to work for CIX with an aim to doing a MUD server on the side for them. Came back to the States instead. About the same time I started get on the 'net seriously, and discovered LP, the Tiny-* clan etc. Trashed everything I'd done again, dropped the three byte longs, and decided to go with a simpler DB, and event architecture running atop MINIX. Fell in love with Aber (as a player) and spent an awful long time playing Northern Lights. Later decided to move the OS base to XINU. MOO (the original, pre-Lambda) happened about this time. Thought it was a wonderful idea, but buggier than crap. Thought the design concept was neater than sliced bread (everything in the DB, totally dumb server, objects/methods etc in the DB too, objects animated themselves). Also thought the everything-in-memory model was stupid, and didn't like the polling architecture. Started working a lot with OS/2 back when 2.0 came out. Decided that this multi-threading thing was a pretty damned neat replacement for full parallel processing and Transputers, even if not quite as slick. Started recoding, moving everything to OS/2 and MT. Went to a disk-based DB model with a central MOO-style DB running everything. Back in Oh, '94-ish decided to do C++ the thing. Started again. Cleaned up the event model a LOT. Everything is homegrown. Major inspirations (mostly in time order): Shades, MUD2, Transputers, Marcus Ranum, Uber, Unter, LP, Aber, Tiny*, Northern Lights, MOO, Stephen White, LambdaMOO, a large bunch of IBM's OS/2 developers, Cool, Interlude (neat!), Dave Engberg, C++, Cold, Mike Cowlishaw, Legend, ColdX, Greg Hudson, MUQ, BeOS, Inferno, Limbo. [[Interestingly enough, looking at the above list of (typically) social-type server references, the types of MUDs I like playing are pretty hack'n'slash kill-the-wumpus-style monty hauls]] --<cut>-- Life history? Hit computing back in high school in England doing a CompSci 'O' level. The teacher (a Mr King) and I mutually decided that we were utterly unable to communicate to each other, and tacitly agreed that we also had no need to and ceased to ever try. Never did get the 'O' level. Did re-write space invaders in Pet BASIC with decent run-time performance, along with several other games of minor notoriety in the PET world (a well known growth field). That was my last touch with formal eductation or traning. For various minor reasons, like hopping countries, the fact I was working already (started contracting when I was 14/15) and other infatuations I never did the college thing. So I'm essentially self-taught from day one. I've been contracting pretty well since I was 15, starting with a financial system for Pater written in GWBasic, and moving on from there by word of mouth to a contact management system for a local church etc. I dropped off a couple times for other fun things: taught school for a year, got back into sailing, etc yada yada, but kept coming back to contracting. I won't bother much with the Playboy-style bio bumph: Guiness is the one true form of beer, and all else is a pale imitation. Good wine is the nectar of the gods. I consider "political correctness" a lunacy from the ground up. I read. Not so much now (used to average 20 novels a week). Most of my education is centred in the pure maths and literature. I *love* religious philosophy. I don't like Microsoft and refuse to work on or with any of their products. Game design is a big interest. Private affordable spaceflight is another. Life is a game. Enjoy it. Have fun. It is for the living. The last line is meant absolutely literally without reservations or caveats. >Earlier, someone mentioned the possibility of the processor spending >most of it's time time-slicing between multiple threads if there was >a lot of connections. There are two problems here. 1) Number of threads used to manage connections. 2) Total number of threads. #1 I think is really what you are referencing. Having one (or occassionally two) thread(s) per connection is a typical first approach. The problem is that it is not scalable. Consider: You have 500 online players? That means 500 threads PLUS whatever your server is using. Most current OS designs don't like such high thread counts per process (some have hard limits). The price of the context shifts between the threads also begins to become significant once you get that high. The problem is that it makes for very thread counts which increase linearly. #2 Is curiously enough a smaller concern (as long as it doesn't grow as quickly or as fast as the above). Threads are cheaper than processes. Thread context shifts are cheaper than process context shifts. A multi-threaded process will generally run faster than an equivalent arrangement of seperate processes. My server idles with I think 30 or 40 threads. Start pumping events and users thru there and the thread count will grow (slowly). It would take an awful lot going on to get my server as high as 150 threads -- certainly a lot more than 500 users. -- J C Lawrence Internet: claw#null,net (Contractor) Internet: coder#ibm,net ---------------(*) Internet: clawrenc#cup,hp.com ...Honorary Member Clan McFUD -- Teamer's Avenging Monolith... </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00132.html">Re: Of disk swapping, database structure & project management..</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00134.html">Re: Who is Steward and what can he do for me?</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00125.html">Re: Ho hum</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00099.html">Re: Just a bit of musing</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00133"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00133"><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>Re: Ho hum</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="00115" HREF="msg00115.html">Re: Ho hum</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Sun 13 Apr 1997, 11:45 GMT </LI> <LI><strong><A NAME="00118" HREF="msg00118.html">Re: Ho hum</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sun 13 Apr 1997, 23:57 GMT </LI> <LI><strong><A NAME="00124" HREF="msg00124.html">Re: Ho hum</A></strong>, Ling <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Mon 14 Apr 1997, 05:38 GMT </LI> <LI><strong><A NAME="00125" HREF="msg00125.html">Re: Ho hum</A></strong>, Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Mon 14 Apr 1997, 06:53 GMT </LI> <LI><strong><A NAME="00133" HREF="msg00133.html">Re: Ho hum</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Tue 15 Apr 1997, 00:03 GMT </LI> </ul> </LI> <LI><strong><A NAME="00099" HREF="msg00099.html">Re: Just a bit of musing</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 12 Apr 1997, 08:49 GMT <UL> <li><Possible follow-up(s)><br> <LI><strong><A NAME="00098" HREF="msg00098.html">Re: Just a bit of musing</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 12 Apr 1997, 08:51 GMT </LI> <LI><strong><A NAME="00111" HREF="msg00111.html">Re: Just a bit of musing</A></strong>, Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Sun 13 Apr 1997, 07:55 GMT </LI> <LI><strong><A NAME="00114" HREF="msg00114.html">Fw: Just a bit of musing</A></strong>, Travis Casey <a href="mailto:casey#NU,cs.fsu.edu">casey#NU,cs.fsu.edu</a>, Sun 13 Apr 1997, 09:33 GMT </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>