Difference between revisions of "User:Crush/Crafting"

m
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Status_construction}}
+
Just some notes.
Some notes about crafting that need a lot more refinement.
 
  
 +
==Premise==
 +
* Every equipment piece is unique.
 +
* Weapons affect attack mechanics.
 +
* Armors affect received damage.
 +
* All items can optionally affect every basic and computed attribute positive or negative, percentual or absolute.
  
To craft an item the character first needs to obtain a formula for the item it wants to craft and some raw materials. What ''kind'' of raw material depend on the formula. A sword could, for example, ask for 5 units of metal. What ''type'' of metal is left to the discretion of the player. The player can either use cheap and easy to use materials or expensive and hard to use materials. Depending on the used materials and the general difficulty of the crafted item the success chance is higher or lower.
 
  
 +
===Weapons===
 +
Properties by formula:
 +
* Weapon family and thus the skill used
 +
* Attack Zone
 +
* Attack speed
 +
* Penetration
 +
* Ratio between strength and dexterity required
  
 +
Properties by material:
 +
* Damage
 +
* [[User:Crush/Repairing| Durability]]
 +
* Attribute requirements
 +
* Weight
  
==Collecting Formulas==
+
===Armors (Including headgear, pants, gloves and shoes)===
In the medieval ages aspiring craftsmen from all kinds of proffessions used to travel from city to city for a year to learn the local crafting techniques of different places from as many different masters as possible. I think that we should simulate this tradition by making craftsmen collect different crafting formulas from all around the game world.
+
Armors require level because they are the status symbols #1 in MMORPGs.
  
Every NPC who sells items can teach the player characters one or two different crafting formulas. But before these NPCs accept characters as their apprentices and teach them their secrets they first have to do a quest for them. What kind of quest varies. But usually these are non-violent errants.
+
Properties by formula:
 +
* Used sprite
 +
* Used slot
  
==Collecting materials==
+
Properties by material:
Raw materials are either obtained as regular monster drops or from mining raw material deposites. These deposites are beings that can neither move nor attack and drop some units of raw material when killed. They can take different shapes depending on the type of material. Deposites of metals or gemstones appear as rocks, herb or fruit deposites as bushes, wood deposites as special trees and so on. Deposites can be mined by attacking and destroying them. Most deposites have a very high armor defence that is ignored by specific weapon types (tools usually used for harvesting this resource).
+
* Default coloration of sprite
 +
* Physical defence
 +
* Magical defence
 +
* Elemental modifier
 +
* Level requirement
 +
* Weight
  
Material deposites spawn in specific areas. Low level ingredients spawn in save areas that are easy to access while high level ingredients spawn in remote and dangerous areas. The player should spend much more time searching for material deposites than actually harvesting them to make the collecting process more interesting and not just button mashing (like in runescape, for example). For that reason the areas in which material deposites spawn should be large and the density of deposites should be low.
+
===Jewlery===
 
+
Properties by formula:
Every type of material has a challenge rating (that determines how hard it is to work with this material), a quality rating (that determines how good the items are that are crafted with this material) and in some cases additional effects.
+
* Equipment slot used
 
 
==The crafting process==
 
When a character wants to craft an item, the player opens the crafting menu with a button click. Then a list appears with all formulas the character collected. When the player selects a formual a new window opens with item slots in which the player has to put materials from its inventory. When all slots are filled with items a general challenge rating for the item is calculated. The challenge rating is:
 
 
 
reciept challenge rating + sum(material challenge ratings)
 
  
When the player presses the [OK] button the item is crafted.
+
Properties by material:
 
+
* Attribute boni
===determining quality level===
 
 
 
The first step of the crafting algorithm is determining the quality grade of the item. This is done by ten times throwing a random number between 0 and the crafting skill level of the character and a random number between 0 and the challenge rating. The quality grade of the crafted item is the number of times the characters number is higher.
 
 
 
A quality of 3 or lower is counted as "failed". No item is created and the ingredients are lost. The quality grades have different name that appear as a prefix in the name of the item:
 
 
 
{|-
 
|4
 
| rubbish
 
|-
 
|5
 
| dilettantish
 
|-
 
|6
 
| crude
 
|-
 
|7
 
| average
 
|-
 
|8
 
| fine
 
|-
 
|9
 
| flawless
 
|-
 
|10
 
| masterpiece
 
|-
 
|}
 
 
 
 
 
===determining item properties===
 
The properties of the created item depend on the archieved quality level, the formula and the total quality of the used ingredients.
 
 
 
