TWiki Home Tharsis . Design . CraftingSystem Tharsis webs:
Design | Guilds | Combat | Website
Design . { Home | Changes | Index | Search | Go }

Crafting

Crafting is what we call the process where users can create/alter objects inside the game. Ie, the miner digging for ore, the smelter extracting metal, the smith forging swords.

Currently the AlchemySystem is the only crafting we have in the game. This should change.

Here are a couple of articles explaining what crafting is all about.

Brief summary of 'I want to make swords'

I. Resources -

II. Subtypes & Properties

III. Quality

IV. Blueprints

VI. Item Creation

-- PumaN - 11-20 Jan 2003


There should be a smith/forger to repair weapons.

You could pay him to repair the weapon or learn a skill ( i'd think one would have to heavily invest in time and money etc.. ) to repair it themselves. I think it's kind of ridiculous how you can use a piece of armour or any sword with 80+ edge all day with out them ever getting damaged.

-- EmbeR - 15 Jan 2003

I think everything should be damagable (excepting possibly some magically protected items). You enter combat and get walloped a bunch of times then half your gear has been hit and should be accordingly in need of repair.

Repairing gear, not just weapons, should then become part of the game. A smith could repair weapons/armour but I'd say you need to visit a tailor and a leather worker for other items. Self-repairing would require tools and materials, and in the case of metal working a smithy. You'd either have to provide these yourself or 'rent/buy' them for the job. Eg the 'fix' command when used in a smithy would incur a fee needed to cover the materials and time used.

-- FantoM - 16 Jan 2003

Crafting is something I've always seen as a very important part of a mud. Generally the scope of things usually involves just quests, exploring and exp. The first of two can be accomplished in a few months of playing as the mud is still relatively small. Then only the latter is left, leaving all the players to resort to becoming killers/achievers. This is where a crafting system could be of great use to implement.

The way I would like to see things as, is that crafting should be tied in with the new guild concepts. As smithing, weaving or carpentry could be possible sub guilds to which players can learn gcommands from. So a player goes to the smith and applies for an apprentiship, he works with the smith daily untill he learns a few smithing commands. Now he can repair weapons, but still needs practice until he becomes good at doing so. Once his smithing skills improve, he begins to repair weapons to other players and teaches smithing to other players, so he becomes a smith as well.

This opens up a whole new concept of jobs and economy in the scope of things. That multiple smiths can arise and each have competitive prices/skills to appease the masses who have damaged gear or need things forged. Then this concept can be applied to all sorts of crafting, weaving for baskets, clothing. Carpentry for furniture. House making for um, house making. This way it allows the players a new reason to play and new ways to gain money.

This sort of system works well in a game called Ultima Online. Where everyone has a job of sorts and earns money to pay for housing, food and general life. A similiar concept to this game could be adapted to Tg one day.

-- PyrO - 29 Jan 2003

For the crafting system, I think it would be better if we can like save the recipes instead. Then we can do a known recipes kinda thing. And also it could be random for each player... So that people won't cheat on the recipes. Regarding the smithing system maybe you can have it like in runescape? I like runescape :)

I don't know runescape at all, describe it here for me: RunescapeSmithing -- FantoM - 04 Apr 2003

-- UnknownKnight - 04 Apr 2003

I'm in favour of recipies for Alchemy, these should show up as things in the "known" command. You could feasibly teach someone a recipe, and be taught one by your guild trainers or other NPCs as part of quests, or find them by experimentation.

I had someone once suggest that you should be able to call anything you like a recipe - eg mix beer and water and ginger and call it a "nasty stuff" recipe. Our current system says "if it doesn't match a known recipe it will give you a random result when you drink it". This might have to be changed a bit under such a situation.

If we don't follow that route but say that you can mix anything you want and then 'study' it to see if it's worth keeping then you could learn new recipies that way instead.

The idea of making recipies different for each player is a good idea for stopping cheating but a little impractical for us to manage - consider we want to make things slightly logical, so potions of poison could require components with varying degrees of lethality - to enforce this means we can't easily make recipes have random components.

-- FantoM - 04 Apr 2003


-- PelemoN - 13 July 2006

Ah, the elusive crafting, mining, alchemy, forging, refining, smithing, and baking systems.

What if you could code them with an open ended systems allowing for new material additions?

Here's an easy base-format, set in an easily understandable format

Mining (random)

If mine_iron
**then query (player_name) cr.gp
****if cr.gp < xx
******then return "you do not have enough crafting points"
******endif
****if cr.gp >= xx
******then subtract xx cr.gp
**then query (player_name) cr.al.re.me
**then set query_1 = mine_x
**then random_variable cr.al.re.me as v_x
**then query Aura_Florae_iron
**then set query_2 = probability_x
**if mine_x > probability_x*5
****then return "You find some excellent Iron Ore"
****Endif
**if mine_x > probability_x*4
****then return "You find some good Iron Ore"
****Endif
**if mine_x > probability_x*3
****then return "You find some fair Iron Ore"
****Endif
**if mine_x > probability_x*2
****then return "You find some Iron Ore"
****Endif
**if mine_x > probability_x*1
****then return "You find some poor Iron Ore"
****Endif
*if mine_x > probability_x.5
****then return "You break your foot"
****then subtract z_hp
****Endif
*if mine_x > probability_x.2
****then return "You break your back mining"
****then subtract y_hp
****Endif
End mine_iron

(You may notice the hp removals were set, but this could easily be set to a random roll of x_hp or y_hp. Random mining commands (without defineds) would just add a step at the beginning, {{then query mining table_#, then set query_table=var_table, then random var_table... in this way any number of possible finds would go through the normal setup and people could find odd objects new in a realm (possibility of making a random probability give a modifier to normal roll, since randomly digging would most likely give you a better chance of finding something... instead of just throwing away all but one type ) ====================================================================================================

cr.al.re.prep for prepare (crushing and removal of obvious inpurity)
cr.al.re.metal for melt (melting, mixing, and pouring out distinct inpurity)
cr.me for ingots (managing the metal to form base metalwork objects)

If refine iron_object
**then query iron_object
****if iron_object = 0
****then send "You have nothing to refine."
****Endif
**then query (player_name) cr.gp
**then set query = variable_gp
****if variable_gp > xx
******then subtract xx from variable_gp
******then setvalue (player_name) cr.gp = variable_gp
****if variable_gp < xx
******then send "You do not have enough crafting points."
******EndIf
**then query (player_name) cr.al.re.pr
**then set query_cr.al.re.pr = ore
**then query (player_name) cr.al.re.me
**then set query_cr.al.re.me = poured
**then query (player_name) cr.me
**then set query_cr.me = ingot
**then random (player_name) cr.al.re.pr
**then set random_(player_name)_cr.al.re.pr = ore_random
**then random (player_name) cr.al.re.me
**then set random_(player_name)_cr.al.re.me = poured_random
**then random (player_name) cr.me
**then set random_(player_name)_cr.me = ingot_random
**then query iron_object_value (value of the base ore should be the highest value)
**then set query_iron_object_value = value_base
**then delete object iron_object
**then query Fantom_deore_probability
**then set query_Fantom_deore_probability = deore_probability
**then set value_base + ore_random + poured _random + ingot_random = value_overall
****if value_overall > deore_probability*5
******then send "You have made an excellent quality ingot"
******then create object ingot_poor
******Endif
****if value_overall > deore_probability*4
******then send "You have made a good quality ingot"
******then create object ingot_poor
******Endif
****if value_overall > deore_probability*3
******then send "You have made a fair quality ingot"
******then create object ingot_poor
******Endif
****if value_overall > deore_probability*2
******then send "You have made an ingot"
******then create object ingot_poor
******Endif
****if value_overall > deore_probability
******then send "You have made a poor quality ingot"
******then create object ingot_poor
***if value_overall > deore_probability.5
******then send "You burn yourself as you tip over your cauldron"
******then subtract z_hp
***if value_overall < deore_probability.5
******then send "You fall into your cauldron and ruin all your ore"
******then subtract xx_hp

(bars might make more sense than ingots)

more to come, falling asleep and don't have time to format the rest for twiki ====================================================================================================

Comments by FantoM - 26 Jul 2006

The commands for mining and smelting are a necessary addition if we with to support smithing your own gear. The specifics for messages/number of types of damage/etc don't have to be sorted here.

The thing I'd comment upon most is your statement of "What if you could code them with an open ended systems allowing for new material additions" This is an ideal we've been aiming for in the rest of this discussion. The difficulty is in handling what happens when someone puts something we didn't think of into a mixture. How could we come up with a potion/whatever that makes sense. IE - if someone manages to smelt normal iron ore along with some wierd gem that they picked up in harn, how should it effect the end product?


My understanding of the coding for the crafting system, from what Puma said way back (11-20 Jan 2003), is that we want to make it almost like how it has been discussed to create a new potions system. Players won't instantly recognize the materials they have found while mining, nor will they know the necessary steps to create the armour/weapon they want. The inclusion of the study command will help in recognizing materials and the "blueprints". Maybe if I can recode the potions system, the same code could be applied here for the collection of materials, recognition of them and of the blueprints. -- AureleaGu - 27 Jul 2006

===========

*Comments by -- PelemoN - 31 Jul 2006

This setup was designed to work of a number of tables that could be added to and reworked based on additional materials. The "forging" of weapons was based almost entirely on randoms of skills and the item values to form a product that would go through a value check to define what would showup (the only optional edge to this system would be recoding a new build for seperate objects, ie standard axe formation but blade and hilt and wrap made of entirely seperate builds themselves).

I had hoped that gem additions and other such extras could be used to enchant or imbue specialty alterations and coded entirely seperate from base item formations as gems would be devoured by a forge and possibly only useful if of sufficient size to work as an arrowhead on an easily damageable arrow. Magical imbues of base metals could be used to improve values before subpiece formation but due to any inbalance this could cause, being able to before and after enchant, the improvement should be minimal or result in a slight improvement or a complete ruining of ore or whatever subpiece is being "improved". Particular classes of objects would have to be revised to what they could possibly add to an object formation, and if at all possible either a value tag for a particular build or a multiplier of a given sell value devised. Metals would be straight forward enough as most forageables and extra items currenlty in the mud would not be of any value while at temperatures for melting metals, although while setting and cooling particular liquids would form different crystal structures and while sharpening certain herbs might be of more worth along with a wetstone.

Personally I don't like a blueprint formula, with the ammount of commands done in sequence within the mud to get above level ten people are use to setting up aliases and such to do the "hard" work for them. Also, the usage of a set build would cut down on our variety beyond the originating base code form of the commands. Certain things should burn if burnable, certain things would have to be voided as sharpening tools, and some objects would not be of use as formative ingredients.

With all this said, I hope the murky waters don't deter the production.

Topic CraftingSystem . { Edit | Attach | Ref-By | Printable | Diffs | r1.15 | > | r1.14 | > | r1.13 | More }
Revision r1.15 - 31 Jul 2006 - 10:06 GMT - PelemoN
Parents: WebHome
Copyright © 2001 by the contributing authors. All material on this collaboration tool is the property of the contributing authors.
Ideas, requests, problems regarding Tharsis? Send feedback.