Results 1 to 4 of 4

Thread: Doomrockets vs. Nukes: An investigation

  1. #1

    Icon1 Doomrockets vs. Nukes: An investigation

    tl;dr Doomrockets have yields of either 6 tons, 43 tons or ~270 tons if judging the explosion by detonation radius, fireball radius and crater radius respectively, all comparable to small tactical nukes.

    I've been modding Doomrockets recently and I was wondering how Doomrockets compare to nuclear weapons, given how players generally compare them to such. A simple eyeball test shows them to be either very small nukes or extremely large conventional bombs. So I thought I could try looking at a few Doomrocket explosion properties, comparing those properties with real life nukes to determine their explosive power in TNT equivalents.

    The first property I looked at was the detonation radius as defined by projectiles_explosions_tables. The key for the non-hero Doomrocket explosion is wh2_dlc12_army_abilities_warpstorm_doomrocket_upgrade, where, by default, the detonation radius is 40 meters (I assumed all measurements in Total War are in meters). Any soldier inside the detonation radius I think will be damaged by the amount defined in "Detonation Damage" or "Detonation Damage Ap," which, for Doomrockets, is 216. In turn, I corresponded this value to the 20 psi radius as defined in NUKEMAP, because the fatality rate at that pressure is about 100%. According to NUKEMAP, a 40 meter 20 PSI radius corresponds to a 6 ton nuclear explosion, which is extremely small for a nuclear weapon. For reference, here's a video of a 7.8 ton nuclear test. Despite the minuscule yield, there has been nuclear weapons designed with yields in this range, the most famous being the Davy Crockett nuke.

    The next property I decided to examine was the crater left behind from the explosion. The normal map used for the crater is crater_decal_impact_normal.dds. That DDS file has a resolution of 1024x1024. With regards to the crater, the crater has a lip radius of about 320 pixels and an inner radius of about 175 pixels (source), which means the lip and inner radii are 62.5% and 34.18% respectively of the DDS' width.

    Now let's take a look at how particle files work with regards to Doomrockets. Three XML files located in data.pack define the dimensions of Doomrocket particles:
    • wh2_dlc12_lib_warpstorm_doomrocket_cloud.xml
    • wh2_dlc12_lib_warpstorm_doomrocket_impact.xml
    • wh2_dlc12_warpstorm_doomrocket_impact.xml
    • wh2_dlc12_warpstorm_doomrocket_explosion.xml (only used for the initial Doomrocket explosion and has no impact on the fireball, crater or mushroom cloud)


    wh2_dlc12_lib_warpstorm_doomrocket_impact.xml and wh2_dlc12_lib_warpstorm_doomrocket_cloud.xml define emitters and their dimensions (emitters are essentially animations created from DDS files), while wh2_dlc12_warpstorm_doomrocket_impact (note the lack of "lib" in its name) takes the emitters defined in the lib XML files and organizes the emitters by instances. Each instance defines the emitters' scales, as well as which emitters to fire and how long the emitters fire.

    An emitter inside wh2_dlc12_lib_warpstorm_doomrocket_cloud.xml named "decal" uses the aforementioned DDS files to create the Doomrocket crater. That emitter has a BoundingBoxMax of (15,1,15) and a BoundingBoxMin of (-15,-1,-15). Inside wh2_dlc12_warpstorm_doomrocket_impact.xml, the instance named "impact" scales up the decal emitter by a factor of 2.5, which makes the width of the DDS image 37.5 meters. Therefore, we can conclude that the inner and lip radii are about 12.8m and 23.42m respectively (5.12 meters and 9.37 meters without the 2.5 scaling). According to NUKEMAP, this roughly corresponds to a 244 ton nuclear explosion if using the crater lip radius or a 292 to nuclear explosion if using the inner radius. Regardless of what value you choose, they're still both very small yields for nuclear weapons, but are nevertheless far more powerful than any conventional weapon. Those yields are, in fact, within the range of nuclear land mines.

    Finally, I examined the fireball the Doomrocket generated. Inside wh2_dlc12_warpstorm_doomrocket_impact.xml, the instance "fireball_ground" scales the emitter "firey_emission" (yes, fiery is misspelled) by a factor of 1.5. According to wh2_dlc12_lib_warpstorm_doomrocket_cloud.xml, where the "firey_emission" emission is located, "firey_emission" has a BoundingBoxMin of (-15,-1,-15) and a BoundingBoxMax of (15,20,15), which means the fireball is not really a sphere. For simplicity's sake, I rounded everything down to 15. In turn, taking into account the scaling, "fireball_ground" has a radius of 22.5 meters. Using NUKEMAP, this fireball radius corresponds to a 43 ton nuclear explosion, which, once again, is very small for a nuke, but not unheard of, as they too are within the range of nuclear land mines.

    With regards to the last two properties, it's one thing to guess a radii by looking at the XML files, but it's another thing to confirm these dimensions in-game, or, more specifically, in the Terrain Metadata Editor (aka Terry). Conveniently, Terry allows you to play any particle animation and allows you to place these particles (along with other entities) at precise coordinates. For my test, I placed the Doomrocket explosion VFX at (100,0,100) and I placed props at the crater and fireball radii to see if they really matched up with the estimated radii. Here's how the crater decal looks like in Terry, with shelf props at (100,0,112.8) and (100,0,123.42). It doesn't look perfect (and they're hard to see) but the shelves do look like they align with the lip and inner edges.

    As for the fireball, it was a little harder to tell whether the fireball actually had a radius of 22.5 meters. In this screenshot, where the explosion was rotated 90 degrees along the X-axis, the orangish fireball towards the bottom of the screenshot sort of extends past the props that act as a 22.5 meter boundary (it's also not really a sphere). On the other hand, you could just argue that that's just some noise and that 22.5 meters is a totally valid radius.

    Finally, here's some more references for those who want to more realistically mod the Doomrocket explosion. As mentioned earlier, wh2_dlc12_warpstorm_doomrocket_impact.xml scales the size of the crater and fireball emitters for the Doomrockets. Therefore, if you want to create a somewhat accurate looking Doomrocket explosion with a yield of 6, 43 or 244 tons, the following scales should be used inside wh2_dlc12_warpstorm_doomrocket_impact.xml:





    • Fireball scale values should be used for the "ignition_smoke", "slow_mushroom_cloud," "cloud_ring" and "omni_light" instances inside wh2_dlc12_warpstorm_doomrocket_impact.xml
    • Crater scale values should be used for the "impact" instance inside wh2_dlc12_warpstorm_doomrocket_impact.xml
    • Cloud_ring scale values should be used for the "cloud_ring" instance inside wh2_dlc12_warpstorm_doomrocket_impact.xml and the "vfxref_3032" instance inside wh2_dlc12_warpstorm_doomrocket_explosion.xml
    • "slow_ignition_smoke" and "impact_shockwave" are both located inside wh2_dlc12_warpstorm_doomrocket_impact.xml


    (also, are tables broken on twcenter.net?)

    And, once again, here are the dimension of the four properties if the scaling inside wh2_dlc12_warpstorm_doomrocket_impact.xml was set to 1.00:
    • Detonation radius - 40.00 meters
    • Inner crater - 5.12 meters
    • Outer crater - 9.37 meters
    • Ground fireball - 15.00 meters
    Last edited by Jon_the_XII; September 15, 2020 at 08:39 PM. Reason: table, wording, corrections

  2. #2

    Default Re: Doomrockets vs. Nukes: An investigation

    And, for reference, here is how each Doomrocket instance look like:

    "ignition_smoke"

    Spoiler Alert, click show to read: 




    "fireball_ground"

    Spoiler Alert, click show to read: 





    "impact_shockwave"

    Spoiler Alert, click show to read: 





    "slow_mushroom_cloud"

    Spoiler Alert, click show to read: 





    "slow_ignition_smoke"

    Spoiler Alert, click show to read: 





    "omni_light"

    Spoiler Alert, click show to read: 




    "cloud_ring"

    Spoiler Alert, click show to read: 





  3. #3

    Default Re: Doomrockets vs. Nukes: An investigation

    I've working on a Doomrocket mod that uses custom VFX files and I've got some observations.

    First, with regards to the "impact_shockwave" instance inside wh2_dlc12_warpstorm_doomrocket_impact.xml, I felt like the default "impact_shockwave" effect was a little slow compared to my detonation speed (located inside projectiles_explosions_tables), which I set to 225 m/s, the maximum wind speed for a 20 psi overpressure. I found that setting start_time_min and start_time_max to 0.00, and, under the "shockwave" emitter, setting particle_lifetime_bias_min, particle_lifetime_bias_max, emitter_lifetime_bias_min and emitter_lifetime_bias_max to 2.00 will make a nice looking "impact_shockwave" that will match the detonation speed.

    Another thing I learned is that all PackFiles with custom VFX .xml files have to be set to movie for it to work in Warhammer II. Even though my mod contained both regular db tables, the fact that my PackFile had custom VFX files meant my PackFile had to be a movie. The Total War Mod Manager would probably be recommended for my mod.

    Finally, it turns out modifying particles requires you to use a lot of tables. Here is a list of db tables, in alphabetical order, I've used so far for my mod:
    • battle_entities_tables
    • battlefield_engines_tables
    • land_units_tables
    • main_units_tables
    • missile_weapons_tables
    • particle_effects_tables
    • projectile_displays_tables
    • projectile_impacts_tables
    • projectiles_explosions_tables
    • projectiles_tables
    • unit_description_short_texts_tables
    • unit_variants_tables
    • units_custom_battle_permissions_tables


    And here's a flowchart showing how these tables are linked:

    Spoiler Alert, click show to read: 



  4. #4

    Default Re: Doomrockets vs. Nukes: An investigation

    I've decided to add an additional overpressure effect and radiation damage to my Doomrocket mod. The additional overpressure effect will match the 5 PSI overpressure radius, while the radiation damage will match the 1000 rem radius, as simulated by NUKEMAP. I decided that the 5 PSI overpressure will do only regular detonation damage, while the radiation will do only armor piercing damage.

    To do this in game, I went to projectiles_explosions_tables and I added shrapnel to the main explosion to simulate radiation damage. Then I added a second shrapnel to the radiation shrapnel to simulate the 5 PSI radius, essentially spawning a chain of shrapnel. Inside projectile_shrapnels_tables, I set amount to 1 and sector angle to 0. Each shrapnel also requires a corresponding projectiles_table entry and projectile_explosions_tables entry to work. For the shrapnels' projectiles_table entries, I found setting Effective Range to 2, Minimum Range to 1, Max Elevation to 88 and Muzzle Velocity to 100 would almost immediately cause the shrapnels to explode upon detonation of the Doomrocket. Then I filled out the shrapnels' projectiles_explosions_tables entries, setting the radii to match the 5 PSI overpressure and the 1000 rem distances. While radiation in real life travels at the speed of light, I found the detonation damage to not work if you set Detonation Speed to a ridiculously high number. In turn, I used a detonation speed of 1500 for the radiation.


    Finally, to confirm that this shrapnel chaining method works, I filled out the Contact Phase Effect column for the shrapnel entries so that the game will give me a notification of when the shrapnels' explosions reach my units. Here's Ikit Claw's unit card looks like when I give him a taste of his own medicine:

    Spoiler Alert, click show to read: 




    The black circle icon at the very bottom left indicates warpstone poisoning. The white square adjacent to the warpstone poisoning icon is my custom specialty ability phase that I created for the overpressure.
    Last edited by Jon_the_XII; September 18, 2020 at 10:06 AM. Reason: spelling

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •