Blacksmithing

正在查看此主题的用户

I have been making a blacksmithing mini-game for my mod. The plan was this: the player would strike the metal and do "damage". There would be a target amount of damage to do. Too little or too much damage would product a lower quality product. The player could move the metal between the forge and the anvil. The metal would heat in the forge (I was looking into tableau materials to reflect metal temperature) and cool on the anvil. The player would, of course, only be able to strike the metal while it was on the anvil. The hotter the metal, the more damage is done. I was also planning on giving the player varied sizes of hammers to further improve his options.

I was having too much fun making it to realize how flawed the plan is. The lowest amount of damage would always be desirable, so the player would have no reason to heat the metal or to use a heavier hammer.

I have plenty of other stuff to implement, but I'd really like to finish this mini-game first. How could blacksmithing work?
 
My favorite crafting system from all of MMO-dom is the one from Vanguard.  It wasn't the prettiest thing in the world mostly being button and timer driven, but it was very interesting.  I won't bore anyone with a lengthy description of the system; if your google-fu is righteous, it isn't hard to find. 

I point it out not only because I think it's awesome, but also because it has some pretty lenient functional requirements.  Minus the timer stuff which might be hard (I'm not well-versed enough in how triggers work) you just need a handful of buttons, a progress bar, and some script math.
 
I see. This looks like it might work well with something else I plan to implement...

I do hope to avoid straying into MMORPG territory, but this looks unique enough to be fun.

I'm not sure what you mean by timers; from what I've read on the sites I found via Google, it's turn-based. I did just skim, but I'll read it entirely in the morning.

[EDITED FOR CLARITY]
 
timers would be easy.. just use the rest_for_hours or if you don't want time to go by fast, you can use the system the siege code uses (or any of the other construction code for that matter). Get the current hours, add the number of hours you want it to take, and store that to a slot/global variable.

Then when current time eq target time, *ping* thy potion is ready :smile:

You could even go fancy and make a progress bar with tableaus and such but that would be a pretty big pain in the ass to make. You can just use a timer with digits tho, works just as well.
 
This is awesome. I salute you, sir.

I recall a puzzle about blacksmithing from the ol' Planescape: Torment, that extremely well-written game with insufficient gameplay. Oh, Torment, how I love your lopsided content distribution curves.

The basic way the puzzle worked was in choosing the right series of options for basic (and later advanced) forge-work - gathering appropriate equipment like aprons and forge hammers and ore and **** was handled in a very RPG way that wouldn't necessarily matter for a minigame. However, then came the actual puzzle - picking the right things to do in the right order in making an item. Torment did it all through dialogue, you could do it with a series of triggers. Except that not everything comes out the same way - Toledo steel is a certain type of ore turned into a certain grade of swordsmithing material heated at a certain temperature and quenched in certain substances; if you're armorsmithing, or you're working with precious metals (goldsmith, silversmith, brownsmith, etc) or just turning out a bunch of tools for villagers like an actual BLACKsmith, the recipe is different. Including a certain amount of new items to represent ores, refined metals you get out of those ores, forges, smelters, and other instruments would be more complex, but perhaps more fun.

Another mechanic to stick in, though, might be how often the metal is moved or the bellows are pumped, which might be keyed to temporary infantry commands like the formation work in Native Expansion. Or there might be an easier way. Or you might do something using the player's position relative to the forge. But the point is there's more to blacksmithing than heat and hammer-blows; where and how you hit matters as much as how the metal is lying. These might be hard to do in a detailed fashion, though I suppose an approach utilizing a sort of compass that shows the 'position' or orientation of the metal changing using button interrupts from the player might work if the modeling doesn't seem useful.

While I'm at it, another idea's popped into my head - one do it with forge-welding if you introduce new ores. That way, the amount of heat over time and damage over time begin to do different things to the metal - as I understand it, you might be able to set up a rhythm mechanic for dealing x damage predictably every y seconds whilst turning the metal in certain ways. If one can save one's progress for several different projects and come back to it, players might be interested for a longer period.

A re-forging feature might be decent as well. The Japanese did it with their flimsy little swords, but I don't think they were the only ones. Admittedly, I know very little about how much it was done historically - I know everyone needed scrap metal, and I liked that silly scene in LotR with that the elven smith reforging the legendary sword, skinny as Ann Coulter and with a hammer in each hand, but...that's as far as it goes. But I know that I'd jump at the chance to go through a fun sequence that allowed me to turn a 'balanced heavy' bastard sword into a 'masterwork' bastard sword. Or just a rusty one into a decent one, as a starting skill.

