April 1997
- From out of the shadows... Dan Mazeau
- Introduction Shawn Halpenny
- Introduction Nathan Yospe
- Introduction Chris Gray
OK, I'll do one too.
First, I have to admit a few things:
- I've never really played a MUD other than mine (other than about
4 hours on Northern Crossroads, and some LP experimenting)
- I'm old enough to be the father of most of you, so my perspectives
might be quite different
- I've done very little RPG-ing, but a fair amount of Adventure gaming
- I think the Web and C++ suck big time! (shocking!)
My background:
I started university in an honors physics program, and took Computing
Science first in my third year. I became unhappy with physics (I find it
virtually impossible take *anything* on faith!), and so switched over to
Computing Science. Because my courses were a mess (not enough), I didn't
expect to graduate after my fourth year, so I wasn't prepared when they
sent me a diploma that summer. After some phone calls, etc. I ended up
in graduate studies in Computing Science at the same university (University
of Alberta, here in Edmonton). My field of study was programming languages
for artificial intelligence, and my project was the design of such a
language, called 'ALAI' (A Language for Artificial Intelligence - original,
huh?) It was a big language, strongly typed (moreso than C), with a
syntax flavoured after Algol68 (going strong at the time). One of my
supervisors hired me to implement the beast, while also doing Teaching
Assistant work. Previously I had implemented in my spare time a compiler
for a language called "QD" (Quick and Dirty) for the IBM mainframe. I
started the ALAI project in 360 assembler (ick!) and got really bogged
down after a few months. So, I invented "QC" (Quick and Clean), and
wrote a compiler for that, then resumed the ALAI project in it. It still
got bogged down (it was essentially too big for one person to do). My
supervisor got tired of this (not unexpectedly!), so I ended up teaching
for the department, in the areas of computer architecture, programming
languages, and adaptive information systems. I eventually decided to go
for a PhD (at the same university!!!), and started in on that. I made
a poor choice of supervisor - I wanted to study what internal features
are required for any multi-user protected operating system, but he wanted
it to be theoretically grounded (something I strongly dislike). I had
done all the course work, and was left with having to do the thesis, and
a whole slew of math stuff to make up for the fact that I hadn't done
the zillion math courses they required for a PhD. I threw up my hands
in disgust and went to work for the department as a programmer analyst.
During this phase I bought my first two computers - both CP/M systems.
I also created the programming language 'Draco', which was first for
CP/M, and later got ported to the Amiga/68000. It is what my current
system is written in. The CP/M version of Draco is still in the "Simtel"
archives, and was used by a reasonable number of people around the world.
My docs were even put into a McGraw-Hill book (without even asking me!)
My boss then was not, and still isn't, suited to being a boss, so I ended
up quitting in a huff one day. I spent a couple of years doing some
consulting type stuff, doing commercial CP/M software and custom dBase-II
programming. Income was negligible, so when some friends offered me a
job with their new parallel computer company (Myrias), I jumped. I was
hired to write their ANSI C compiler (this was before C++ was invented,
and before even the ANSI C spec was finalized). I did most of that, plus
a symbolic debugger, parallel linker, etc. I then switched to doing
lower-level stuff, writing stand-alone mini OS stuff for custom hardware.
By then I was well into Amiga's, and was writing a set of shared libraries
to provide a customizable family of programming languages for use in
things like editors, shells, spreadsheets, databases, etc. I had already
written Amiga Empire, which was a rewritten version of Peter Langston's
original multi-player military conquest game (in Draco of course!). I
then heard about MUDs (I had dabbled a bit before, after hearing about
the old multi-player D&D game on the CDC Plato systems). I decided to
take a break from the library set and write a quickie MUD system, to be
called AmigaDUM. If it worked out, I was going to use the language
libraries to make a better one complete with a MUD language. Well, the
AmigaDUM project has been going on for 6+ years now, and is now called
AmigaMUD. The language libraries still sit forlornly on my HD, as do
the in-progress optimization improvements to the Amiga Draco compiler.
About two months after starting AmigaDUM, the company Myrias went
bankrupt (no connection, honest!), and I started work on the MUD stuff
full-time. That lasted a few months, until my current boss convinced a
local entrepreneur to buy the remnants of Myrias, and we were back in
business, much reduced in size and ambition. Instead of our own custom
hardware, our parallel stuff now runs on UNIX workstations, and we
do contract work with IBM, HP, Sun, HAL, etc. I've learned more than I
really wanted to know about UNIX. Early in the port to UNIX, I needed
to learn all about sockets, so that I could do a reliable asynchronous
protocol on top of UDP (TCP is too synchronous - we always ended up
deadlocking). To learn that, I wrote a quicky MUD system for UNIX. Later,
I decided to add a programming language to that system, and to see just
how little code would be needed for a MUD like that. It is about 3500
lines of ANSI C, and works fairly well, although not very efficiently.
I'm currently working to get release 1.1 of AmigaMUD out. I've wasted a
tremendous amount of time on (to me) boring things like making the
custom client a lot more general, and adding and using fixed-point numbers
to the system (so the graphics can be scaled properly).
Whew! Am I ever long-winded! However, this might show you where I'm
coming from, and why my emphasis is often more on programming language
and efficiency issues than on other issues.
--
Chris Gray cg@ami-cg.GraySage.Edmonton.AB.CA - Introduction coder@ibm.net
- Introduction S001GMU@nova.wright.edu
- Introduction Jeff Kesselman
- Introduction Chris Gray
- Introduction Mik Clarke
- Introduction Caliban Tiresias Darklock
- Introduction Mik Clarke
- Introduction Caliban Tiresias Darklock
- Introduction J C Lawrence
- Introduction Elia Morling
- Event-driven? Michael Hohensee
- Event-driven? Nathan Yospe
- Event-driven? coder@ibm.net
- Event-driven? Jon A. Lambert
- Event-driven? Adam Wiggins
- Event-driven? Shawn Halpenny
- Event-driven? Chris Gray
- Event-driven? coder@ibm.net
- (subject missing) Dan Mazeau
- A late introduction Jon A. Lambert
- Re-Introduction S001GMU@nova.wright.edu
- New guy Walter Goodwin
- New guy coder@ibm.net
- Socket Stuff Shawn Halpenny
- database stuff Chris Gray
- So in an event-driven server, how do you ... Michael Hohensee
- So in an event-driven server, how do you ... Nathan Yospe
- So in an event-driven server, how do you ... S001GMU@nova.wright.edu
- So in an event-driven server, how do you ... Chris Gray
- So in an event-driven server, how do you ... clawrenc@xsvr1.cup.hp.com
- So in an event-driven server, how do you ... clawrenc@cup.hp.com
- Off on the languages tangent! Chris Gray
- Yet Another Introduction Reed D. Copsey, Jr.
- Yet Another Introduction Nathan Yospe
- Yet Another Introduction clawrenc@cup.hp.com
- Yet Another Introduction clawrenc@cup.hp.com
- Yet Another Introduction Adam Wiggins
- Yet Another Introduction Dmitri Kondratiev
- self-intro: Cynbe Cynbe ru Taren
- Unique id's Chris Gray
- Unique id's clawrenc@cup.hp.com
- Unique id's Jon A. Lambert
- Unique id's coder@ibm.net
- Unique id's Jon A. Lambert
- Unique id's coder@ibm.net
- Unique id's Jeff Kesselman
- Unique id's clawrenc@cup.hp.com
- Unique id's Jon A. Lambert
- Dupes are my fault (again) coder@ibm.net
- six degrees of submission ... er, compilation. Cynbe ru Taren
- six degrees of submission ... er, compilation. Jeff Kesselman
- Java as a mudserver language Cynbe ru Taren
- Java as a mudserver language Jeff Kesselman
- Execution Chris Gray
- Using system time for ObjectIDs clawrenc@cup.hp.com
- short absence Chris Gray
- short absence coder@ibm.net
- Hello! Ross Nicoll
- Ho hum (clarifiyign AI terms) Jeff Kesselman
- Ho hum Ling
- Fw: Just a bit of musing Travis Casey
- Risk Assessment -- was (Ho hum) Jon A. Lambert
- Who is Steward and what can he do for me? Jon A. Lambert
- Who is Steward and what can he do for me? clawrenc@cup.hp.com
- Who is Steward and what can he do for me? Chris Gray
- project management (or coding, kings, and other things) Jon A. Lambert
- Threads and Sockets (Was Ho hum) S001GMU@nova.wright.edu
- Threads and Sockets (Was Ho hum) Jeff Kesselman
- Threads and Sockets (Was Ho hum) S001GMU@nova.wright.edu
- Threads and Sockets (Was Ho hum) clawrenc@cup.hp.com
- Threads and Sockets (Was Ho hum) Chris Gray
- Strings & Memory Usage Greg Munt
- Strings & Memory Usage clawrenc@cup.hp.com
- Strings & Memory Usage Jeff Kesselman
- Strings & Memory Usage Shawn Halpenny
- Strings & Memory Usage ashen
- Strings & Memory Usage Chris Gray
- Steward coder@ibm.net
- r.g.m.* - worthwhile thread Nathan Yospe
- r.g.m.* - worthwhile thread clawrenc@cup.hp.com
- r.g.m.* - worthwhile thread Jeff Kesselman
- r.g.m.* - worthwhile thread Chris Gray
- (fwd) A Mud Protocol (MUD Markup Language) coder@ibm.net
- Ho hum (Sockets) Ling
- Steward and other painful friends coder@ibm.net
- A Combat System (please critique!) S001GMU@nova.wright.edu
- Your Message To mud-dev Jon A. Lambert
- I'm back Chris Gray
- Changes to the list coder@ibm.net
- Oops coder@ibm.net
- Verb binding Chris Gray
- Verb binding clawrenc@cup.hp.com
- Verb binding ashen
- Verb binding Chris Gray
- Verb binding Adam Wiggins
- Verb binding clawrenc@cup.hp.com
- Verb binding S001GMU@nova.wright.edu
- Verb binding Shawn Halpenny
- Verb binding Chris Gray
- Verb binding clawrenc@cup.hp.com
- Verb binding Chris Gray
- Why have a combat state? Jeff Kesselman
- Why have a combat state? clawrenc@cup.hp.com
- Introduction Jamie Norrish
- Introduction S001GMU@nova.wright.edu
- Introduction clawrenc@cup.hp.com
- Introduction Jeff Kesselman
- Introduction clawrenc@cup.hp.com
- Introduction Chris Gray
- Introduction Travis Casey
- Introduction Jeff Kesselman
- Introduction scherecwich@angelfire.com
- Introduction Jon A. Lambert
- Introduction Chris Gray
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Oliver Jowett
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list Miroslav Silovic
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Adam Wiggins
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Miroslav Silovic
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- Me Raz
- Sendmail changes coder@ibm.net
- Reposts Adam Wiggins
- Semaphores, Mutices, fd_sets Greg Munt
- Semaphores, Mutices, fd_sets Jeff Kesselman
- Semaphores, Mutices, fd_sets clawrenc@cup.hp.com
- MUD Design Digest V1 #55 coder@ibm.net
- Me Raz
- Magnetic Scrolls' magical parser Greg Munt
- Magnetic Scrolls' magical parser clawrenc@cup.hp.com
- Magnetic Scrolls' magical parser Adam Wiggins
- Magnetic Scrolls' magical parser Nathan Yospe
- Magnetic Scrolls' magical parser Chris Gray
- Magnetic Scrolls' magical parser Ling
- Magnetic Scrolls' magical parser Chris Gray
- Magnetic Scrolls' magical parser Shawn Halpenny
- Reposts Jeff Kesselman
- Email change Alex Oren
- SUBSCRIBE Alex Oren
- (fwd) Death in Muds -(also Birth, Imprisonment, Aging, and skill development) coder@ibm.net
- fd_set limitations Greg Munt
- parsing Chris Gray