[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