jcw780 / wows_shell

C++ Ballistics Calculator for World of Warships

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

wows_shell

License GitHub commit activity Discord

  • C++ header only library for calculating shell performance in World of Warships
  • Experimentally verified to be nearly identical to the World of Warships ballistics model

Legal

  • All copyrighted material provided by Wargaming.net are owned by Wargaming.net.
  • All other material is available under the MIT License.

Original Model Information & Source Code:

Original Model:

Revised Model:

Features:

Shell Flight

Computes shell flight path.

At Impact:

Outputs:

  • Angle of Impact
  • Impact Velocity
  • Raw, Belt/Deck, Normalization Adjusted Penetration
  • Shell flight time (Real / In-game)

Ability to change trajectory computation method

  • Forward Euler (default - also in-game method)
  • Runge-Kutta 2 and 4
  • Adams-Bashforth 5

Lateral Angles:

Computes lateral angles where penetration, AP fuzing, and ricochets occur while adjusting for impact angle and vertical armor inclination.

Definition: Angles where that represent the horizontal angling of a ship:

  • Bow-in: 90 degrees
  • Full-broadside: 0 degrees

Outputs:

  • Maximum Lateral Angle for Penetration
  • Minimum Lateral Angle for Fusing
  • Ricochet Lateral Angles

Dispersion

Computes dispersion approximations based on experimental data.
Outputs:

  • Dispersion Types:
    • Horizontal Dispersion
    • Vertical Dispersion
    • Area Dispersion
  • Statistical Types
    • Max Dispersion
    • Standard Deviation of Dispersion
    • 50% Error Radius

Post-Penetration:

Shell detonation distance after penetration while adjusting for ship angling, and vertical armor inclinations.

Ability to modify the way the calculations are done

  • Enable or Disable Normalization changing direction
  • Linear estimation or full air drag modeling

Fitting:

Capability to fit shells to real world data using gradient descent.

  • Air Drag Coefficient
  • Krupp

Compatibility:

  • Requires C++17 supporting compiler
  • Supports multithreading and vectorization for improved performance

Extensions:

Python

  • Requires Pybind11
  • Tested with Python 3.7.4 (Anaconda), 3.8.5
  • Available from PyPI pip install wows-shell

WebAssembly

Future Goals:

  • Wiki / Tutorial
  • Extend more features to Python and WebAssembly
  • Will continue to update the model when new information is acquired

About

C++ Ballistics Calculator for World of Warships

License:MIT License


Languages

Language:C++ 76.5%Language:Python 10.2%Language:JavaScript 9.8%Language:CMake 1.7%Language:Batchfile 1.3%Language:HTML 0.6%