Of course, it'd be far more interesting to jam in a sort of reverse engineering game - one might try and find a way to replicate the 'strange swords,' if one wished, or just take apart a masterwork weapon to try and figure out how to make a bunch more. But this could be a mini-mod of its own.

One thing that might make it more viable, however, is coding in a skill-based way to do it, a bit like the thieves' tools were built in Return to Krondor to either be resolved by a minigame/arcade sequence or by random dicerolls altered by skills - if the player doesn't want to play your mini-game anymore because it's getting repetitive, give him an out that doesn't include modifying save files or activating cheats - these things lower the time spent playing your mod and thus the playtesting for it.

EDIT:
kt0 说:
...if your google-fu is righteous...
That's pretty sweet. May I steal it for tasteful use elsewhere? I will credit the wit to its maker.
 
Put a time limit on it. If the player only uses the smallest hammer he won't reach the ideal amount of damage in time.
 
Ash_Mantle, those are some excellent ideas. This gives me much to ponder.
Ash_Mantle 说:
Another mechanic to stick in, though, might be how often the metal is moved or the bellows are pumped, which might be keyed to temporary infantry commands like the formation work in Native Expansion. Or there might be an easier way. Or you might do something using the player's position relative to the forge. But the point is there's more to blacksmithing than heat and hammer-blows; where and how you hit matters as much as how the metal is lying. These might be hard to do in a detailed fashion, though I suppose an approach utilizing a sort of compass that shows the 'position' or orientation of the metal changing using button interrupts from the player might work if the modeling doesn't seem useful.
So the ideal amount damage must be dealt more than once, with the metal in different positions?
Ash_Mantle 说:
While I'm at it, another idea's popped into my head - one do it with forge-welding if you introduce new ores. That way, the amount of heat over time and damage over time begin to do different things to the metal...
What sort of "different things"? I should probably use my righteous Google-Fu to do a little research about forge wielding. Learning something about weapon/armoursmithing probably wouldn't hurt too.

kt0, I definitely using the Vanguard system down the road. I've something else planned for which that system would be well suited, I think.

MountainBlade, thanks. That definitely solves the problem.
 
MountainBlade 说:
Put a time limit on it. If the player only uses the smallest hammer he won't reach the ideal amount of damage in time.

Good idea.  Funny I finished off playing skate II, so I went back to fable II (got side tracked with FableII then SkateII), and I though what if M&B had "minigames".  next day I see this thread!

Some issues with what you are doing.  You will need a screen display (like the overlay for the battle map) which updates for the temperature if it will be a factor. If not, it would be really hard for a player to find the right temp.

I might do it this way:
have them heat the metal.  The better the metal, the more it has to be heated.  This can be done with timed button presses which will cause the below to move when the player is next to it.  I like the idea of hitting the metal with the right amount of force to get the desired result.  The better metals need to be worked more, so they would need harder strikes, hence the need for better hammers.  The metal should cool at a set rate, which would be the timer as to how much time you need to finish the job.

When using the hammer, you can do it similar to swinging, in that you hold the mouse button to power up your swing(1handed overhead).  A "multiplier" (like 1.0 to 2.5, or something) will grow while the button is held, then release to strike.  There should be an optimum hold time to get the best swing, and you can have the multiplier deplete if it's held too long (fatiguing your arm).

The object would be to get within the range of damage to finish the weapon.  Lets say it's 100.  So the optimum range would be like 95-105.

outcomes would work like this:

if you hit within the range in time, the weapon is common
if you can get it right at 100, then you get a well made weapon
if you go over the the damage threshold (like up to 110 but not too far), then you get a chipped (or other negative modifier) weapon.
if you go too far over the weapon and material are wasted.
if you don't make the timer, then you need to heat it again which will decrease how much you did (so if you got to 80, it drops by 50 or so), then completing it gives another minus modifier, such as bent
if you fail your second time, the metal is wasted.

How does this sound?

Thinking about this stuff made me think of a (fable like) mod where you have to do menial tasks to gain money.  Chopping wood, working the mines, bartening, smithing... 
 
Yes, another very good idea. Well, while I try to decide exactly how I'm doing to do this, I can start working on things that definitely need to be done no matter how the mini-game is played, like modelling smithing tools, making new metals and ores, and modeling the smithy interior. One more question: are modifier bits hardcoded? I would like to add new modifiers for the different metals (chipped steel broadsword, heavy bronze battle axe, et cetera).
 
Ash_Mantle 说:
EDIT:
kt0 说:
...if your google-fu is righteous...
That's pretty sweet. May I steal it for tasteful use elsewhere? I will credit the wit to its maker.
Feel free :grin:

