[MUD-Dev] Virtual Chemistry

Adam Wiggins nightfall at user1.inficad.com
Mon Aug 4 01:36:52 CEST 1997


[Marian:]
> On Wed 30 Jul, clawrenc at cup.hp.com wrote:
> >    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:
> > Thus the leaves of the herb WaggaWagga might have a coordinate 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:
> 
> Admitting immediately that the finer points of all the above are proba-
> bly missed by me, this seems to me to be rather predictable. If you put
> two sleeping potions together you get a stronger sleeping potions?

*gasp*!  One could further conjecture that, were one to take said sleeping
potion and divide it into two equal portions (each being half the size
of the original portion), one would actually have *two* sleeping potions,
each half as strong as the original dose.  How predictable!
Seriously...yes, this is true, and IMO is a good thing.  A 'system'
which has completely random results is not a system at all, just a haphazard
collection of effects which came out of a random number generator or
possibly the coder's ass.
I assume your real question, however, relates to the above being kind
of boring.  Mixing sleeping potions to get stronger sleeping potions
isn't terribly interesting.
Let's take some examples.

Buffy drinks a strength potion, and becomes stronger.
Buffy drinks another strength potion, and becomes stronger still.

*snore* Now let's toss in some more interesting attributes.

Buffy drinks a strength potion, and becomes stronger but slightly nauseuous.
Buffy drinks another strength potion, becomes stronger still, starts to
twitch violently, and has painful stomach aches.
Buffy drinks another strength potion, becomes stronger still, but can't
actually stand because of the massive convulsions her muscles are experiencing.

More interesting and more realistic.  Look in any pharmaceutical text and
you'll see that hardly any drugs have simple effects.  Usually they do
quite a few things to your body, hopefully at least one of which is good,
and most of which are probably neither helpful nor harmful.
In the case of JCL's model, you would have a large number of attributes.
Each attribute is rated numerically, so you might have a potion which makes
you strong but certain people may experience nausea or muscle spasms
as a side effect.  Of course, where this gets interesting is that you could
actually poor a huge dose of this into someone's drink as a poison.  Sure,
they'd be incredibly strong, but if they were in spasms on the ground and
dry retching nonstop, it probably wouldn't matter too much.
Introduce other elements.. resistance to certain effects (either by 'building
up' a resistance, such as myself and caffeine, or Wesley in Princess Bride and
the scene with the poisoned drinks, or by inherent race/body stuff).
Suceptibilities.  Taste - you could have the best healing concoction ever
made but find it nearly useless because it smells and tastes terrible,
must be consumed at boiling temperature to be effective, and requires doses
of several liters to cause any noticable effect.

> You would at least need a way to make sure that you cannot just mix two
> or three ingredients together and  get potion or poultice.  And equally

Hmm, I don't see this as bad.  On the other hand, this is largely served
by the above stuff - you have a strength potion, but it's useless because
of its side effects.  Add in some anti-nausea ingrediants, some mints
to make it taste better, and so forth.  Also, you could have various
effects fluctuate based on external conditions - nightshade that is only
poisonous if harvested at exactly 12 midnight, or a leaves that contain
a very small amount of something that must be boiled out in large quantity
to create a useful potion.  How about seasons?  If you need that leaf
in the middle of winter, you may be out of luck.  Then again, the smart
alchemist dried a few during the summer for just such an occasion.  Now,
they've lost a lot of their potentcy during the drying process, but
they are all you've got.  Etc etc.

> important:  even if both the herb WaggaWagga and the UmbaUmba plant are
> known for their sleep inducing qualities  that should not mean that you
> can just replace the one with the other and get a similar result.  That
> is what makes alchemy an art and a lore.

Exactly.  Or it may be that one causes the body's resistance to the other's
effects to be lowered, meaning that the two of them apart do nothing but
together they make a sleeping potion.

> >   A minor weakening agent (-3) that also a *really* effective sleeping
> > draught (17), and reduces physical dexterity (-5).
> 
> First off. You could start with having the numbers represent general ef-
> fects rather than specifics. That way to create a sleeping potion you'll
> have to create a high value for several of those numbers.

Well, I'd say that the 'genral effects' would actually be *more*
specific than JC's example.  For instance, you have a drug which causes
the brain of certain species to send severe fatigue messages to the body;
another which causes lack of concentration in the same, or very similar,
species; and yet another which causes a sort of light-headed melloing
effect.  Each of them apart don't do a whole lot, but all of them together
would tend to make members of the affected species nod off.

> Secondly I think it would be better if  unless only specific numbers are
> high and all others are low but not too low the potion just does not  do
> much useful.  I.e. a potion in which all numbers are high is just a kind
> of muddy water.  Nourishing perhaps  but not magical/mystical in nature.
> And potions that have very high negative values act the same as high po-
> sitive values.

There's plenty you could do defining the general rules for the system.
Many effects could have a semi-canceling effect on each other to keep
all the numbers from being either high or low.  You could make the numbers
'wrap around' - tons of sleeping drug makes a real energy boost.  You
could cause the potions to become extremely volitile as the numbers
get high, or low, or if the combined values for a certain group of
effects get too high.  You could make it so that the numbers fluctuate
with time, the tides, the phase of the moon, the whim of the god(s),
how they are prepared, and a thousand other things.

> > The reason for doing a coordinate system rather than a flat expression
> > for each axis is that 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
> > initial components.
> 
> I don't think I know what this means but no doubt it makes sense :)

More wacky rules for the base system to spice things up.  An example
would be an attribute which, under values of 10, cause you to go to
sleep, but over values of 10, cause you to break out in a cold sweat.

> > 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 components to be
> > added which have their own unique behaviour.
> 
> This sounds rather complicated to me. Isn't there a way to do this
> without math?

Well, computers 'think' only in numbers.  If you'd prefer, we could
represent it as (very low, average, low, high, average, very high)
and assume that average combined with average gives you very high, but
JC's way is a bit closer to what the actual implementation would look
like.  A 'matrix' is just a list of attributes, and an 'axis' is a
single attribute.  Math terms have the advantage of being very
specific, as opposed to vague terms which he could invent on the fly
to describe his ideas.




More information about the mud-dev-archive mailing list