Crazed suggestion.

Discussion in 'Feedback' started by Niarbeht, May 7, 2007.

  1. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    Anyway, this is currently a crazed, half-baked idea that could possibly reduce the amount of bitching concerning "OMG THAT LOOKED LIKE IT HIT MY FRONT BUT IT REALLY HIT MY SIDE?>!/1".

    It involves circles. And math. And by math, I mean trig.

    And this may take a lot of explaining, so whatever you do, don't attack it immediately. Assume that I messed up explaining for the first five pages, and if I STILL can't get my idea across then, attack.

    To begin, let us imagine the vehicle as a circle. The front of the vehicle is at zero degrees. Imagine a top-down view of an AFV (I'd make pictures, but photobucket is the ghey) where the front of the AFV is pointing to the top of your monitor. Now trace a circle around the AFV. The top of this circle is zero degrees. To the left is positive degrees, to the right is negative degrees.

    Now for some of the harder stuff. There are four points we care a lot about. Zero degrees (AKA 360), 90, 180, and 270 degrees (AKA -90). These are, respectively, the front side, the left side, the back, and the right side. Place dots on the circle to represent these.

    These points stand for the front armor, the left armor, the back armor, and the right armor.

    I haven't worked the math out all the way yet (it may not be a fair system for damage distribution), but imagine it like this:

    If I fire shell and hit EXACTLY zero degrees, all the damage is dealt to that point. All the damage gets done to the front armor. If I hit halfway between the front armor and the left armor, however, isn't it logical that some damage should be dealt to each? Maybe I'm just a nutcase, but...

    ARGH! I NEED PICTURES!

    Anyway, I have an idea that you could use trig and angles and such to more properly distribute armor damage. I need pictures!

    Please don't reply until I've figured out how to get some pictures up!

    Unless you see where I'm going and want to post pictures!
     
  2. Bodrick

    Bodrick Ye Olde Supermod

    Messages:
    1,505
    Likes Received:
    0
    Trophy Points:
    0
    [​IMG]

    lol, loss of quality
     
  3. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    Wooooow. That was some nasty quality loss!

    But yeah, that's the idea thar.
     
  4. dizzyone

    dizzyone I've been drinking, heavily

    Messages:
    5,771
    Likes Received:
    0
    Trophy Points:
    0
    a. This doesnt make any sense whatsoever, a circular way of predicting hits on a rectangle shaped vehicle?

    b. How would this fix anything? What exactly is wrong with armor plates on 4 sides, sorry I don't see how this would fix most of the problems that are occuring with the current armor plates.

    And sorry that Im attacking your thread even when you asked us not to, but if you're not going to describe what the actual problem is and how this would make a better solution over the old system, than all I'm reading is "Hi I had this crazy idea, I'm not eevn sure what I'm really thinking to improve, but the current system doesnt seem to work as good as it should, so heres a completely different way to do it. It doesnt guarantee a fix to what the problem is, god knows what the problem even is, but hey I like being flamed and if you have too much time why not throw everything you have overboard and start from scratch! My regards, niarbeht."

    :P
     
    Last edited: May 7, 2007
  5. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    You should know better than that, Dizzyone!

    First off, ever had one of those days when the front of your AFV gets hit, and the side armor gets blown off?

    Ever had one of those days where you drive full-speed into a wall, but your front armor takes no damage whilst your side takes the full of the issue?

    Quite simply, this fixes those problems completely. If my LT gets hit on, say, the front-right corner, the damage won't be arbitrarily distributed to EITHER the front OR the side, depending on a couple centimeters difference. No. It'll have some distributed to BOTH.

    I'm not sure what level of math you've taken yet, Dizzyone. This may be one of those things that's hard to envision without enough math under your belt.
     
  6. dizzyone

    dizzyone I've been drinking, heavily

    Messages:
    5,771
    Likes Received:
    0
    Trophy Points:
    0
    the afv is messed up, doesnt mean the current way its done is bad. I might not be able to envision it, but it just sounds like complicating the obvious. For all you know this is a problem with splash damage not counted on a side due to how its coded into source (im talking out of my ass).
    Why shouldnt square shaped armor plates receive damage on multiple sides if the actual hit is between 2 plates? If the shell is big enough to hit both sides, it would be logical you would get damage on both sides right?
    Why does the side take all the damage in the first place when you hit a wall, its a mystery to me atm, you might know why.

    The current system is bugged, ok we all know that, but in theory whats wrong with armor plates being on their respective sides?

    Sometimes its best to make something exactly as it is in real life to get the best results, having over 200 points (degrees) that are not used is pointless, it just sounds like a different way of approaching it and god knows how it works out.

    Overall the current implementation works in most cases, why not extend it instead of starting all over.
     
    Last edited: May 7, 2007
  7. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    You mean 356 unused points. And you'd be wrong about that. Degrees are arbitrary. Radians are real. Degrees were a construction invented to try to understand a system and make it usable to humans. Then, we figured out radians. D'oh.

    Anyway, when you ram a wall head-on the damage is dealt to the side since it was the side that hit first.

    Make any sense to you now?

    You didn't drive perfectly straight at the wall. Any angle, no matter how minuscule, means that a side hits before the front does.
     
  8. dizzyone

    dizzyone I've been drinking, heavily

    Messages:
    5,771
    Likes Received:
    0
    Trophy Points:
    0
    I understood that part, still doesn't mean it can't be evened out how it is now.

    Why not add some tension to the armor plates, dividing them in smaller pieces, if a part of a plate is hit that is near another plate, the damage will partly be absorbed by the other plate, depending on how close it was.
    Ofcourse a real vehicle has more sides/faces than just 4 and unless you map and calculate every side there is never going to be an accurate model for the armor.

    Yes your way would be more accurate, but is it worth it, did you intend to let this convert into 4 armor plates? or should it be as complex as having a completely round armor around the vehicle and depending on the angle you hit you can break threw the armor? Take the time to code it, bug fix it and everything and it just doesnt sound worth it as in the end the vehicle is a rectangle with 4 sides to hit. Circular or divided into more sides, it comes down to the same thing, or my iq is just too low to comprehend this ingenius seperation of plates.

    Improving the current system that doesnt seem to fail that horribly > reinventing a system that boils down to the same thing.
     
    Last edited: May 7, 2007
  9. Bodrick

    Bodrick Ye Olde Supermod

    Messages:
    1,505
    Likes Received:
    0
    Trophy Points:
    0
    I don't think you understand this dizzy :)
    This is basically just resolving the vectors of the impact, so that there is a distribution of damage between two plates, as supposed to just one. Hence hitting at 45 degrees from centre would do equal damage to the two plates, and the further round the side it goes, the less it does to the further away plate, and the more it does to the closer plate.
     
  10. dizzyone

    dizzyone I've been drinking, heavily

    Messages:
    5,771
    Likes Received:
    0
    Trophy Points:
    0
    oh right, i don't understand it, good point.

    Well in that case, greatest idea ever!

    Seriously though, what you say is as simple as shitting is, saying I don't understand is saying you didn't read my posts
     
  11. Private Sandbag

    Private Sandbag Member

    Messages:
    7,491
    Likes Received:
    0
    Trophy Points:
    0
    I undestand the idea and I don't like it. it's too complicated. When i see a rocket fly and hit the side of my tank, anywhere along the side, it should do damage to... the side. the only exception here is if it hits the very corner, but even then I don't care too much.

    this isn't how armour works in real life. in real life, it you hit the side, then the front of your tank may be unscathed but you now have a hole in the side of your tank, even if it is 3/4 of the way towards another of the sides.

    this is not the solution to a buggy AFV, considering that all other vehicles work perfectly.


    however, what wouldn't be a bad idea is incorperating this into when explosions occour nearby, so that they evenly take off armour. if they don't already, i forget.
     
  12. Slithzerikai

    Slithzerikai I for one am glad the NF SMG 3 is gone

    Messages:
    3,643
    Likes Received:
    0
    Trophy Points:
    0
    The AFV is too long to have sides with regular plating. The AFV is so long, that I think the sides and front need more defense, but give the rear the complete disadvantage.
     
  13. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    -----
    EDIT: I started writing this post a long time ago, when we were still on page one.
    -----

    I think you need to read up on basic vector math ( <i,j,k> ). That should massively help your understanding of what's being proposed here.

    Remember that "Now make four points" part?

    You'd still see four sides in the bottom-left. You'd still see four sides when customizing the tank.

    Brief description of vector math:
    Vectors are, in their graphical forms, little arrows. They are comprised of a magnitude and a direction. Magnitude is the size of the arrow, and if you can't guess what direction is I'll shoot you. The larger the arrow, graphically, the more powerful whatever the heck the arrow represents is. A simple example is velocity. Velocity is a vector. You could say that a person driving on a road has a velocity of 65 miles per hour Eastward.

    I hope you've done some math with angles before. Here goes:

    If you want to mathematically represent a vector, you've got two options. First, there's the one used most often in physics. You define the vector as it's magnitude, and a number of degrees or radians off some reference (usually the horizontal, or the x-axis). So, say, you might hear in some sci-fi movie that a ship has an acceleration of 24 meters per second per second (yes, that's acceleration) at 20 degrees.

    Another form is called i, j, k. It's a bit more math-y. I'll use a simplified i, k form instead. There's a thing called a unit vector. It has a length of 1 in whatever direction it's pointing. i and j refer to unit vectors in the positive x and y directions, respectively. Thus, 2i means a vector two units in length pointing in the x direction. i + j means a vector of the length of the square root of 2 pointing one unit in the x and one unit in the y (or 45 degrees above the positive x axis). See what I just did there? i+j basically forms a triangle. i is one side, j is the other, and the resultant hypotenuse is i+j. Yay Pythagorean theorem, yay trigonometry.

    Code:
    i+j/|
      / |
     /  | j
    /   |
    ----
      i
    Imagine it like this:

    The arrow on the right is tank shell 1. It is our first vector. The arrow on the left is shell two, our second vector.

    Let us imagine that there are four armor plates at each of the four points of the tank, and that each shell deals four damage.

    Shell 1 hit EXACTLY in the middle of the right side. This means that the damage vector points straight left. All four damage gets applied to the right side's armor, making that armor go poof.

    Shell 2, however, hit somewhere between the left and the back. This means there is an x component and a y component to the damage, instead of just an x component like shell 1 had. We know that the x component and the y component together make four damage. Let's pretend that the shell hit exactly halfway between the left and the back, thus at an angle of 45 degrees between the two.
    Code:
             TANK IS HERE!111
             /|
            / |
           /  |
          /45d|
     4dmg/    |
        /     |2sqrt(2) dmg
       /      |or
      /       |2.83 dmg
     /        |
    ----------
      2sqrt(2) dmg
      or 2.83 dmg
    
    Now remember, Dizzy, before you sneeze again, that I started this post stating that it was a half-baked idea. Ideas really oughtn't be shot down unless they've been beaten to death in other threads, or unless there's a serious problem with it. Now I'll admit that when I came up with this idea while sitting in my car I was wondering if there might be the problem that you should now be able to see. I don't find exception with anyone who points out what the problem is, I find exception with those who find exception with my idea without knowing what the problem is first. Bad Dizzy, for hating it before you understood it.

    Now that the problem has become apparent, I believe I can work out a crazy solution to it.

    (spends some time with some paper and a pen...)

    I believe I've found how to scale the x and y components such that
    x + y = the damage the shell's supposed to deal.

    You multiply your damages that occur to each side by 1/(sin(theta)+cos(theta)). I believe. I'd scan this sheet o' paper in, but I lack a scanner. I'd use paint, but I dunno whar 2 uploadz. Hmmmmmmmmm.

    [​IMG]
    Putfile wins. Photobucket can go do nasty things to itself in a corner.

    Thar. I have done things. I don't believe I'm quite done yet, but I'm getting bored.
     
  14. Broccoli

    Broccoli Member

    Messages:
    1,635
    Likes Received:
    0
    Trophy Points:
    0
    This seems like a lot of processing for such a simple task. As sandbag said, if it hits the side, it should damage the side.
     
  15. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    I sense that most people may decide they don't like this, even though I've thought through almost everything needed to make it work (but not written all of it down).

    I still think it'd be cool and would probably improve the game, but chances are it's going to get no-ed. A hit directly on the side would damage entirely that side. A hit close to the center of a side would damage mostly that side. You'd only notice damage to sides that weren't the side hit until you started wandering away from the center of the side.

    Failing everything else, I think this would be an interesting thing for the devs to privately play-test someday, just to see if it actually improves things or is just a pain in the ass.

    I think I remember someone mentioning this might be a good system to distribute splash damage, and I can see how that might actually be the best application for this. Remember, though, that our tanks aren't circles, nor are they squares. You'd need to figure out how to re-scale your rectangular tank into a square to figure out proper, fair angles for damage application.

    Oh, and finally, remember that I usually get lost in my own posts. If it seems like I forgot what I was saying or where I was going... it's because I did!

    EDIT:

    In real life, if I hit a tank 3/4 of the way forward on the left side of the tank, and 3/4 of the way rearward on the left side of a tank, the damages don't stack. Unless the holes or impact sites overlap, they don't add to each other. If it takes two missiles at one spot to penetrate that tank, all I've done is successfully give myself two options for where to penetrate the armor.
     
    Last edited: May 7, 2007
  16. Private Sandbag

    Private Sandbag Member

    Messages:
    7,491
    Likes Received:
    0
    Trophy Points:
    0
    ok: this post is always referencing this: http://www.empiresmod.com/media/imp_medTank.jpg

    look at the second image down. now imagine that the shell hits above the second fully visable wheel from the right. according to the vector theorum, that would damage the front a bit and not all the side. wouldn't the be a bit strange? if you were hit on your broadside during a combat but because you didn't have much armour on the nose of your tank, the damage starts getting through that way?


    I can understand that if the explosion hits the corner it would be cool if it did some damage to both sides. but even with the current system, if it hits a corner, there's a 50- 50 chance that it'll hit either side which means that both sides will get even damage... albeit in a slightly statistical manner.

    ---
    summary: I still think that the current way is better.
     
  17. dizzyone

    dizzyone I've been drinking, heavily

    Messages:
    5,771
    Likes Received:
    0
    Trophy Points:
    0
    thats what I was trying to say in lame man's terms :/

    Something I can understand though is that if you would hit the front side of your right armor, like almost at the edge, the front armor would receive or absorb some of the damage to as at that point its behind the right armor plate, a simple dividing of the current armor plate could do this.

    It wouldn't be as bad as it could work in favour of the tank driver or the person shooting the tank depending his or her strategy.
    I don't know how this would work out with reflectiev armor though, as the point of that is to hit it from an angle no matter where the hit is placed.
     
  18. Shinzon

    Shinzon Member

    Messages:
    3,610
    Likes Received:
    0
    Trophy Points:
    0
    This sounds like a great idea, this could very well factor into other more advanced features...

    A cannon shot to the corner will take damage off from both sides, making it a bigger deal to aim; so you have to hit that plate precisley, and at the same time if you manage to angel your amor, you will take less damage is it is distrubted over 2 plates...

    I love the idea, and it wouldn't take all the much calculation for a computer...

    It certanly makes more sence to me then the current system...

    Artilery will be less usefull and nukes wont be sniper anti plate uber penetration, as that will calculate and take the damage off from the entire section of the tank!
     
  19. Niarbeht

    Niarbeht Member

    Messages:
    2,010
    Likes Received:
    0
    Trophy Points:
    0
    Wow. I have one supporter? This hurts my braienz!

    Anyway. It may LOOK like it takes a whole heck of a lot of calculation, but it can, like all things done with a computer, be simplified. It just depends on how you write it and how you do your variables.

    I can think of a LOT of ways to do this, but basically...

    theta=t (because I'm lazy and don't wanna find a theta character)
    You can start by placing sin(t) and cos(t) into variables.
    (this also uses some variables from previous things)
    c = base damage of weapon.
    i = the amount of damage in the x direction (the plate that is at 90 or 270 degrees that is getting damaged)
    j = the amount in the y direction (0/360 or 180)

    Now you figure the damages.

    i = (c * sint) / (sint + cost)
    j = (c * cost) / (sint + cost)

    You can see where variablizing things might be useful, as sint, cost, and sint + cost get used a lot.

    So...

    p = sint
    q = cost
    r = p + q

    i = (c * p) / (r)
    j = (c * q) / (r)

    This is supposing that setting them to variables goes faster than the function calls for sin and cos go. I'll need to set up a while loop test thinger soon.

    EDIT:
    According to my brother-in-law, a good optimizer will actually reduce BOTH implementations to the same thing. :-O
     
    Last edited: May 8, 2007
  20. FalconX

    FalconX Developer

    Messages:
    717
    Likes Received:
    0
    Trophy Points:
    0
    I seem to be missing a lot of your logic, Niarbeht. So instead of responding from an incomplete basis, I have 1 question: why?
     

Share This Page