Search the Community
Showing results for tags 'steelpushing'.
Found 2 results
Artemos posted a topic in MistbornEdit 3: Here's a quick look into my most recent progress - labels over targets, a more detailed HUD, and several physics tweaks. I'll edit what I can from the original post, but there's a lot of physics discussion in the replies that I highly suggest you read. Jofwu and I've discussed other possible relationships between Force and Distance, and there's a bit of a strange one that he came up with a while ago: Allomantic Force ∝ e ^ -d/D where d = distance and D = 16 When the target is right next to the Allomancer, e ^ -d/D approaches 1 and the AF approaches its maximum. When the target approaches an infinite distance away from the Allomancer, e ^ -d/D approaches 0 and the AF approaches 0. This strategy looks very similar to the linear relationship but avoids its icky discontinuity at the max range of the push. I like it a lot. For comparison, you can see all three Force-Distance relationships together here. Edit 2: Following Jofwu's footsteps, I had a conversation with /u/Phantine on reddit and am reconsidering how distance affects the Allomantic Force. I was originally confident in an inverse square relationship between Allomantic Force and the distance between the Allomancer and target, but through testing, a *linear* relationship has better handling and feels more reminiscent of Allomancers' movements in the books. I've added both as options in the game: The Allomantic Force is proportional to the inverse of the square of the distance between the Allomancer and the target When the target is right next to the Allomancer, the Allomantic Force approaches infinity. When the target approaches an infinite distance away from the Allomancy, the Allomantic Force approaches 0. The Allomantic Force decreases linearly with the distance between the Allomancer and the target. When the target is right next to the Allomancer, the Allomantic Force is at its maximum. When the target is at the max range (arbitrarily at 50 meters), the Allomantic Force is 0. I've also added the option to control the strength of your push through two control schemes: The player sets the *percentage* of the maximum possible force they can push with, or The player sets a *constant force* to try to push at, if possible. Edit 1: If you want to play the current build of the game, you can find it here on my GitHub. Aside from that, I've looked back at , @digitalbusker's post and see I misunderstood it a bit. I've re-read it and realized that I agree with it much more than I thought I did originally. In one paragraph, they said, This sounds just like the Allomantic Normal Force idea I used in the game. If you push on a target and the target can't move, the target pushes back on you as if there were a long, tangible line between you and the target. In this way, the ANF does work somewhat like an elastic collision. I did some more testing in the game and anything that involved directly manipulating velocities of the target or Allomancer worked poorly. I feel like sticking to forces rather than energy is the right way to go. Table of Contents I: Introduction I-a: My intent I-b: Current game progress & Videos I-c: Referenced forum posts I-d: Definitions II: Force, mass, and acceleration of a push III: Anchors and the pole analogy IV: Math V: Summary & Final points Part I: Introduction Over the summer I’ve been rereading Mistborn and have been thinking about the mechanics of Allomancy. I decided to have a go at recreating the physics of Ironpulling and Steelpushing in the Unity physics/game engine. I don’t intend on actually creating a game to sell (that’d be a bit illegal), so this is mostly an endeavor for personal fun. What follows is my current progress on the game as well as my current thoughts on the math and physics of Pushing and Pulling. Part I-a: My intent My goal is to take what Brandon describes in his books and do my best to create a working model of them in the Unity engine. My purpose in posting this here is to record my thoughts so I can be internally consistent, encourage discussion, and improve the game’s mechanics with your suggestions and criticisms. I don’t expect to perfectly recreate Allomancy as Brandon describes it in the books because there are some things with little connection to real-world physics (such as Feruchemical weight). I’ll try to give the pros and cons for all my decisions. If you disagree, tell me! I’ve been in my own personal bubble while making this, so I’d love some external input. Part I-b: Current game progress & Videos So far, I’ve implemented most of the physics and fundamentals of Ironpulling and Steelpushing. Here are some short videos: The setting: The sandbox I use for testing is based on Luthadel. There are metal poles stuck in haphazardly-placed buildings, and a few windows with metal frames/latches. At the intersection are metal objects of various masses, including coins, ingots, and 16-ton steel blocks. Blue metal lines: When the player (the grey sphere) begins passively burning metal, they see blue metal lines pointing towards nearby metal sources. The wider the line, the heavier the metal, and the brighter the line, the closer the target. Basic pushing/pulling: The player can “target” a metal. They can then push or pull on that metal. They can increase or decrease the strength of the push, as indicated by the wheel near the bottom. They can target multiple metals simultaneously (as indicated by the bright blue number beneath the wheel). Pull targets vs. Push targets: The player has separate targets for pulling (indicated by blue) and pushing (indicated by red). When the player pushes or pulls with specified push targets and pull targets, the player only pushes on the push targets and only pulls on the pull targets. If the player only has pull targets or only has push targets, they can push and pull on any target. Pushing/pulling with coins: The player can throw, drop, and pick up coins. The number in the lower right corner indicates the number of coins in the player’s pouch. Flying around Luthadel: It’s a bit tricky, but the player can fly between buildings by pulling on metal latches and pushing on coins. Some things are still a bit buggy, namely the camera, coin physics, and width of the white part of the blue/red line pointing at a target while pushing. Part I-c: Referenced forum posts Many of the ideas used in the calculations come from the work previous Sharders have done on making sense of Brandon’s magics. Here are some that I used, which I recommend to anyone interested in the physics of Allomancy: When I use specific ideas from these threads, I’ll mark it with a [#]. Other threads I found interesting: Part I-d: Definitions Key statements are italicized. Key terms are written in bold for their first appearance. Push – unless I specify otherwise, I’ll simply say “push” instead of “push/pull” to refer to the math of both steel and iron. It’s a lot easier to read while still means the same thing. All physics and rules of a pull are the same as a push, just in the opposite direction. Target – the metal that an Allomancer is currently pushing on. Coins are often a target. Distance – the distance between an Allomancer and their target. Anchor/anchored – a target is an anchor if it does not move. A lamppost, a coin stuck on the ground, and a metal roof would all be anchors. Note that the metal is the anchor, not the nearby wall/ground/stone. A target is unanchored if it is moving freely with no resistance. A target is partially anchored if it meets some resistance but is not fully anchored (i.e. a coin skidding on the ground). Allomantic Force (AF) – the force that an Allomancer directly exerts on a target while pushing. Equal in magnitude to the force that the target directly exerts on the Allomancer while pushing. The Allomantic force does not change if the target is anchored or unanchored. Allomantic Normal Force (ANF) – the force that is exerted on an Allomancer or target as a result of the opposing target or Allomancer's push or pull by the surrounding ground, walls, etc. I'll discuss this down below. Essentially, it's what makes anchored targets give that extra strength to your push. Now, let's jump into the physics of Allomancy. Part II: Force, mass, and acceleration of a push When Allomancers in the books refer to “weight,” they almost always mean mass.  Let’s ignore Feruchemical weight for now. When an Allomancer pushes on a target, the Allomancer exerts a force on the target that is equal and opposite to the force that the target exerts on the Allomancer. It’s F = ma, it’s Newton’s third law, and if anything else were the case, the physics of Mistborn would be far too distant from our world for a good simulation. This explains one of the core features of pushing and pulling: If you push on an object heavier than you, you will accelerate more than it (and vice-versa). You push on a coin out in front of you. The force is the same between you and the coin, but the coin has less mass, so it accelerates more than you. The coin goes flying, but you hardly move. Likewise, heavier objects (like cars) have more mass than you, so you accelerate more than them. The previous statements are most apparent with an Allomancer and target in free-fall or space, where the Allomancer and target (such as a coin) won’t be anchored by anything (such as the ground). When the Allomancer or target are anchored by a wall or the ground, things get complicated. Part III: Anchors and the pole analogy In the books, if an Allomancer is falling through the air, throws a coin downwards, and starts pushing on it, the Allomancer doesn’t feel much while the coin is falling through the air and unanchored. The Allomancer pushes on the coin, but their acceleration from the push is not enough to stop their fall. Once the coin hits the ground and stops moving, the Allomancer suddenly “can get a stronger push” and decelerate more strongly. Here is my interpretation: Pushing against an anchored coin on the ground has a similar effect as holding a long pole and physically pushing against the ground. The Normal Force due to the Allomantic Force (Allomantic Normal Force, or ANF) that the ground/wall/etc. exerts on the target is transferred to the Allomancer. If you held a long vertical pole and pushed down on the ground, the ground would push back on you and the pole. If you tried to push the pole into the ground, the ground would resist, and you could climb upwards relative to the ground. Allomancy mimics this effect. When pushing on the coin, it is like you are physically connected to the coin. If something resists your push, you experience that resistance. It's just like you're literally pushing against the coin with your fists. If the coin's in the air, hardly anything happens. If the coin's on the ground, the ground resists. I drew some free-body diagrams that hopefully help explain what I’m saying. In these, an Allomancer and coin are falling down. The Allomancer is pushing on the coin. Let me discuss two of the other theories as to how Allomancers get stronger pushes from anchored targets: When the coin is airborne, the allomancer is only pushing on the mass of the coin. But when the coin is anchored to the planet, they are also pushing on the mass of Scadrial/the ground around the coin, which causes the Allomancer to accelerate more. [not a quote, but the concept taken from 1] I’ll get into how mass affects the force later in the math section, but I want to now make something clear. With my interpretation, Allomancers push on the mass of metal, not the combined mass of metal and nearby non-metal (the planet). When pushing against an anchored coin, the Allomancer is only indirectly pushing on the ground – they are pushing on the coin, which pushes on the ground, which resists back on the coin, which resists back on the Allomancer – similar to holding a long pole and pushing on the ground. An Allomancer’s strength is the amount of kinetic energy they can add to the system of the coin and allomancer. When the Allomancer pushes on an unanchored target, that kinetic energy is distributed between the two, proportionally to their masses. But, when the target is stationary, their velocity is zero, so all of the kinetic energy is given to the allomancer (and vice-versa). [paraphrased from 8] I like this explanation. Honestly, I may agree with it more than with my own ANF theory. I tried it out, but it was a lot more difficult programming-wise than the ANF idea. Unity has easier force manipulation than energy manipulation, so I framed my theory using that. Energy is just force with extra steps. (See Edit 1) I’ll talk more about the Allomantic Normal Force and partially-anchored targets after the math in Part V. Part IV: Math Now, I’ll introduce the formula that I used to calculate the Allomantic Force. After that, I’ll describe each of the terms in detail. Allomancy is a lot like magnetism, so let’s start by looking at the formula for the magnetic force between two poles. In Allomancy, the “two poles” would be the Allomancer and target. Magnetic Force = Constant * q1 * q2 / r2 Constant – some constant that depends on the medium between the poles. q1and q2 – the magnitudes of the magnetic charges of the poles. r – the distance between the poles. The greater the charges, the greater the force. The greater the distance between the two poles, the weaker the force – and through the inverse square relationship, greater and greater distances cause much weaker and weaker forces. Now, the Allomantic Force: Allomantic Force = A * S * b * c1 * c2 / r2 (See Edit 2/3) A – some constant. This depends on how all pushes and pulls are described in the book and can be increased/decreased for overall stronger/weaker pushes. b – Burn rate. See below. S – Allomantic Strength. See below. c1 and c2 – the Allomantic Charges of the Allomancer and target. r – the distance between the Allomancer and target. Burn rate – the rate at which an allomancer burns their metals. For my purposes, burn rate is a range between 0 and 1, where 0 is “not burning at all” and 1 is “pushing as hard as you can,” possibly without flaring. I bound this to the triggers on a gamepad and to the scroll wheel on a mouse, which allow me to variably control the strength of a push using the burn rate. Allomantic Strength – the most magic-y of the all the components of the force. Some Allomancers are naturally stronger than others, perhaps by sDNA. Allomancers get better with training and experience. These factors get bundled into the Allomancer’s Allomantic Strength. The Allomantic Force is not proportional to the Allomantic Strength (see ). Rather, the Allomancer’s maximum burn rate is proportional to the Allomantic Strength. In this way, Allomantic Strength acts as a sort of limiter. Stronger Allomancers must be able to burn more metal faster for a stronger effect. I won’t incorporate this in-game. Allomantic Charge – Analogous to magnetic charge. Contributes to the Allomantic Force. A property of both metals and Allomancers. I recommend now reading , which has a very interesting theory on this. I’m not adhering to it completely, though. An Allomancer or target’s Allomantic Charge is a function of its mass. To make the mass relationships of Mistborn work, we need to satisfy a few factors: The more massive a target is, the stronger a push an Allomancer can get off of it. The less massive a target is, the weaker a push an allomancer can get off of it. “[Wax] shot outwards in a grand arc above the city, flying for a good half a minute on the Push off those enormous girders” (AoL ch 1 pg 34) . “…the lamp was a good anchor - lots of metal, firmly attached to the ground - capable of pushing [Wax] quite high” (AoL ch 1 pg 32) . Both of the targets in these quotes are equally anchored, but the girders are much more massive and provide a stronger push. I don’t have any direct quotes, but we know that Allomancers get less of a push from coins than they do from, say, enormous girders. The “heavier” an Allomancer is, the stronger their push. This argument comes from Feruchemical weight, not mass, but it nonetheless impacts Allomancy in the books, so I should bring it up here. While tapping weight, Wax thought, “with this incredible conflux of weight, his ability to Push grew incredible” (AoL) . I can’t quite remember the context or quote, but I recall that one of Kelsier’s surprises about Vin was her Allomantic Strength/Charge was large “for her size,” implying that smaller/less massive Allomancers usually have less charge. It’s symmetrical with the target’s mass impacting the Allomantic Charge. It’s intuitive and makes sense. There should be some soft maximum cap and minimum cap to the force. If an Allomancer pushes off of an absolutely massive multi-ton solid block of gold, they shouldn’t be pushed into the stratosphere. Likewise, coins are very light relative to lampposts and roofs, but they still provide a reasonably strong push. This leads me to the most disgusting part of the math. What exact relationship do the masses have with the force? The relationship can’t be zero. If this were the case, mass would have no effect on the force, which I argued against. Also, an Allomancer could push on a “metal” with a mass of 0 and still get a push, which doesn’t make sense. The relationship can’t be linear. If this were the case, a target 10 times as massive as another would provide 10 times a push as the other, which doesn’t appear to be the case. If an Allomancer pushes first on a 30g coin and then on a 30kg metal block, the Allomancer would receive 1000 times more the force from the block than the coin. In the books, Allomancers push off of girders and roofs which are much heavier than 30kg, but they certainly don’t describe such a massive difference in forces from coins. That’s duralumin-levels of strength. I’ve tried out a lot of relationships. Logs, sum of logs, product of logs, and roots. Eww. My solution was to take the root of the masses of the Allomancer and target. Specifically, the, ah, sixteenth root. It provided a good combination of strong-enough pushes from light coins and weak-enough pushes from very massive targets that felt most similar to the books. The number 16 was arbitrary. I figured I might as well use Scadrial’s base number for legitimacy. If I used a more elegant root (i.e. the square root), coins provided practically no force, and massive targets still pushed to the stratosphere. Higher roots “level the playing field” more than lower roots. c1 = sixteenth root of (m1) c2 = sixteenth root of (m2) m1 – mass of Allomancer m2– mass of target Because of how roots work, we can also say that c1 * c2 = sixteenth root of (m1 * m2). Regarding the maximum to the force that an Allomancer can get from an extremely massive target: The heavier and heavier the target, the less and less the increase in force. No pushes to the stratosphere. I’m not actually sure if this is the case with roots, but it felt like it was: the lighter and lighter the target, the less and less the decrease in force. Coins are very light, but still provide a significant push. In the end, I’m not actually trying to figure out how mass affects the force in the books. I am fairly confident Brandon didn’t consider the exact relationship while writing the books. I’m just finding ways to emulate it in a physics engine. Part V: Summary & Final points And here’s the final, composed formula for the force an Allomancer experiences while pushing: Force on Allomancer = Allomantic Force + Allomantic Normal Force = Allomantic Constant * Burn rate * sixteenth root of (target mass * Allomancer mass) / squared distance between Allomancer and target (See Edit 2/3) + Allomantic Normal Force Burn rate is between 0 and 1. A Burn rate of 1 gives the maximum Allomantic Force. When target mass is 0 or the Allomancer mass is 0, the Allomantic Force is 0. The closer and closer the target is to the Allomancer, the greater and greater the Allomantic Force. Like other normal forces, if the target isn’t fully anchored (e.g. a coin sliding across the ground, or a thin metal rod that bends as you push on it), the Allomantic Normal Force ranges from 0 to the Allomantic Force, depending on how anchored the target is. This means that an Allomancer pushing on a perfectly anchored target will be pushed back with twice the force as a perfectly unanchored target, assuming they have the same distance. This last bit about the distance is key. If an Allomancer is falling through the air and throws down a coin, the coin quickly falls further and further down. The Allomantic Force quickly becomes very small. Only once the Allomancer falls further and is near the coin – now anchored to the ground – does the distance stay small enough for the Allomantic Force to be large enough for a long enough time to scale a building. Friction (and air resistance) can also be a normal force, in this context; any (normal component of a) force that resists the Allomantic Force can be an ANF. Gravity, too, can be an ANF. An allomancer hovering in the air (whose push cancels out gravity) exerts an ANF equal to gravity back to their target. Theoretically, the Allomantic Normal Force could be greater than the Allomantic Force if the target accelerated in the opposite direction of the push. If you pushed (not pulled) on a target, and the target moved towards you (e.g. a very determined Steel Inquisitor, resisting your push and walking towards you), that normal force would push on you harder. This could result in “pushing matches” between Allomancers who try to move towards each other for even stronger pushes. Allomantic Normal Force works both ways. If the Allomancer is anchored (e.g. braced against a wall), the target will experience an Allomantic Normal Force. Other details: There are two main coins in Mistborn: Imperial boxings (gold) and clips (copper or bronze). In real life gold coins are usually around 30 grams, but I’ve experimented with increasing their mass by about 10-100 times for the game. Currently, I’ve kept them as 30g. When pushed with any reasonable force, 30g coins instantly fly off of the screen like bullets. There’s no user feedback that they pushed on that coin, other than, “that coin no longer appears to exist.” If you drop a coin from the air, it is on the ground by the next frame. Coins are sometimes described as behaving like bullets, but I don’t like how that works in the game. With heavier coins, you can see the coin after you push on it, but it still moves very quickly. Another option (which is the one I’m using in the game) is to simply cap their maximum velocity. I’ve left it at around 120m/s, which feels good. That’s about 1/3 the speed of sound. It causes some problems with calculating the Allomantic Normal Force from the target, but those have been resolved with coding (more or less). The image on the coins in the game is taken from Shire Mint. Fun fact: Unity doesn’t let you modify force vectors individually, which makes this a bit hard. You can only add forces/accelerations/velocity changes one at a time, then they are all applied to the object at the end of the frame. Calculating the Allomantic Normal Force is absolutely disgusting. See my code on GitHub, if you’re curious. I hope you all enjoyed the read! Please discuss this and give your opinions on the physics and maths of Allomancy. Specifically, Are there any more elegant relationships between Allomancer/target mass and Allomantic Force that you think I should try? Does anyone have any esoteric knowledge of Unity’s Rigidbody/Force systems that you think could be helpful? Any general ideas for the game? Any suggestions from what you can see in the videos? Any spelling/formatting issues with the post? Thank you.
Hi all, so this is a spin-off of the Nicrosil Feruchemy and the Bands topic. But once I got writing and thinking I decided to flesh it out. I intend to flesh this out even more, so if you see me edit stuff in, be not surprised. In this thread I examine how allomantic power in the context of steelpushing is majorly dependent on two things; weight and allomantic power. Further, I give insight into the nature of power and sensitivity. Weight determines who moves, as well as how much, and allomantic strength is almost a measure of how much this rule can be violated; it also provides an extra amount of power in addition to one's weight, but it also seems to determine sensitivity. Steelpushing: Weights and Anchors Now, we all ought to know that weight is vital in steelpushing; it is weight manipulation that makes a lot of Wax's cooler feats possible and we see examples in pretty much every book. However, it isn't just about the weight of the allomancer, but the size or weight of the anchor as well. Now, if you're short on time, suffice it to say that a heavy anchor that's high in metal is better as it allows for a longer push. Now, we see this as early as chapter 1, page 32 of the Alloy of Law where Wax notes, whilst cruising the city, This also states more metal is better, which is also implied on chapter 1, page 34, of the Alloy of Law. It is worth noting that this again notes it may not just be weight, but metal mass that is particularly important for an anchor. As we know, larger anchors have thicker lines. As one approaches a metal the line becomes brighter, and as one leaves it becomes fainter. The thicker the line, the more enduring the anchor the object tends to be. It is notable that Kelsier also uses an ingot to train Vin in jumping the city wall of Luthadel, in The Final Empire chapter 8 page 147, This would seem unnecessary if a mere coin was enough. Indeed, So, weight determines who moves, and quality of anchor determines how far one can move, by determining the time extent of the push. A bigger, more metallic anchor is better and will allow longer sustained motion whilst a smaller anchor allows shorter flight. Allomantic Strength and Pushing We're introduced to the notion of allomantic strength early on with Vin, who is abnormal in her high strength. But before we compare between people, it helps to consider burn rates with a single person. Take Vin. She is capable of burning her metal and extracting a given amount of power. She may also flare it; flaring a metal allows her to draw more strength from her metal, but at the cost of a faster rate of consumption. So, all else equal, Vin is capable of drawing more strength from her metals at a cost of reduced burntime. Now take Kelsier and Vin. Both can burn the same metal, say steel, but they have different burn rates. This burn rate is a result of spiritual DNA and the more allomantic sDNA, the faster the burn, and consequently the more power at any given time. It is explicit as per WoB (thanks and full credit to Yata) that a stronger allomancer is one who burns their metals faster. But what does 'more powerful' mean? What is greater allomantic strength? Essentially, this means stronger (more force) pushes and pulls from a given anchor, as well as obvious consequences for the other metals. We see this in The Final Empire, chapter 9, page 174 and Kelsier comments on it on page 182. Particularly relevant is that Kelsier is bigger than Vin, and he does end up winning, but he still feels it -more than he otherwise should. Strength allows a degree of freedom. This is a relatively slight difference, it's less conclusive than we'd like but it is useful for demonstrating the point, so let's go with another more drastic example. We further see this with Elend in Hero of Ages, chapter 3, page 32. So right here we see that that Elend only stumbles -he's not thrown away- and the Inquisitor is tossed away. Essentially, this demonstrates that allomantic strength not only allows one to effect someone else more than it should, but in the case of a Pushing match it allows the stronger party to suffer less damage. It violates the weight determines what moves (and how much) rule. Or more accurately, the greater the difference in strength, the less the difference in weight matters. But What About Sensitivity In the interests of being fair, I've heard this before, most recently by SpoolofWhool but in the interests of being honest, I'd also noted this myself. Basically, it is my thoughts that a stronger allomancer isn't just stronger, but is also more sensitive. This is implied with Vin's training with Marsh (she's not just strong, but hemalurgically gifted) where she can already feel the direction of the metals burn. But there's more, there's a scene in Shadows of Self, chapter 20, page 308 where Wax is alone in the dark with TenSoon and by flaring his metals he can only just see the lines. Better though, in the Bands of Mourning, page 258, Wax notes (of Wayne's new identity-less metalmind) In Conclusion (or TLDR) Weight of anchors matters for push length, and power in some cases. Greater strength of a allomancer allows more Pushing force given the same anchor. Greater strength alos seems to grant greater sensitivity. Still to come; Cleanup, Anchor quality, Savantism, Nicrosil and stored allomancy, Soul interference and allomantic power, Wax and Vin at LORD RULER (+) power. And more!