Is On-Line Creation Good for LPC?
Dead Souls includes a quick creation system, named,
aptly enough, QCS.
It was an incredible bitch to make, because it had to
account for and parse code that might be written
carelessly, or in accordance with odd formatting rules.
Additionally, the number of possible things to modify
on an LPMud is so mindbogglingly large that it made
for a task that was challenging both in complexity
and in scale.
I sweated through the months of pain not because I
felt it would be a nice feature, but because I felt it was
a *necessary* feature. Early in DS development, I wondered
why it wasn't being adopted more, and started looking
at what other libs had that DS didn't. When I took a
serious look at CoffeeMud, I was totally blown away. Granted,
CM has had 5 or more years of constant development
by a team of more than one person, but the results
really are remarkable.
Their build system was simple and elegant. It
allowed people who were not interested in learning
code to make neat stuff right away. It became immediately
obvious that to a new mud admin, deciding which way to
go, there was really no contest.
Should they go with a mud that requires effort,
discipline, and weeks/months of study before doing
anything cool? Or with CM which they can set up and
build on immediately?
I realized that there was no way at all to compete in
the modern lib marketplace without an OLC.
The arguments in favor of an OLC are predicated on
"wide adoption of one's codebase" being the goal. The
arguments I arrived at were the following:
* Experienced admins already have a codebase preference.
There is no need or point in trying to convert people.
* N00b admins generally will not accept having to work
hard to get a mud up.
* Getting n00bs to use DS necessarily means making it
easy to set up from the start.
* Without an OLC, DS was greek to most n00b admins.
* Even though most n00b muds will fail, having many failed
DS muds is still good progress, because it means many
non-admins will have been exposed to the codebase. It is from
this sort of initial code exposure that preferences
It was obvious to me that I couldn't get people to
use Dead Souls just because it was technically superior
under the hood. Ask the makers of the Betamax if technical
superiority equals market share. Ask the Macintosh.
Hoping people would see the genius in my code would
not suffice to make them adopt it. The only way to make
DS widely adopted was to make it easy, and make it fun.
That LPC has had a history of being difficult is
irrelevant. Having been one way doesn't mean it had to
stay that way, and indeed, it's probably the main reason
LPC is in decline.
In my mind, Dead Souls's Quick Creation System isn't
really about advocating a feature that makes it
technically superior to other LPMuds. QCS is entirely
neutral in this respect. It does nothing for the
fundamental lib on its own: it just interprets it. If
the underlying code is crap, the QCS can do nothing
to change that.
No, DS QCS isn't about technical superiority. It's
purely marketing. I didn't spend months slaving over
QCS because I thought it made DS *better*. I did it
because I thought it made DS *viable*. Not having it would
be like trying to sell a car without windshield, doors, or
mirrors. It pretty much doesn't matter how good the
engine is. People want what they want, and if you don't
give it to them, they'll go somewhere else.
The obvious argument against this position is
"it doesn't matter if lots of people use the lib, it
just matters that it is pure and beautiful".
That is a valid opinion, but it is not mine. That
opinion assumes that one is the best coder, and
nobody can improve on one's work, and one's work is
perfect. I don't believe that is true of anyone.
I want DS to be great. I know that I am limited
by my experiences, ideas, and expertise. Others
can help DS better. By making DS widespread, more
eyeballs examine it, and the chances are greater
that someone will make DS better in some way. With
enough of this agglutination of minor improvements,
DS can be better than anything I could have made it on
my own. Making sweaty 13 year olds happy with an easy
mudlib is a by-product. By making it easy, and making
it so many people will use it, it increases the
chances that a great coder will find it, love it,
and contribute to its greatness.
So, as goofy and lame as I felt, making a
n00b-friendly "anyone can build here" system, I felt
it was not only important, but *vital* to advancing
my agenda of making Dead Souls the best LPC mudlib
on the planet.
Dead Souls Homepage