[MUD-Dev] Virtual Chemistry

Matt Chatterley root at mpc.dyn.ml.org
Mon Jul 14 16:43:02 CEST 1997


On Sun, 13 Jul 1997, Jon A. Lambert wrote:

> > From: Matt Chatterley <root at mpc.dyn.ml.org>

> > I think so. Perhaps basic checking on assemble, ie 'are they mixable?'
> > (ie, you can't really mix a liquid and a gas), and then a causitive result
> > (just what *will* happen if you mix ground up dragons tooth and wolves
> > blood?). A central information storage could record that 'elements' X Y
> > and Z have certain reactions with each other, and mixtures could report
> > the quantities of each the contain to get the appropriate return, even.
> >

> My assumptions were that the results of the combination/assembly were 
> known in advance (created by builders).  I see from some of the other
> posts and yours here that you could in fact create new assemblys on the fly 
> given enough rudimentary (al)chemistry.  Perhaps this is a more interesting 
> way to proceed?  

Thats the objective I have in mind at the moment - working up combinable
things with predeterminate results (recipes, basically) is more easily
do-able, but perhaps less flexible and less interesting. Actually
implementing a chemistry of some sort certainly seems possible (especially
if we make basic assumptions about the nature of a 'reaction').
   
> > > Perhaps some attributes of an assembly class could be:
> > > 
> > > components list
> > > spells list
> > > energy/mana consumer
> > > energy/mana producer
> > > components list destroyed upon assembly
> > > components list released upon disassembly
> > 
> 
> Another mundane example of alchemy using some odd mud language:
> 
> class bread implements assembly {
>  list components = ((wheat , 2 cups),(salt, 1 tsp),(yeast,1 tsp));
>  list skills = ("bake");
>  list spells = ();
>  int energy = 5000; // Cal
>  int time = 40; // min
>  list released = (crumbs);
>  list destroyed = (wheat ,salt, yeast);
> 
>  class method assemble() {
>    if (components.present() and skills.check() and energy > 5000) {
>      components.destroy();	
>      consume(energy);
>      return create(time); // instance bread in time
>    }
>  }
> 
>  class method disassemble() {
>    released.create();
>    destroyed.delete();
>    return energy;
>  }
> 
>  instance method eat() { 
>    return disassemble();
>  }
> 
>  class method bake() { 
>    return assemble();
>  }
> 
> }
> 
> Just a start, full of holes. :)

<g> Maybe so, also rudimentary, but at the same time, significantly more
advanced than many current techniques for creating bread.

With the above, anyone could acquire the ingredients, plus a suitable
facility for reacting them, and produce a quantity of bread. Of course, we
probably need to define certain things as 'basic' or 'elements'. In the
greater case (read: for fantasy based muds - SciFi could perceivably be
quite different), we can use 'element' differently to traditional (modern)
chemistry.

An element now would be Na (sodium), Ag (silver), Mn (Manganese) etc,
basic things which do not break down any further (excluding the breakdown
to subatomic particles).

For the purposes of the fantasy environment, elements might be: Wheat,
beef, bone, wood. Things that can be broken down into organic chains, etc
now - but which could be treated as basic by (al)chemy in a more primitive
environment.

Regards,
	-Matt Chatterley
	http://user.itl.net/~neddy/index.html
"Never enter an arsekicking contest with a porcupine."-Cohen The Barbarian




More information about the mud-dev-archive mailing list