User:Crush/Crafting

< User:Crush
Revision as of 17:54, 12 March 2009 by Crush2 (talk | contribs) (gave attributes a role in crafting)

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:

  • Damage
  • Durability
  • Attribute requirements
  • Weight

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