I will definitely have to check out Planescape to see what fun things they've wrought (er, no pun intended). 

For some details on bladesmithing, I can give you these:



 
Thanks for the links. I read some of the articles and I need to decide just how complicated I plan on making this process.

For the shaping of the blade, I think I'll use a combination of what Ash_Mantle and jik suggested. The player will need to apply the target amount of damage to the billet, as jik described, but also with the billet in varied positions, as Ash_Mantle said. Some points of the billet will require more or less damage to achieve the correct shape.

About forge-welding: I think it would be fun to allow the player to experiment with combining different metals for the weapon like this. I can't experiment to see what the real effects of such combinations would be, so I could add rare fictional metals that can be added to achieve new weapon properties.

I'll also need to do some research on the properties of various ores.
 
I suppose Kt0 did pretty well in covering bases. If you want to do more reading, Wikipedia won't lead you terribly astray, but it's rather beyond me to accurately describe the chemistry or metallurgy of medieval forging and welding, and if you were anything like truly accurate you would no longer be making a mini-mod, so let's cut you some slack :razz:

But basically, yes, pattern-welding and forge-welding have chemical affects, I believe. And they are many and varied, but one might simpify this by giving metals certain properties and allowing them to be manipulated by combination and so forth. For the sake of posterity, one could have a 'forge welding score' or a 'pattern welding score' that would have an effect on an integer in the scripting depending on player input. Increase it enough and manipulate some other numbers that describe metal qualities of the ingredients enough, and you might end up with some sort of percentage describing likelihood of generating your pattern-welded/forge-welded/whatever item.

I guess this adds up to a method of generating high quality items in game terms - if you, for example, consider forge welded items with a certain 'score' representing quality/smith skill/whatever to be masterwork/heavy/balanced/tempered...you've got yourself some plans for algorithms.

Basically I guess this would boil back down to 'x damage over interval y, gives point value z; if z exceeds value a item is balanced, if z exceeds value b, item is tempered, etc, so repeat over z/(x*y) intervals for best results' whereas your method is more manageable, as it extends to (as I understand it) 'x damage over TOTAL TIME y equals quality z' right?

Ah, don't take me too seriously, and remember to use the KISS principle lest my rantings slow down your work :razz:
 
So, at each interval (y), I check to see how much damage (x) the player has done. If it isn't the right amount, the quality (z) is changed based on the difference between the target amount and the damage that was done. At the end, the quality is checked against some numbers and assigned the modifiers. Is that what you're saying?
 
The word difference implies subtraction, I was thinking rate formulas which imply division, but you can use any mathematical crutch that feels applicable. Pick something, make a working alpha. We can gut it and rebuild it later :razz: Anyone can learn enough syntax to cobble together a scripting formula, right?

Speaking of which, has anyone posted code yet? >>

Useless blathering spoilered below. Warning: may not be sensible! Read at your own risk.
What I am saying is that there are many ways to make this complex, but what it all breaks down to is minigame design.

If you want a rhythm and timing game, recall the old tales about the smiths of Toledo who hammered to prayer hymns to expose the metal to the right amount of impact over the right amount of time; every stroke helps turn crap metal into extremely good quality weaponry, but only if there are a certain amount of them to a certain material at certain frequencies of strokes a minute/hymn/whatever. Toss in any other elements you want for complexity, bellows, how often you add more fuel to the fire, and so forth. Note that this doesn't require a concrete example of the correct rhythm in a working alpha; you need not pick out music and count beats per minute.

If you want this to be a recipe-driven game, items and qualities are your friend. The design extrapolations are obvious.

But you shouldn't merely create throwaway content, eg making a job impossible to finish with the smallest hammer. That's dead content if the smallest hammer's completely useless barring combining tools in the middle of a job.

You also shouldn't necessarily make it as straightforward as simple point accumulation with no max, unless you're fixed on the idea. Let's assume you've got your heat mechanics sorted for a minute. If that's true, each interval (y) represents time spent working with an appropriate metal at target forge heat. These intervals could be defined by the computer's clock and terminated when time runs out, creating a timed game of whack-a-mole - a game driven by pushing the attack button enough, and waiting. Proper balance can make this sweet and tangy, like a tasty sauce.

You could also make the interval length defined by player input - the player pushes a button, which terminates the interval and starts the next one, like a smith turning the metal in the forge/heating the metal back up/adding more metal/moving down the length of the sword blade/pumping the bellows/whatever you pick, they're all applicable. This allows a skilled player to choose his tools, assuming you've done the math and balancing and made more than one tool viable. Everything should have a purpose; everything should be useful for more than a negligence fraction of playtime.

