[crossfire] RFC: dynamic alchemy

Wim Villerius wim-cf at villerius.nl
Mon Mar 27 11:21:27 CST 2006


Hi,

Dynamic alchemy is a proposal which was discussed about a year ago on
the message board. During that time I've been writing a message for the
list that never was sent for a reason I cannot remember. Perhaps I
judged the proposal to be too incomplete to lead anywhere. Perhaps it
was because I am not capable to code anything myself.
Anyway, since I think this would nevertheless be an interesting addition
to Crossfire, I now do send it. Take your time, the message is pretty
big now. (I'm sorry for that.)
I don't think the idea in its current state is ready for implementation,
but an idea - in whatever state it - is ready for discussion, right? ;)


WHAT IS ALCHEMY?
Alchemy is "a form of chemistry studied in the Middle Ages which
involved trying to discover how to change ordinary metals into
gold" (Oxford advanced learner's dictionary)

WHAT IS ALCHEMY IN CROSSFIRE?
In Crossfire, we don't try to create gold, for it is a rather useless
metal.
As far as I am aware alchemy is used like a fully controlled commercial
process. It is highly accurate and reproducible, more or less like a
chemical, an industrial process! 
So, current alchemy is more or less "an industry used to create
predefined items in a predefined, reproducible - 'scientific' - way"

WHAT SHOULD ALCHEMY BE IN CROSSFIRE?
>From a role playing perspective, what should alchemy be?
IMO this question is assuming too much. It does assume role-playing!
Crossfire doesn't have much role-playing at all, since (almost) all
players tend to be(come) a 'Jack of all trades' (and a master of all, if
they spent sufficient time).

OK, scratch that role-playing perspective for now, and just ask what
alchemy should be.
Way too hasty, first ask if there is any need for alchemy and if the
current alchemy is not sufficient.
Alchemy is not necessary (strictly speaking). Although it is an
interesting addition to the game, it usually doesn't come in sight
before a player is already quite experienced and has seen a lot of the
world. At that stage, alchemy and alchemy results do not offer much -
except little experience and some money. The artefacts found in game are
better than alchemy results (except for results of shadow alchemy, a
subject I don't wish to discuss).
So, alchemy is not necessary. But that's not an answer to the question
whether there is any need for alchemy or not. I would say "Yes!",
playing with alchemy is (or is supposed to be) a lot of fun.

The answer to the second question (Is the current alchemy system is
sufficient?) is by me answered with a resounding "No!"
Why is that? For reasons already mentioned:
- results are pre-defined
- results are not half as powerful as 'normal artefacts'

In other words: If we manage to develop an alchemy system that allows
one to create really powerful items, a system that does offer more than
just predefined results, I'll be satisfied (but others wont).

Before continuing with some more detailed descriptions, I would like to
offer some in-game notes about alchemy. 
Since the game takes place in a not-so-very-high-tech world (where very
high-tech things like teleportation are still magical) nobody (in that
world) has exact knowledge of what alchemy is.
Alchemy is an art practised by many, mastered by none. In ancient times,
there where a few great alchemists, and their stars rose high. They all
where capable creating highly enchanted equipment, and some of these
items, amongst which the Dragon Scale Mail of Ruggilli still exist
today. Perhaps the most praised White Dragon Scale Mail still exist
somewhere.
Although equal in skills, the ancient masters of Alchemy  had very
different definitions of what exactly alchemy is, and they where likely
all wrong.
Since alchemy is a business enshrouded in a cloud of vagueness, nobody
exactly knows what could be the result of an alchemical process.
Therefore, nowadays alchemists describe the art of alchemy as "a mystic
process used to transfer magical powers from one item to an other." 

This is the baseline I will use in the development of a new alchemy
system, which I would like to call 'dynamic alchemy'.

DYNAMIC ALCHEMY AND THE CURRENT SYSTEM
Dynamic alchemy is not intended to be a complete replacement for current
alchemy, but it is more than just an extension.
Dynamic alchemy is used to create 'advanced' equipment, current alchemy
remains to create base ingredients (such as water of the wise, (fixed)
mercury, potions of ...).

Since equipment is not created with alchemy but rather with bowyery,
jewellery, smithery, thaumaturgy or woodsman, we perhaps should speak
about dynamic bowyery (etc.). I will not do so, but please keep in mind
that experience gained from any dynamic process will go (I assume) in
one of these skills and not in alchemy.
For the user nothing but the recipes (and results) changes, but under
the hood, there will be lots of difference.

DESCRIPTION OF 'DYNAMIC ALCHEMY'
As said before, dynamic alchemy is the art of transferring magical
powers from items to other items. This naturally leads us to the
conclusion that in order to do alchemy, one needs at least two
components: one base item and at least one addition.

Definition: base item: The base is the item a player wants to improve.
Definition: addition: An addition is a (supposed) source of transferable
'magical powers'. 

The base can be some item found in the world, but it also might be an
item that is created with traditional alchemy, or even dynamic alchemy.
An addition can be literally everything - though not everything will
lead to anything (desired). During the process the magical powers
(hopefully) flow from the addition(s) to the base item and (hopefully)
improve it. What exactly the improvement is, depends on the additions.

ON MAGICAL POWERS AND TRANSFERING THEM
I have been talking about 'transferring magical powers' from something
to something else. Fine, but as long as I leave undefined what 'magical
powers' are and how they are transferred, the proposal will go nowhere.
Therefore, I will pay some attention to what magical powers are and how
they are to be transferred.

Of course, 'magical powers' are not 'transferred' during an alchemical
process. All that happens is that the server searches ingredients for a
match against a table, applies some random numbers and modifies the
ingredients. Happily a player can remain unknowing of all this, he just
has to learn that the steak of an ancient red dragon is a magical source
for fire resistance when used in dynamic alchemy. He does not know that
this is because the ancient red dragon steak is listed in a table as
containing a 'resist fire +50' modifier.
Magical powers are in fact pre-defined item-modifiers, and their
transference is server side number'magic'. I have more to say about
item-modifiers and number magic later, I should first give an example of
dynamic processing.

EXAMPLE
Assume some player adds an ancient red dragon's steak to a mithril
chainmail and then uses his skill.
there are three possible outcomes:
1) the powers travel one object to the other
2) nothing happens (that is: both ingredients are still in the forge)
3) something strange happens