Each formula has a number of different multipliers for all item properties. In case of a weapon this could be damage, penetration, speed, strength requirement, dexterity requirement, skill requirement.
 
 
 
The final value of all item properties besides requirements are determined by calculating a random nuber between 0 and (reciept_proporty_multiplier * sum(item_quality)) once for each quality grade and taking the highest value. That way high quality items will have all properties close to the maximum while low quality items have very random properties.
 
 
 
The requirements are calculated in a similar fashion: Like when determining the other properties  a random nuber between 0 and (reciept_proporty_multiplier * sum(item_quality)) is calculated once for each quality grade. But the lowest 3 values are discarded and the average of the remaining rolls is used. That way a skilled crafter can reduce the requirements but extremely low requirements for very strong items are very hard to archieve.
 
 
 
==Example==
 
  
 +
===Potions===
 +
Properties by formula:
 +
* Weight
  
 +
Properties by material:
 +
* Effect
  
 
==Crafting disciplines==
 
==Crafting disciplines==
 +
Every crafting discipline has an [[Attributes|Attribute]] which is important for it. Yes, the associations are a bit far-fetched from time to time, but it is important for balancing that every attribute is more or less equally useful for crafting.
  
===Weapon forging===
+
;Weapon Smithing (Str):Forging metal weapons (swords, axes...) using hammers.
Forging weapons out of metal and sometimes gemstones for giving the weapons magical effects.
+
;Carving (Dex):Carving wooden weapons (bows, staffs...) using carving knifes.
 +
;Armor Smithing (Str):Forging metal armors using hammers.
 +
;Sewing (Agi):Sewing cloth armors using needles.
 +
;Gathering (Agi):Gathering resources from resource nodes (technically not a crafting discipline)
 +
;Tinkering (Dex):Creating fine-mechanical items from wood and metal using tinkerer tools.
 +
;[[Alchemy system|Alchemy]] (Vit): Brewing potions from herbs and bottles using cauldrons.
 +
;[[User:Crush/Food|Cooking]] (Vit): Cooking dishes from basic food using cauldrons.
 +
;[[User:Crush/Rune_combination|Runewriting]](Int): Carving spellrunes into equipment.
 +
;Enchanting (Will): Buffing equipment
  
Formulas (Examples):
+
==Material==
{|Item
+
Crafting an item requires, depending on the item, a fixed number of batches of normal materials of a certain type (like wood or metal) which can be filled with materials of different quality and optionally allows to add a limited number of special materials.
|Metal slots
+
;Normal materials: Normal materials have different quality properties which affect the following item properties:
|Gemstone slots
+
{|border="1"
 +
!Property
 +
!Effect in weapons
 +
!Effect in armors
 
|-
 
|-
|Knife
+
|Tier
|1
+
|Craft Challenge Rating, Level/Attribute requirements
|0
+
|Craft Challenge Rating, Level/Attribute requirements
 
|-
 
|-
|Dagger
+
|Toughness
|2
+
|Durability
|0
+
|Durability
 
|-
 
|-
|Ritual Dagger
+
|Hardness
|1
+
|Minimum Damage, Maximum Damage
|1
+
|Defence
 
|-
 
|-
|Short Sword
+
|Mysticality
|3
+
|Spell damage, Rune slots
|0
+
|Magical defence, Rune slots
 
|-
 
|-
 +
|Density
 +
|Weight
 +
|Weight
 
|}
 
|}
 +
;Crystals: Elemental modifier in armor, Elemental damage in weapons, Element-specific magic skill bonus in rods.
 +
;Gemstones: Attribute bonus
 +
;Broken weapon essence: Weapon skill bonus (crafters can extract the "memories" of a weapon which has done its duty)
  