These mechanics allow room to grow and keep your minigame from being reduced to 'spam attack button until the progress bar is full' games, especially if the recipe systems/item design/mechanics can be balanced someday.
 
Just my 2 cents here.

I think the main goal of crafting should be to make it a fun part of the game. realism is second to that. They are not mutually exclusive, nor are the necessarily complementary to one another.

When making this, make sure it doesn't come out  tedious or frustrating. One example of a crafting system I loved was the spellcrafting in the original Asherons Call (I beta tested the game.. yes I am that old :wink: ). Spells had various components like candles, herbs, etc. You could chuck these together and then try and cook up a spell. Each ingredient had a word associated with it and the spell would come out as a sentence. Now once you'd succesfully created some of them, you could sometimes deduce other possibilities by looking at these sentences (so if you had fire arrow and had figured out which ingredient was 'ice', it was a pretty good guess that subbing that one in would give you 'ice arrow').

While complicated with loads and loads of options, the basic system was simple and immensely fun. I spent hours gathering different resources and testing out new spells.

where am I going with this? I have no clue. I guess my opening sentences would have been enough. While being historically accurate to every detail might be fun for some, the majority of people have to clue how smithing works anyway. I can see how it would be fun to bash a piece of iron with a hammer to make it into a nice weapon, but if it gets too involved with different types of iron required, etc, with a consequent steep learning curve and possible frustration, I'd probably move on.

Which reminds me that I still need to find an old version of MNB so I can check out CraftMod...
 
Just for the sake of clarification,

MartinF 说:
Just my 2 cents here.

I think the main goal of crafting should be to make it a fun part of the game.

Quoted for truth in case my spoilered rant was confusing. Make something that you think might be fun for a while. If it turns out you're not successful, others can tinker with it :razz:

Anyway, I'd better shut up and post my own modding thread thingy so I'm not accused of being completely full of hot air. Not whilst the accuser's argument has a leg to stand on, anyway!

Best of luck with your Blacksmithing mod.
 
agreed.  Remember your looking at designing a "mini-game", not a smithing simulation.

Work the game play idea first.  You should base it off of what most people think of smithing.  Heating metal, and smacking it with a hammer.  You can make the variety in heating 2 metals together, but if you do this and make it limited, it will seem shallow.  Like what MartinF said, the experiementing with a wide variety added to the fun, but if it was too simple, it would detract from it.

In the end, also think of the amount of work you will be putting into making it.  If you spend too much time on 1 part of your mod (unless this is the main focus) you will burn out your creativity and add to frustration.  This can kill a mod.
 
Sir Henry Curtis 说:
I have been making a blacksmithing mini-game for my mod. The plan was this: the player would strike the metal and do "damage". There would be a target amount of damage to do. Too little or too much damage would product a lower quality product. The player could move the metal between the forge and the anvil. The metal would heat in the forge (I was looking into tableau materials to reflect metal temperature) and cool on the anvil. The player would, of course, only be able to strike the metal while it was on the anvil. The hotter the metal, the more damage is done. I was also planning on giving the player varied sizes of hammers to further improve his options.

Sounds interesting. I'd add in a 'plans' element where you can buy the plans from someone for the model of sword you want to make, which will tell you the targets to reach and the recommended materials/hammers. Or you could just free build it which would make a sword according to the principles of the metal choosen and so on, but would be harder to make a quality blade, although you might figure out how to make a superior one given enough time.
 
jik 说:
Remember your looking at designing a "mini-game", not a smithing simulation.
Exactly. Blacksmithing is only a part of a bigger mod I have planned.

Well, I've much to consider. I'll try a few approaches and see what works best and which I like better.

How does this "Craftmod" accompish crafting?
 
My apologies for the double post.

All right, so I've been messing around with some ideas. The damage threshold idea put forward by jik is highly similar to what I had planned. It's easy to implement. In fact, it was nearly complete at the start of this topic.

I tried to implement something like Dance Dance Revolution where there's a certain window in which to perform an action. That's proving to be somewhat more difficult to implement, but, in truth, I didn't work with it for very long, so it may yet work. I'm not too sure that I like this one. I've never played anything like DDR so I can't really say.

I've also tried to decipher what Ash_Mantle is saying. It's not for any lack of clarity from Ash_Mantle, but, rather, a certain degree of stupidity from me. I'm currently messing with calculating the item quality based on the rate of damage a <insert time unit here>, but I don't think that's what he meant.

I think it's likely that I'll take MountainBlade's and jik's suggestions for now, since they'll be simplest to implement and move on to other things. I can come back to this.
 
后退
顶部 底部