Announcement

Collapse

Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.



In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.



All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

[Confirmed] Dota 2 Lacks the "Averagizer" for the Attack Damages and Gold Bounties

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Confirmed] Dota 2 Lacks the "Averagizer" for the Attack Damages and Gold Bounties

    How could I not use that beautiful thread title, ThoAppelsin.

    DotA 1 uses a "dice" system to generate random damage over a damage range and to generate random bounties for killing units. Basically, base damage and damage from attributes is added to the result of rolling X number of Y-sided dice, or base bounty is added to such. When the X number of dice is set to more than one, the probability distribution trends towards the middle of the range. In layman's terms, several units are supposed to deal damage or award bounty closer to their average over their damage of bounty range.

    The units that this affects are listed in this Brainstorming thread (I can clean it up if requested). I checked over the multiple damage dice units once, and didn't double-check the multiple bounty dice units with DotA 1 (I got them from the PlayDotA unit stats page, so if someone specifically requests I double-check a unit I could). Other units not listed use a single die and are not bugged.

    Proof: I set a level 1 Chaos Knight (three dice, wide damage range) with three hyperstones attacking a level 1 Io (0 armor) stacked with Pipes of Insight and a Bloodstone, with a Witch Doctor providing Voodoo Restoration to the Io. I came back to collect the Combat Log every two minutes and collected 2159 samples.

    Here is a comparison between the distribution of the values I obtained and the expected frequencies of a hero with three damage dice:

    ckdmgdistro.png

    The red marks what should be happening, while the blue marks what actually happened. Notice that Chaos Knight, despite having an extremely wide damage range, should hit for approximately 64 damage more often than he should hit for 49 or 79. Dota 2 seems to simply use a standard random number generator to generate a number between AttackDamageMin and AttackDamageMax. I haven't tested bounties, however since bounties are listed the for units the same way as damage (BountyGoldMin and BountyGoldMax with no indication of number of dice) it's extremely probable that they work the same way.

    Before someone asks (someone's going to ask), this has nothing to do with pseudo-random distribution, only with damage from auto-attacks and bounties from most neutrals.

    Here's the results from my tests: ckdicetest.txt

    Thanks to Wyn-Ryder for the expected distribution and Excel help, and thanks to ThoAppelsin for...moral support...
    Last edited by imxtrabored; 04-25-2013, 05:17 AM.

  • #2
    One thing to note is that your theoretical and dota 2 sample sizes are different, and as such the distribution is a bit skewed, so it probably shouldn't be graphed on the same axes - but anyway it shows qualitatively that the distribution models are fundamentally different.

    For reference I put my VB code for excel below:

    It works for dice of sides of less than approximately 10000 (only due to int overflow) and up to 3 dice, with included error checking for using more than 3 dice, but none for negative values etc.

    Code:
    Sub Diceroll()
    
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim dice As Integer
        Dim sides As Integer
        dice = 3                                                            'Can't be bothered having a proper input for this, but easy to just edit the code - can now specify #dice & dice rolls
        sides = 11
        Dim answer() As Integer
        ReDim answer(dice To sides * dice)
        i = 1                                                               'Counter 1
        j = 1                                                               'Counter 2
        k = 1                                                               'Counter 3 - there should probably be a loop to set all values of "answer" to 0 somewhere here, but bad coding by me :P
        sides = 11
        If (dice > 3) Then
            Cells(1, 1).Value = "dice must be less than or equal to 3"
            GoTo Finish
        End If
        Do While (i <= sides)                                               'Die 1
            If (dice = 1) Then
                answer(i) = answer(i) + 1
            End If
            Do While (j <= sides And dice >= 2)                             'Die 2
                If (dice = 2) Then
                    answer(i + j) = answer(i + j) + 1
                End If
                Do While (k <= sides And dice >= 3)                         'Die 3
                    answer(i + j + k) = answer(i + j + k) + 1               'Counting all possible combination that make 3, 4, 5, 6 etc.
                    k = k + 1
                Loop
                j = j + 1
                k = 1
            Loop
            i = i + 1
            j = 1
            k = 1
        Loop
        i = 0
        Do While (i < (sides - 1) * dice + 1)                               'Just an output function for my excel :D
            Cells(i + 1, 1).Value = answer(dice + i)
            i = i + 1
        Loop
    Finish:
    End Sub
    Last edited by Wyn-Ryder; 04-25-2013, 04:43 PM.
    Comprehensive Damage Reduction & Amplifications Dota 2 Guide

    Comment


    • #3
      I adjusted for that. The Theoretical values I used in the chart are that array that goes 1, 3, 6, 10... (the relative frequency of each damage value) multiplied by (2159/1331).

      Comment


      • #4
        Ah. Nevermind me then :P I probably should've looked a bit harder.
        Comprehensive Damage Reduction & Amplifications Dota 2 Guide

        Comment


        • #5
          If you could squint that hard at an Excel chart and figure that out immediately that would be pretty commendable. ;33

          It's totally fine, recommended even, to doubt things I say about statistical analysis. I've been getting steadily worse at math for a while now, and I don't think I was ever great at statistics.

          edit: that said ive totally done this bug thing right dont even question it
          Last edited by imxtrabored; 04-25-2013, 05:11 AM.

          Comment


          • #6
            added to sticky.
            Make sure to read the Forum Rules as well as the stickied Threads of the Forum Section you are posting in.

            Contributions i'd like to highlight:
            My Suggestion: Coaching System
            My Sticky: Intended Changes List
            My Challenge: Completely Fixed Hero Challenge: Skywrath Mage

            Comment


            • #7
              Yes please. Really, this may sound stupid, but CK is stupidly random already and getting the "dice roll" system would be just good.
              EN TARO ADUN, NOBLE ONE

              Comment


              • #8
                I think the lack of experience for Valve caused this and pseudo random distribution (And other like this things) to not apply to game from the beginning
                Maybe you could check for other numerical things in dota 2 that doesn't use good systems
                My English is not great and i know it

                Comment


                • #9
                  This is like one of those things where you could release the game for years and no one would ever notice the difference if they didn't actually look at wc3 map stuff :33
                  Also Rainer I totally know what you mean and how you feel but that sort of makes sense and sort of doesn't and I chuckled anyways :33

                  Comment


                  • #10
                    I don't really understand the jargon here, but to be short and sweet, you're saying that ck no longer has the ridiculously large damage range from wc3 but however has a smaller damage range now? because I've noticed that ck's crit values don't fluctuate much and instead are at insanely high values considering he can crit around anywhere to 400 ~ 700 with no items at level 25

                    Comment


                    • #11
                      Originally posted by jokertard View Post
                      I don't really understand the jargon here, but to be short and sweet, you're saying that ck no longer has the ridiculously large damage range from wc3 but however has a smaller damage range now? because I've noticed that ck's crit values don't fluctuate much and instead are at insanely high values considering he can crit around anywhere to 400 ~ 700 with no items at level 25
                      ckdmgdistro.png
                      should explain it pretty well.
                      Make sure to read the Forum Rules as well as the stickied Threads of the Forum Section you are posting in.

                      Contributions i'd like to highlight:
                      My Suggestion: Coaching System
                      My Sticky: Intended Changes List
                      My Challenge: Completely Fixed Hero Challenge: Skywrath Mage

                      Comment


                      • #12
                        No, he said, that the damage range is the same as in wc3. However, it is completly random which values occures (all have the same chance) while the "spiking" values (very high or very low) should be less frequent and the average value should appear the most. Didn't knew wc3 used a gauss bell :x
                        If you think I've closed or deleted a post unjustified, feel free to PM me and I'll explain it to you/discuss it with you further.

                        Comment


                        • #13
                          Not a prng with a normal distribution, not a hardcoded gauss bell, but as stated, an even distribution prng rolling multiple dice, which approximates a gauss bell. With only 1 die, its an even distribution.

                          Valve could either use the same dice system, or use a different PRNG function to directly distribute normally. It would be slightly different for heroes like CK, and much different for heroes with 1 die, but make things much simpler, and Id argue, improved. Just make damage/bounties use a normal distribution is all.

                          Comment


                          • #14
                            It should be noted that:
                            1. The "spiking values" from my tests is simply because I didnt do 1 million samples. Theoretically, the "Actual" line flattens out with more samples, since Valve is using just a normal RNG.
                            2. As noted in the Brainstorming list linked to in the OP, different units use different amounts of die. With two die, the curve simply resembles a triangle with straight sides of slope 1. With more dice, the "width" of the curve decreases, meaning damages and bounties using more dice should fall even closer to average than damages and bounties using less dice.
                            3. Plenty of units only use one damage/bounty die. Notably, lane creeps all use only one die for damage and bounty, and T1 and T2 towers use one damage die. Some neutral and summon bounties use up to 6-7 dice (Roshan uses 5). Heroes not on the list use one die.

                            Comment


                            • #15
                              Good catch.

                              Comment

                              Working...
                              X