[MUD-Dev] Virtual Chemistry

clawrenc at cup.hp.com clawrenc at cup.hp.com
Wed Jul 30 17:37:15 CEST 1997


In <Pine.LNX.3.96.970712223323.692F-100000 at mpc.dyn.ml.org>, on
07/12/97 
   at 07:10 PM, Matt Chatterley <root at mpc.dyn.ml.org> said:

>At a proposal from one of my wizards, I took into consideration a
>global 'alchemy' setup, which would allow the mixing of potions from
>ingredients, for various uses (magical effects, and spell components
>notably).
...deletia...
>What if we just simulated our own chemistry? Certain objects could as
>'ingredients' (not really elements, more compounds), and combining
>these ingredients would have predetermined reactions and results.
>Further compounds could be obtained by appropriate mixes, which would
>all have varying effects on the body (infusion of magic could somehow
>guide these effects). This would obviously extend the alchemy idea -
>the creation of poisons, herbal compounds and literally anything in
>any state (which the PC was able to store).

First thoughts on a representational model:

  Create a coordinate system.  
  The axis of the coordinate system are the principles of your
    alchemy system (yes, lotsa dimensions).
  The purpose of the coordinate system is to define the 
    behaviour of a substance.
  Given a substance, a coordinate location can be computed from 
    its components.
  Given a coordinate location, the effect of the substabce can 
    be derived.

Thus the leaves of the herb WaggaWagga might have a coodinate weight
of (-5, 8, 3) presuming the simplistic case of only 3 principles.  The
root of the UmbaUmba plant might have a value of (2, 9, -10).  Mix
then together with GooGoo mud (0, 0, 2), and you get a substance (-3,
17, -5).  That location can be plotted in the coordinate system and a
result computed:

  A minor weakening agent (-3) that also a *really* effective sleeping
draught (17), and reduces physical dexterity (-5).

Or some such similar whatever.  You can then add other weightings,
such taht the WaggaWagga(-5, 8, 3) gets an added (-2, 1, -8) value
added if it is prepared by grinding in a special stone bowl while
chanting the desiderata backwards.  

The reason for doing a coordinate system rather than a flat expression
for each axis is tht it allows you to put in break values.  Simple
things like values on this axis smaller than X have this effect, and
larger than Y have this totally other effect.  Compound that across
multiple axis, and you can get a result which is far removed from the
intial components.

Next up would be to then special case certain combinations (reflective
alchemy), such that components A (which normally has a very simple
effect), and B (similarly simple), in combination do something else
entirely (ie mutate into a totally different coordinate.

This special casing can be handled without undue difficulty by
building it into the base system.  Again, going back to the simplistic
3 principles above, just add various other "fake" principles after
that.  Thus WuggaWugga could be (-5, 8, 3, 0, 12, 2) and UmbaUmba (2,
9, -10, -5, 9, -10).  Then when they're mixed the result is (-3, 17,
-2, -5, 21, -8).  Now you can do your special casing on the fake
values (-5, 21, -8).  Say things like if the first fake value is less
than -5 it was apply (X,Y,Z) to the base matrix, it its over +5 apply
(Q,R,S) etc.  This results in a really simple way to codify the
exceptions and and special cases while allowing new compnents to be
added which have their own unique behaviours.

>Has anyone actually attempted anything of this nature, or
>contemplated it?

Nope.

--
J C Lawrence                           Internet: claw at null.net
(Contractor)                           Internet: coder at ibm.net
---------------(*)               Internet: clawrenc at cup.hp.com
...Honorary Member Clan McFUD -- Teamer's Avenging Monolith...




More information about the mud-dev-archive mailing list