1) ... from steak to chainmail or vice versa. The first would result in
a mithril chainmail (resist fire/magic +<something>); the second would
give some 'enchanted food'. This is either poisoned or good dragon food.
It can even be reused as ingredient for another attempt, perhaps giving
a mithril chainmail with fire/magic resistance and a little more ac.
2) Sometimes, just nothing happens.
3) and the powers leave one object but do _not_ enter the other item.
This might result in lost items, or uncontrolled mana, or evil masters,
or a random object (cursed or not) , or ... or ... or a cursed forge or
an enchanted forge (even uncontrolled forces can be good!)

Another example:
A player adds a dragon scale mail and a dragon's steak in a forge. After
using his skill (and being successful) he gets a dragon scale mail with
increased fire resistance. 

ON ADDITIONS
I now want to say something about additions - the so called sources of
magical power.
Theoretically, everything can give an interesting improvement. In
practice, this is a little different. Since the server has to be aware
of possible improvements, they have to be listed somewhere.
I can imagine two suitable locations. The first being a large table, the
second somewhere in the arch-files. Bot choices have their pro's and
con's. Adding it to the arches almost guarantees that every new item is
checked for/attributed alchemy settings, but a huge table is easier to
maintain and to use. I myself don't want to mess with the arches, and
thus prefer the table solution.
In such a table should be listed the item name, the resistances it gives
and the max resistances it can give. Think about the following example:

begin 
Chinese dragon *
cold 30
poison 20
end

begin
ancient red dragon *
fire 50
magic 40
physical 40
end

begin
dread
all -godpower -holy -light 30
confusion fear paralyse slow 100
end

begin
true lead
physical 50
end

(Note that these are examples, and hence contain example values. As with
all examples, they might be completely off and terribly odd.)
The list of items that can be used is limited only by the number of
items in the game, though lots of items just do not make sense in any
(dynamic) alchemical process. For sure any item not in the table does
not have magical powers.

The number of transferred properties is not limited to resistances only.
Adding feathers to a plate mail might reduce its weight. And adding true
lead might not only add physical resistance, but can possibly increase
the weight as well (depending on the skill of the alchemist)

ON TRANSFERING MAGICAL POWERS
Processing dynamic alchemy involves quite a few steps
1) identifying the base item
2) identifying the additions
3) deciding what will happen
4) adding certain 'bonuses'

1) I suggest this should be done with a 'prepare item' scroll. This way,
an item is bound to a player. Of course, check whether the alchemist is
the same as the one who prepared the item.
2) find them in the table, and collect all the (possible) bonuses they
give.
3) this is the hard part to get right. It involves some numerology.
Which resistances are added to the base item depends on several factors
(level, int, luck, server mood, ...) and the additions.
a) Every addition with magical power gives one or more possible
resistances. First, we choose one of them, for one item can give only
one resistance each time.
b) Then a list of additions is made and then a number of these
resistances is chosen. (It is likely that all resistances are chosen for
a sufficient high lvl player.)
c) Next, the selected resistances should be given a value - namely the
value that is added to the base item. How this exactly must be
calculated is not yet clear. I suggest a formula in the line:
(max_resistance(addition) - current_resistance(base)) * ((skill_lvl -
10)/100 + 0.1) * random_factor
where random_factor is a number <= 1 (and perhaps has a lower limit as
well)
(max_resistance(addition) - current_resistance(base)) to enforce
max_resistance
((skill_lvl - 10)/100 + 0.1) guarantees a minimum of 10%, high lvl
players can gain 110%.
random_factor for to make stuff a little more dynamic ;)
4) no comment.