Materials (examples):
+
==Material naming==
{|
+
Materials exist in different quality grades. Each grade has a different material name. Using materials which exist in the real world would be boring. Making up fantasy names would give a much better flair.
|Material
 
|Type
 
|Quality
 
|Challenge
 
|Special Effect
 
|-
 
|Bronze
 
|Metal
 
|1
 
|1
 
|
 
|-
 
|Copper
 
|Metal
 
|2
 
|2
 
|
 
|-
 
|Iron
 
|Metal
 
|3
 
|4
 
|
 
|-
 
|Steel
 
|Metal
 
|5
 
|7
 
|
 
|-
 
|Titanium
 
|Metal
 
|7
 
|10
 
|
 
|-
 
|Runesteel
 
|Metal
 
|3
 
|10
 
| Adds a rune slot
 
|-
 
|Endural
 
|Metal
 
|10
 
|20
 
|
 
|-
 
|Ruby (Fire)<br/>
 
Sapphire (Water)<br/>
 
Emerald (Wind)<br/>
 
Quartz (Earth)<br/>
 
and others...
 
|Gemstone
 
|0
 
|5
 
|25% of weapon damage becomes elemental damage.
 
|-
 
|}
 
  
===Bow making===
+
Wacky idea to come up with names: What works for elements of the periodic table should also work for us. So how about naming materials after people who played an important role in the development of TMW? When we disguise it well enough noone would notice.
Forging bows out of wood and bow string.
 
  
===Armor forging===
+
*This is exactly the theme I was about to suggest to you, to increase our fictional material names.. The first one that came to mind was '''"Rotonium"'''.. and though I totally agree that we need to bulk out our material list with fictional names, I would like to keep some a bit of the familiarity, by keeping a good handful of the real names.  So long as there is a steady blend of fictional and non-fictional material names, I think it's acceptable to reference the real world a little bit. Using only real names might be boring, but using only fictional names might at times be a tad confusing. -[[User:Dabe|Dabe]]
Creating armor out of metal. These items are usually used by heavy fighters.
 
  
===Jewlery===
+
==Crafting Mechanics==
Forging jewels out of metal and gemstones that increase single stats.
+
# Player says what items and tools he want to use to craft an item
 +
# The game checks if the combination is valid for any item formula and if so checks what crafting skill is used for making an item with this formula and the challenge rating of the combination.
 +
#* The challenge rating is the sum of the tiers of all used materials (including special materials) multiplied with the challenge rating of the formula.
 +
# The attribute required for the crafting discipline may not be lower than the challenge rating. Otherwise the crafting procedure is cancelled.
 +
# The quality level of the item is calculated. This is done by doing 10 skill check of the users crafting skill vs. the challenge rating of the item (two random numbers are rolled, one between 0 and skill level and one between 0 and challenge rating, when the first roll is equal or higher the check is successful). For equipment the number of successful skill checks determines the quality. For consumable items 6 or more wins is success, 5 or less is failure and the steps 4-7 are skipped.
 +
#* 0-3 failed (The character receives no item, the materials are lost)
 +
#* 4 rubbish
 +
#* 5 crude
 +
#* 6 average
 +
#* 7 fine
 +
#* 8 excellent
 +
#* 9 flawless
 +
#* 10 masterpiece
 +
# Every equipment formula has a range for each stat of the finished items. The damage-min modifier of a long sword could, for example, be listed as 10-20 in items.xml. These values are multiplied with the average material property of the used materials which influences this item stat. When the items used for crafting said sword are two metal chunks of hardness 2 and two of hardness 3 the result would be a multiplier of (2 + 2 + 3 + 3) / 4 = 2.5 and thus the range of the damage-min stat of the item between 25 and 50.
 +
# For each stat of the item 7 random numbers in this range are calculated. The quality level determines which of these numbers is used (rubbish = worst is used, crude = second worst is used, ... masterpiece = best is used)
 +
# Special materials add new attribute boni to the item. The procedure is the same as for the basic item stats (7 random rolls and which one is used depends on the quality grade). The range of the bonus is a property of the special material and not influenced by the formula or the other material properties. Thus it is easier to craft an item with powerful special properties when it is an easy formula with low-tier basic materials than when it is a complicated formula with high-tier basic materials.
 +
# Item naming: <nowiki><quality grade> <main material> <formula name> [of <special property>]</nowiki>. Examples (tools are omitted, material names are provisorical):
 +
#* sword hilt + 4 iron (flawless) = Flawless Iron Longsword
 +
#* axe handle + 2 iron + 4 steel (crude) = Crude Steel Battleaxe
 +
#* axe handle + 3 iron + 3 steel (crude) = Crude Iron/Steel Battleaxe
 +
#* knife hilt + 2 bronze + fire crystal (fine) = Fine Bronze Dagger of Fire
 +
#* armor straps + 6 iron + strength-enhancing gemstone + fire crystal (excellent) = Excellent Iron Platemail of Strength and Fire
 +
# Character receives the finished item.
  
===Sewing===
+
===Client-sided===
Creating clothes out of threads or leather. These items are usually used by light fighters or magic users.
+
#The player opens a "craft" window, which is a GUI window with some item slots and a "OK" button.
 +
#The player drags materials and tools from its inventory to its craft window.
 +
#The player presses the OK button
 +
#Server processes the crafting
  
