[MUD-Dev] Creating a MUD - Overview of design

J C Lawrence claw at kanga.nu
Sat Feb 2 11:55:06 CET 2002


On Fri, 01 Feb 2002 01:10:31 -0700 
Bruce Mitchener <bruce at cubik.org> wrote:
> Amanda Walker wrote:

>> Figure out what your game does and doesn't need, *then* start

> Really, in an ideal world, this is what someone would do in all
> cases, for all aspects of the server, including persistence,
> memory management, threading models, not just networking protocol
> choices.

An old rule of thumb to distinguish what items should be developed
and maintained in house, and what should be farmed out, licensed or
otherwise externally maintained:

  How close is it to your core competency?

The classic example being router companies (ala Cisco, Juniper,
etc).  Every last scrap of their products relating to routing
packets and switching, etc is in-house.  Cisco in particular
aggressively shovels the rest of it, err, out-house, even if they
had to originally develop it to support their router products
because it is not part of their core competency.

Scripting language design, network layer/protocol design etc easily
seem to haunt the middle ground for MUD developers, close enough to
necessary to keep in-house, yet far enough out to be uncomfortable.

I tend to break it down this way:

  -- Some games and services sell off marketing schtick or whiz-bang
  vender-specific technical features (cf video card marketing).  In
  those case those items are your care competency and must be
  in-house (cf Quake).

  -- Ultimately your core competency for a MUD is in defining the
  game and then presenting that game to the player.

  -- A game-internal scripting language, if exposed to end-users
  (ala MOO), is your core competency.  You may initially base off an
  externally sourced item (eg CINT, Python) but you'll need to
  maintain and develop it in-house.

  -- If its only exposed to in-house admins/developers then
  it is close to your core competency but not necessarily part of
  it.  The language must allow your game to be expressed (where
  your game features and definition are core), but the language
  itself, outside of that expression, really has little to do with
  your service.  Depending on how you define your admins and
  content authors within the user base you serve (eg "We allow
  authors to create and express...") it could be in or out of
  house, with the overwhelming tendency being out-house.

    -- The primary criteria in internal scripting language then
    become:
 
      a) Expression of necessary features.

      b) Ease of use for expressing needed constructs

      c) Ease of education of users so that can express needed
      constructs with it (ie the "familiar language model").

      d) Integration expense of an externally sourced item versus
      in-house development (as a lost and growing sunk cost).

  -- Network protocols and stack implementations are really only
  faintly connected to service offerings.  Well, not unless you're
  talking about a technology demonstration ala the video card
  commentary above.  They're necessary but don't actually render an
  end user experience.  Generally perfect to farm out.

    -- The historical problem is that the network model is so
    ingrained with the data model that it has to be developed
    in-house.  The design may be based externally, but due to
    integration requirements has to be developed and maintained
    in-house.

      -- Which really just says that the protocol stacks and
      definitions for the space are not yet well enough developed or
      standardised.  There's a lack of canned, externally sourced
      solutions which are "good enough" in particular for graphical
      MUDs due to the data model problems.

None of which addresses the problem of "Which do I choose?", just
"where do I get or keep what I've chosen?"

--
J C Lawrence                
---------(*)                Satan, oscillate my metallic sonatas. 
claw at kanga.nu               He lived as a devil, eh?		  
http://www.kanga.nu/~claw/  Evil is a name of a foeman, as I live.
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list