Perhaps an example might help.
A player performs dynamic alchemy with a dragon scale mail and two
ancient red dragon's steaks.

step 1: The base item is identified, it is a dragon scale mail: dragon
mail +3 (ac+6)(item_power +5)(Max speed 1.30)(Spell regen penalty
9)(armour +50)(resist fire +40)
step 2: the addition is found in the list:
begin
ancient red dragon *
fire 50
magic 40
physical 40
end
step 3:
a) choose a random resistance for item 1: fire
choose a random resistance for item 2: magic
b) the list contains fire and magic. The player has luck and is high lvl
(63), so he gets both
c) value calculation:
(max_resistance(addition) - current_resistance(base)) * ((skill_lvl -
10)/100 + 0.1) * random_factor
gives: 
fire: (50 - 40) * ((63 - 10)/100 + 0.1) * 0.731 = 4.6
magic: (40 - 0) * ((63 - 10)/100 + 0.1) * 0.328 = 8.3
4:
add 5 fire resistance and 8 magic resistance to the dragon scale mail

I am sure this section needs more explanation, but I cannot think of
anything right now. Ask and ye will be answered.
Note by the way that this somehow might be related to the way a dragon's
hide grows better.

ON ADDITIONS (SECOND TIME)
Until now I have only been speaking about resistances. I have a word to
say about stats, attunements and attack types as well (is there anything
else that could be added?) for I don't think there is any a priory
reason to forbid these to be added. I just don't know what would be
reasonable for them to be added (since some of these options are very
powerful).

WHAT IS DYNAMIC IN 'DYNAMIC ALCHEMY'?
- there are no pre-defined recipes, only pre-defined items which give
certain bonuses
- the results are more or less unpredictable
- under the same circumstances, a recipe can give different results:
more or less resistance/bonus/...
- using two dragon steaks (and not one) can result in more fire
resistance


COMMENTS REQUESTED...
things that need to be thought out are, amongst others not mentioned:

- what items give what bonuses?
I suggest to have some items that give always the same (fragment of
chaos)
some items that give fire, magic or physical resistance (ancient red
dragon)
some items that give completely random resistances (beholder/dread/skull
parts for example)

- which path do the magical powers take?
Usually, they will go from the item with the lowest power to the item
with the highest magical power since alchemy breaks thermodynamics ;)
This is perhaps not compatible with my previous suggestion to use
scrolls of prepare for dynamic alchemy, for these scrolls suggest that
magical powers will always go to the base item.
But maybe saying that an item that is prepared for dynamic alchemy gains
quite a boost in magical power gives a solution to this problem
(although I don't like it)
If these ideas don't match, a choice must be made: 
A: prepare with a scroll and the magical powers always go to the
prepared item (or fail to reach their destination, but that should be
rare)
B: magical powers usually go from low to high. 

B has as advantages that it is much more dynamic and gives an arguably
lower rate of success.
A has as advantages that it allows dynamic alchemy results to be bound
to a player and that it is easy to determine the base item (the target
so to say)

- what magical powers can be transferred?
Basically all, but specifically:
- resistances
- attunements
- stats
The question is not: what? but: how?

- What if someone drops two dragon scale mails in a cauldron?
Assuming something happens, we could create a scale mail that has resist
fire 30+.3*70 = 51 and no armour and a scale mail that has no fire
resistance and all the armour, or something in between.
(Note: I think we should not add resistances linear)

- would dynamic alchemy not create way too powerful items, and be
somehow a legalisation of shadow alchemy?
I think not. Shadow alchemy is an exploit, used to create items that are
impossible to create with dynamic alchemy. (It is impossible to have
items with resist_something > 99 - and this limit could even be set
lower)
Also the price for an item with str+50 would be extremely high - in fact
too high to be paid. (using the current weapon improvement, it would be
2550 potions)
Shadow alchemy ignores item power code, dynamic alchemy will not.
Nevertheless, 'some' balancing has to be done.

If you made it this far, you made it to the end! Thanks for reading,
feel free to comment, criticize or to suggest improvements (the latter
is preferred).

greetings

Wim Villerius 





More information about the crossfire mailing list