===Alchemy===
+
===Server-sided===
Brewing potions. The art of alchemy differs a bit from the other disciplines. The formulas are rather few:
+
#The client sends PGMSG_ITEM_COMBINE W item1, W item2 ... W itemN
{|Reciept
+
#The gameserver checks if the client possesses these items
|Slot
+
#if yes the gameserver forwards the crafting request to the script engine
|-
+
#The script engine checks if the combination is valid
|tiny potion
+
#if yes the script engine processes the crafting action and does things like
|1
+
#*skill check (if necessary)
|-
+
#*removes items which are not kept after the crafting process
|small potion
+
#*gives the character the new item(s)
|2
+
#*gives the character the skill exp (if applicable)
|-
+
#The gameserver informs the client about these actions using the already implemented mechanics
|medium potion
+
#When the item is a piece of equipment its unique properties have to be stored in the SQL database. Netcode for communicating the unique properties of unique items have to be implemented between database, gameserver and client. (Maybe the size of item IDs has to be increased from two bytes to four bytes where the IDs 0x00000001 - 0x0000FFFF are reserved for generic items without individual properties whichs properties are stored in the client-sided items.xml while the higher ID numbers from 0x00010000 - 0xFFFFFFFF are unique items whichs properties are stored in the SQL database).
|3
 
|-
 
|large potion
 
|4
 
|-
 
|great potion
 
|5
 
|-
 
|elixier.
 
|6
 
|-
 
|}
 
  
But the effect of the potions that use the same formulas can differ a lot depending on the used ingredients. All potions created with the same formula and combination of ingredients are identical. No quality levels are used in alchemy. Crafting a potion either fails or succeeds.
+
==Lists==
 +
*Material list: [[User:Crush/Crafting/Materials]]
 +
*Formula list: [[User:Crush/Crafting/Formulas]]

Latest revision as of 12:14, 10 December 2009

Just some notes.

Premise

  • Every equipment piece is unique.
  • Weapons affect attack mechanics.
  • Armors affect received damage.
  • All items can optionally affect every basic and computed attribute positive or negative, percentual or absolute.


Weapons

Properties by formula:

  • Weapon family and thus the skill used
  • Attack Zone
  • Attack speed
  • Penetration
  • Ratio between strength and dexterity required

Properties by material:

Armors (Including headgear, pants, gloves and shoes)

Armors require level because they are the status symbols #1 in MMORPGs.

Properties by formula:

  • Used sprite
  • Used slot

Properties by material:

  • Default coloration of sprite
  • Physical defence
  • Magical defence
  • Elemental modifier
  • Level requirement
  • Weight

Jewlery

Properties by formula:

  • Equipment slot used

Properties by material:

  • Attribute boni

Potions

Properties by formula:

  • Weight

Properties by material:

  • Effect

Crafting disciplines

Every crafting discipline has an Attribute which is important for it. Yes, the associations are a bit far-fetched from time to time, but it is important for balancing that every attribute is more or less equally useful for crafting.

Weapon Smithing (Str)
Forging metal weapons (swords, axes...) using hammers.
Carving (Dex)
Carving wooden weapons (bows, staffs...) using carving knifes.
Armor Smithing (Str)
Forging metal armors using hammers.
Sewing (Agi)
Sewing cloth armors using needles.
Gathering (Agi)
Gathering resources from resource nodes (technically not a crafting discipline)
Tinkering (Dex)
Creating fine-mechanical items from wood and metal using tinkerer tools.
Alchemy (Vit)
Brewing potions from herbs and bottles using cauldrons.
Cooking (Vit)
Cooking dishes from basic food using cauldrons.
Runewriting(Int)
Carving spellrunes into equipment.
Enchanting (Will)
Buffing equipment

Material

Crafting an item requires, depending on the item, a fixed number of batches of normal materials of a certain type (like wood or metal) which can be filled with materials of different quality and optionally allows to add a limited number of special materials.

Normal materials
Normal materials have different quality properties which affect the following item properties:
Property Effect in weapons Effect in armors
Tier Craft Challenge Rating, Level/Attribute requirements Craft Challenge Rating, Level/Attribute requirements
Toughness Durability Durability
Hardness Minimum Damage, Maximum Damage Defence
Mysticality Spell damage, Rune slots Magical defence, Rune slots
Density Weight Weight
Crystals
Elemental modifier in armor, Elemental damage in weapons, Element-specific magic skill bonus in rods.
Gemstones
Attribute bonus
Broken weapon essence
Weapon skill bonus (crafters can extract the "memories" of a weapon which has done its duty)

Material naming

Materials exist in different quality grades. Each grade has a different material name. Using materials which exist in the real world would be boring. Making up fantasy names would give a much better flair.

