Masalah yang Anda miliki dengan menghitung DPS dari rumus itu adalah karena apa yang Anda panggil BaseDamage
tampaknya bukan itu.
Dengan asumsi bahwa semua angka positif, BaseDamage / ( BaseDamage + Defense )
akan selalu menyelesaikan ke angka floating point di suatu tempat antara 1 dan 0. Tidak masalah jika Anda memiliki 10 BaseDamage
, 1.000 BaseDamage
atau 1.000.000 BaseDamage
, Anda akan selalu berada dalam kisaran itu. Di mana dalam kisaran itu tergantung pada bagaimana BaseDamage
senjata dibandingkan dengan Defense
target. Itu berarti apa yang benar - benar memengaruhi urutan besarnya Kerusakan nyata dari sebuah serangan sebagian besar adalah SkillDmg
pengganda.
Melihat sifat-sifat matematika ini, saya tidak akan benar-benar menyebut properti senjata ini BaseDamage
melainkan DefensePenetration
, karena ini menggambarkan kemampuan senjata untuk mengatasi pertahanan musuh dan masih melakukan sebagian besar kerusakannya. Ini mungkin benar-benar menjadi mekanik yang menarik untuk dimiliki (atau tidak ... itu sesuatu yang perlu Anda uji coba), tetapi tidak banyak bicara tentang tingkat kekuatan senjata.
Jadi bagaimana kita mengatasi masalah ini?
Ya, tidak ada solusi yang tepat untuk masalah ini. Tetapi perubahan yang mungkin melakukan apa yang ingin Anda lakukan (senjata dua kali lebih kuat = sekitar dua kali lebih banyak kerusakan) adalah menambahkan BaseDamage
sebagai faktor multiplikasi lainnya:
float realDamage = SkillDmg * BaseDamage * BaseDamage / (BaseDamage + Defense)
Jika Anda menyukai mekanik penetrasi pertahanan yang tidak sengaja Anda temukan, beginilah tampilannya dengan Penetration
stat senjata yang terpisah:
float realDamage = SkillDmg * BaseDamage * Penetration / (Penetration + Defense)
Hal yang menyenangkan tentang formula ini adalah ia berskala cukup baik:
- Bahkan ketika pertahanannya menyedihkan dibandingkan dengan nilai serangan, tidak pernah ada lebih banyak kerusakan daripada serangan. Ini memberi Anda batas atas pada seberapa banyak kerusakan yang dapat ditimbulkan karakter, yang membuat penyeimbangan jauh lebih mudah.
- Di sisi lain, tidak peduli seberapa tinggi pertahanan yang didapat, itu tidak akan pernah bisa sepenuhnya mengurangi kerusakan (kecuali melalui kesalahan pembulatan), jadi selalu ada ruang untuk perbaikan bagi bek dan tidak pernah ada serangan yang sama sekali tidak ada gunanya.
- Ketika Pertahanan dan BaseDamage (dan Penetrasi saat Anda menginginkannya) kira-kira sama, ada kira-kira setengah dari kerusakan Real yang sama seperti BaseDamage. Ini benar, tidak peduli seberapa besar nilainya. Ini juga yang menjadi dasar dasar estimasi DPS Anda. Cukup berasumsi bahwa musuh memiliki pertahanan sebanyak senjata memiliki serangan / penetrasi, yang berarti formula DPS Anda menjadi
AttackFrequency * BaseDamage / 2
Sunting: Berikut adalah beberapa tabel dengan nilai contoh:
Damage by Defense for single attack
Defense
| 0 | 35 | 50 | 100
---+-------+------+-------+-------
35 | 35 | 17.5 | 14.4 | 9.1
Attack 50 | 50 | 29.4 | 25.0 | 16.6
100 | 100 | 74.0 | 66.7 | 50.0
Dps assuming HitFrequency = 100 / Attack
Defense
| 0 | 35 | 50 | 100
---+-------+-------+------+-------
35 | 100 | 50.0 | 41.1 | 25.9
Attack 50 | 100 | 58.8 | 50.0 | 33.3
100 | 100 | 74.0 | 66.7 | 50.0
Seperti yang dapat Anda lihat dari angka-angka ini, senjata kecepatan tinggi kerusakan rendah masih nominal lebih kuat melawan musuh yang sama daripada senjata kecepatan rendah kerusakan tinggi jika mereka memiliki DPS yang sama menurut AttackFrequency * BaseDamage / 2
. Tetapi efeknya lebih terlihat pada musuh def tinggi daripada pada musuh def rendah. Keduanya sama-sama bagus pada musuh 0-def. Itu berarti senjata serangan cepat tidak terlalu buruk pada musuh dengan def rendah daripada pada musuh def tinggi.
Ini mungkin diimbangi oleh fakta bahwa senjata berkecepatan tinggi memberi pemain lebih banyak fleksibilitas mengenai distribusi kerusakan dan dengan demikian memungkinkan mereka untuk menghindari pemborosan DPS pada overkill. Ketika pemain menghadapi sejumlah besar musuh yang sangat lemah yang semuanya mati dengan satu pukulan, maka senjata 5 serangan per detik dapat membunuh 5 musuh per detik sementara senjata 1 serangan per detik hanya dapat membunuh 1 musuh per detik. Keuntungan lain yang mungkin muncul ketika Anda menambahkan keacakan serangan. Karena hukum angka besar, banyak serangan lemah akan menghasilkan output kerusakan yang lebih halus dan lebih dapat diandalkan daripada beberapa serangan kuat. Pemain biasanya mendapat manfaat dari keandalan. Tetapi ketika pertimbangan seperti itu tidak relevan karena mekanisme permainan Anda dan / atau desain pertemuan, Anda harus membuat senjata yang lebih cepat sedikit lebih kuat daripada yang seharusnya untuk mengimbanginya.
Salah satu cara untuk meningkatkan senjata kecepatan tinggi adalah pengenalan efek yang memicu dengan peluang x% per serangan dan tidak bergantung pada kerusakan. Ini akan jauh lebih kuat dengan senjata serangan cepat karena mereka akan memicu jauh lebih sering.
damage * damage / ( damage + defense)
), hanya tanpa memperhitungkan kerusakan skill. Alasan perbedaan DPS adalah karena Anda menggunakan pertahanan yang sama. Alasan mengapa Anda mendapatkan hasil yang berbeda adalah karena dengan formula itu, senjata lambat tapi kuat lebih baik melawan musuh def tinggi sementara senjata cepat tapi lemah lebih baik terhadap musuh def rendah (yang tampaknya masuk akal). Anda mengasumsikan musuh def tinggi dan menyeimbangkan kedua senjata melawannya, yang berarti Anda membuat belati dikuasai. Perhitungan DPS menunjukkan kekuatan itu.