Wacky idea to come up with names: What works for elements of the periodic table should also work for us. So how about naming materials after people who played an important role in the development of TMW? When we disguise it well enough noone would notice.

  • This is exactly the theme I was about to suggest to you, to increase our fictional material names.. The first one that came to mind was "Rotonium".. and though I totally agree that we need to bulk out our material list with fictional names, I would like to keep some a bit of the familiarity, by keeping a good handful of the real names. So long as there is a steady blend of fictional and non-fictional material names, I think it's acceptable to reference the real world a little bit. Using only real names might be boring, but using only fictional names might at times be a tad confusing. -Dabe

Crafting Mechanics

  1. Player says what items and tools he want to use to craft an item
  2. The game checks if the combination is valid for any item formula and if so checks what crafting skill is used for making an item with this formula and the challenge rating of the combination.
    • The challenge rating is the sum of the tiers of all used materials (including special materials) multiplied with the challenge rating of the formula.
  3. The attribute required for the crafting discipline may not be lower than the challenge rating. Otherwise the crafting procedure is cancelled.
  4. The quality level of the item is calculated. This is done by doing 10 skill check of the users crafting skill vs. the challenge rating of the item (two random numbers are rolled, one between 0 and skill level and one between 0 and challenge rating, when the first roll is equal or higher the check is successful). For equipment the number of successful skill checks determines the quality. For consumable items 6 or more wins is success, 5 or less is failure and the steps 4-7 are skipped.
    • 0-3 failed (The character receives no item, the materials are lost)
    • 4 rubbish
    • 5 crude
    • 6 average
    • 7 fine
    • 8 excellent
    • 9 flawless
    • 10 masterpiece
  5. Every equipment formula has a range for each stat of the finished items. The damage-min modifier of a long sword could, for example, be listed as 10-20 in items.xml. These values are multiplied with the average material property of the used materials which influences this item stat. When the items used for crafting said sword are two metal chunks of hardness 2 and two of hardness 3 the result would be a multiplier of (2 + 2 + 3 + 3) / 4 = 2.5 and thus the range of the damage-min stat of the item between 25 and 50.
  6. For each stat of the item 7 random numbers in this range are calculated. The quality level determines which of these numbers is used (rubbish = worst is used, crude = second worst is used, ... masterpiece = best is used)
  7. Special materials add new attribute boni to the item. The procedure is the same as for the basic item stats (7 random rolls and which one is used depends on the quality grade). The range of the bonus is a property of the special material and not influenced by the formula or the other material properties. Thus it is easier to craft an item with powerful special properties when it is an easy formula with low-tier basic materials than when it is a complicated formula with high-tier basic materials.
  8. Item naming: <quality grade> <main material> <formula name> [of <special property>]. Examples (tools are omitted, material names are provisorical):
    • sword hilt + 4 iron (flawless) = Flawless Iron Longsword
    • axe handle + 2 iron + 4 steel (crude) = Crude Steel Battleaxe
    • axe handle + 3 iron + 3 steel (crude) = Crude Iron/Steel Battleaxe
    • knife hilt + 2 bronze + fire crystal (fine) = Fine Bronze Dagger of Fire
    • armor straps + 6 iron + strength-enhancing gemstone + fire crystal (excellent) = Excellent Iron Platemail of Strength and Fire
  9. Character receives the finished item.

Client-sided

  1. The player opens a "craft" window, which is a GUI window with some item slots and a "OK" button.
  2. The player drags materials and tools from its inventory to its craft window.
  3. The player presses the OK button
  4. Server processes the crafting

Server-sided

  1. The client sends PGMSG_ITEM_COMBINE W item1, W item2 ... W itemN
  2. The gameserver checks if the client possesses these items
  3. if yes the gameserver forwards the crafting request to the script engine
  4. The script engine checks if the combination is valid
  5. if yes the script engine processes the crafting action and does things like
    • skill check (if necessary)
    • removes items which are not kept after the crafting process
    • gives the character the new item(s)
    • gives the character the skill exp (if applicable)
  6. The gameserver informs the client about these actions using the already implemented mechanics
  7. When the item is a piece of equipment its unique properties have to be stored in the SQL database. Netcode for communicating the unique properties of unique items have to be implemented between database, gameserver and client. (Maybe the size of item IDs has to be increased from two bytes to four bytes where the IDs 0x00000001 - 0x0000FFFF are reserved for generic items without individual properties whichs properties are stored in the client-sided items.xml while the higher ID numbers from 0x00010000 - 0xFFFFFFFF are unique items whichs properties are stored in the SQL database).

Lists