fighting-konoha/docs/balance-report.md

12 KiB
Raw Blame History

Laporan keseimbangan karakter

Dibuat oleh node tests/harness.mjs tests/balance.mjs (simulator RENCANA 5.1). Tanggal: 2026-10-05 · Jalan: Setelah penyetelan.

  • Tingkat CPU: hard · ronde per pasangan arah: 8 · karakter: BRO WO, MEGA CHAN, SON OF SOLO MAN, ETHANOL MAN, A NICE, SOLO MAN, GUFRON.
  • Satu ronde = satu pertarungan sampai K.O. atau waktu habis (90 dtk), arena Bellora, gaya Seimbang, tanpa layar VS. Pasif dan kelemahan karakter ikut aktif.
  • Tiap pasangan dimainkan di kedua posisi (A sebagai bot lalu B sebagai bot) dan digabung. Pertandingan cermin (karakter sama) hanya dipakai sebagai pembanding bot terhadap CPU, tidak masuk persentase karakter.
  • Bot pemain (tests/bot.mjs) mendekat, memukul dan menyambung kombo, memakai skill saat jaraknya cocok dan akan kena, memblok atau parry sebagian serangan yang terbaca setelah jeda reaksi, kadang melompati proyektil, dan membalas ultimate lawan dengan ultimate (atau memakainya sendiri setelah 8 dtk). Tidak memakai lempar, jurus perintah, atau jurus toko, dan tidak menghindari genangan.
  • Total ronde dimainkan: 392 (termasuk cermin). Ronde macet: 0.

Persentase menang per karakter

Persen menang = (menang + setengah seri) dibagi jumlah ronde lawan non-cermin, gabungan kedua posisi. Sisa HP dari 200.

# Karakter Menang % Tier M-K-S Menang sbg bot % Menang sbg CPU % Sisa HP saat menang Sisa HP akhir ronde Durasi rata-rata (dtk)
1 MEGA CHAN 58,3 S 56-40-0 100,0 16,7 45,1 26,3 18,8
2 GUFRON 56,3 A 54-42-0 81,3 31,3 35,4 19,9 18,8
3 SON OF SOLO MAN 53,1 A 51-45-0 77,1 29,2 28,6 15,2 17,8
4 A NICE 49,0 B 47-49-0 87,5 10,4 28,7 14,1 17,6
5 BRO WO 44,8 C 43-53-0 66,7 22,9 33,4 15,0 17,5
6 ETHANOL MAN 44,8 C 43-53-0 79,2 10,4 45,6 20,4 17,4
7 SOLO MAN 43,8 C 42-54-0 72,9 14,6 46,4 20,3 17,7

Posisi: bot melawan CPU

  • Pertandingan non-cermin: bot menang 80,7%, CPU menang 19,3%, seri 0,0% (336 ronde).

  • Pertandingan cermin (karakter sama, hanya cermin posisi): bot menang 76,8%, CPU menang 23,2%, seri 0,0% (56 ronde). Selisih dari 50% menunjukkan keunggulan struktural satu posisi (urutan pemrosesan, kebal saat jurus, bonus counter hanya untuk pemain); karena tiap karakter dimainkan di kedua posisi, selisih ini saling meniadakan di persentase per karakter.

  • Ultimate pertama dalam ronde (semua ronde): bot lebih dulu 0,0%, CPU lebih dulu 34,4%, hampir bersamaan (selisih di bawah 0,3 dtk, saling kunci) 65,6%, tak ada yang memakai 0,0%.

Tabel menang-kalah 7 x 7

Persen menang karakter baris terhadap karakter kolom, gabungan kedua posisi (M-K-S ada di tabel berikutnya).

baris \ kolom BRO WO MEGA CHAN SON OF SOLO MAN ETHANOL MAN A NICE SOLO MAN GUFRON
BRO WO · 50% 44% 50% 56% 56% 13%
MEGA CHAN 50% · 50% 56% 69% 56% 69%
SON OF SOLO MAN 56% 50% · 75% 44% 63% 31%
ETHANOL MAN 50% 44% 25% · 50% 63% 38%
A NICE 44% 31% 56% 50% · 50% 63%
SOLO MAN 44% 44% 38% 38% 50% · 50%
GUFRON 88% 31% 69% 63% 38% 50% ·

Menang-kalah-seri (ronde)

baris \ kolom BRO WO MEGA CHAN SON OF SOLO MAN ETHANOL MAN A NICE SOLO MAN GUFRON
BRO WO · 8-8-0 7-9-0 8-8-0 9-7-0 9-7-0 2-14-0
MEGA CHAN 8-8-0 · 8-8-0 9-7-0 11-5-0 9-7-0 11-5-0
SON OF SOLO MAN 9-7-0 8-8-0 · 12-4-0 7-9-0 10-6-0 5-11-0
ETHANOL MAN 8-8-0 7-9-0 4-12-0 · 8-8-0 10-6-0 6-10-0
A NICE 7-9-0 5-11-0 9-7-0 8-8-0 · 8-8-0 10-6-0
SOLO MAN 7-9-0 7-9-0 6-10-0 6-10-0 8-8-0 · 8-8-0
GUFRON 14-2-0 5-11-0 11-5-0 10-6-0 6-10-0 8-8-0 ·

Sebelum dan sesudah penyetelan

Sebelum: jalan "Sebelum penyetelan" (2026-10-05, 8 ronde per pasangan arah, benih 11). Sesudah: jalan ini (benih 11).

Karakter Sebelum % Sesudah % Selisih Tier sebelum Tier sesudah
MEGA CHAN 78,1 58,3 −19,8 S S
GUFRON 71,9 56,3 −15,6 S A
SON OF SOLO MAN 50,0 53,1 +3,1 B A
A NICE 52,1 49,0 −3,1 A B
BRO WO 41,7 44,8 +3,1 C C
ETHANOL MAN 27,1 44,8 +17,7 C C
SOLO MAN 29,2 43,8 +14,6 C C

Cara membaca dan batasan

  • Angka berasal dari simulasi bot melawan CPU, bukan kebenaran mutlak. Dengan 8 ronde per pasangan arah, tiap karakter punya sekitar 96 ronde; galat acak sekitar ±5,1 poin persen (satu simpangan baku), jadi selisih di bawah itu belum berarti.
  • Ultimate dan mode pasca-ultimate mengunci lawan beberapa detik, sehingga siapa yang lebih dulu dan seberapa mematikan rangkaian ultimate-nya menentukan sebagian besar ronde. Bot sengaja membalas ultimate lawan agar yang diukur adalah adu rangkaian, bukan sekadar siapa menekan duluan.
  • Bot tidak menghindari genangan api atau asam dan tidak memakai lempar atau jurus toko, jadi karakter berbasis genangan mungkin sedikit terlalu tinggi dibanding pemain manusia yang pandai menghindar.
  • Batas tier: S ≥ 58% (Dewa Arena), A ≥ 52% (Jagoan Kampung), B ≥ 46% (Lumayan Lah), selebihnya C (Butuh Semangat).

Penyetelan angka (RENCANA 5.3)

Hasil awal (benih 11, 8 ronde per pasangan arah): MEGA CHAN 78,1% dan GUFRON 71,9% di atas batas 65%, ETHANOL MAN 27,1% dan SOLO MAN 29,2% di bawah 35%. Angka disetel dalam empat putaran kecil: hanya angka data (manifest karakter, browo.js, content/passives.js), tanpa mengubah mekanik.

Karakter Perubahan angka (sebelum → sesudah)
MEGA CHAN ultimate: banteng 8 → 7; mode ultimate TANDUK NERAKA: damage per banteng 7 → 6; pasif KEPALA BANTENG: damage diterima −8% → −5%
GUFRON skill 1 BAHASA SEMUT: damage per semut 4 → 3 dan jumlah semut 10 → 8; ultimate: gelombang semut 9 → 8; mode ultimate: 12 → 11; pasif: pulih skill +12% → +5%
SOLO MAN skill 1 ESEMKA RUSH 20 → 22; skill 2 SARUNG PUTAR 16 → 18; ultimate KONVOI ESEMKA: mobil 6 → 7 dan damage per mobil 8 → 9; mode ultimate: mobil 9 → 10; kelemahan: damage keluar −6% → −3%
ETHANOL MAN skill 2 ETHANOL SPLASH 18 → 20; ultimate BANJIR BIOETANOL: damage per gelombang 9 → 10; mode ultimate: damage per pilar 4 → 5; kelemahan: pulih cooldown −5% → −4%
BRO WO ultimate HUTAN SAWIT: damage per pohon 3 → 4
A NICE, SON OF SOLO MAN tidak diubah

Riwayat (persen menang, benih 11, 8 ronde per pasangan arah; satu putaran = satu kali jalan simulator sesudah beberapa perubahan sekaligus):

Karakter Awal Putaran 1 Putaran 2 Putaran 3 Akhir (putaran 4, tabel di atas)
MEGA CHAN 78,1 53,1 47,9 52,1 58,3
GUFRON 71,9 70,8 71,9 54,2 56,3
SON OF SOLO MAN 50,0 46,9 55,2 52,1 53,1
A NICE 52,1 47,9 46,9 47,9 49,0
BRO WO 41,7 45,8 45,8 46,9 44,8
ETHANOL MAN 27,1 49,0 51,0 55,2 44,8
SOLO MAN 29,2 36,5 31,3 41,7 43,8

Putaran 4 menambah buff kecil BRO WO (belum tersentuh sebelumnya, terendah pada jalan konfirmasi). Jalan konfirmasi dengan benih bot lain (benih 23, keadaan akhir, tidak tertulis ke laporan): GUFRON 62,5 · MEGA CHAN 52,1 · ETHANOL MAN 51,0 · A NICE 51,0 · SON OF SOLO MAN 49,0 · BRO WO 42,7 · SOLO MAN 41,7. Pada kedua jalan semua karakter berada di antara 41% dan 63%. Selisih antar putaran sebesar 5 sampai 10 poin masih wajar dari galat acak, jadi jangan membaca satu angka sebagai ukuran pasti.

Temuan penting

  1. Rangkaian ultimate menentukan hampir semua ronde. Terhadap sasaran pasif, ultimate pertama ditambah ultimate mode (pasca-ultimate) menghasilkan 110 sampai 148 damage dari 200 HP sebelum penyetelan (MEGA CHAN 148, A NICE 134, SON OF SOLO MAN 129, BRO WO 127, SOLO MAN 126, GUFRON 126, ETHANOL MAN 110), dan selama itu lawan terkunci. Bot yang dikunci CPU kehilangan rata-rata sekitar 155 HP per ronde dari rangkaian ultimate dan ultimate mode (diukur pada GUFRON dan MEGA CHAN sebagai CPU, 18 ronde masing-masing). Karena itu hampir semua penyetelan di atas menyentuh angka ultimate, dan satu atau dua damage per denyut bisa menggeser persen menang belasan poin.
  2. Penutup ultimate menjatuhkan lawan. Penutup (finisher) membuat sasaran jatuh dan bangun sekitar 2,1 dtk, dan denyut ultimate mode yang jatuh pada waktu itu tidak mengenai (sasaran jatuh dianggap tidak hidup oleh bwAlive). Memakai ultimate mode segera setelah rangkaian pertama membuang beberapa denyut; bot menunggu lawan bangun.
  3. CPU hampir tidak pernah memakai skill 2 ETHANOL MAN dan SOLO MAN (pada uji pasangan tests/pairs.mjs: SOLO MAN 0 dari 7 ronde, ETHANOL MAN 1 dari 7). Keduanya berjenis area tanpa ahead (jangkauan 135 dan 140), lebih pendek dari pukulan dasar (161), dan cpuPick selalu mendahulukan pukulan dasar, sedangkan penutup kombo (cpuFollowUp) praktis tidak pernah memenuhi cpuLands (sisa stun pemain lebih pendek dari waktu kena skill). Akibatnya kedua karakter ini lebih lemah sebagai lawan CPU daripada angka kitnya. Ini celah AI (mekanik), bukan angka; uji pasangan (tests/pairs.mjs) mencatatnya sebagai peringatan. Bila AI atau datanya diperbaiki (misalnya ahead di manifest), jalankan ulang simulator dan setel ulang kedua karakter.
  4. Posisi bot punya keunggulan besar. Bot menang 77 sampai 85% pada semua jalan, juga pada pertandingan cermin. Penyebabnya struktural (pemain kebal saat skill dan ultimate, bonus counter 25% hanya untuk pukulan pemain, urutan pemrosesan hero lebih dulu) ditambah bot yang cukup rapi. Persen menang per karakter menggabungkan kedua posisi sehingga keunggulan ini saling meniadakan, tetapi banyak pasangan berakhir 8-8-0 (bot menang di kedua posisi), yang berarti hasilnya ditentukan posisi dan bukan karakter. Resolusi pengukuran jadi lebih kasar; untuk keputusan penyetelan pakai BAL_N 12 atau lebih, atau lemahkan bot (BAL_BOT).
  5. Pasangan paling timpang (jalan akhir): GUFRON atas BRO WO 88% (14-2), SON OF SOLO MAN atas ETHANOL MAN 75%, MEGA CHAN atas A NICE dan atas GUFRON 69%. Pasangan GUFRON dan BRO WO layak diperiksa lebih dulu pada penyetelan berikutnya.
  6. Kebijakan ultimate bot menentukan apa yang diukur. Pada percobaan awal bot memakai ultimate sendiri pada detik ke-5 seperti CPU tanpa membalas, dan menang sekitar 93% ronde apa pun karakternya (siapa yang menekan duluan menang; tidak informatif). Maka bot kini membalas ultimate lawan dalam waktu reaksi: sekitar dua pertiga ronde menjadi adu rangkaian yang hampir bersamaan, dan sepertiga sisanya CPU lebih dulu (biasanya bot sedang terkena serangan atau sedang menjalankan skill saat CPU mulai).

Menjalankan ulang

BAL_N=8 BAL_WORKERS=2 BAL_LABEL="Setelah penyetelan" BAL_BASE=docs/balance-before.json BAL_JSON=docs/balance-after.json BAL_TIERS=1 \
  node tests/harness.mjs tests/balance.mjs 2026-10-05

BAL_BASE memakai hasil sebelum penyetelan (docs/balance-before.json, benih 11, N=8) untuk tabel perbandingan, BAL_TIERS=1 menulis ulang content/tiers.js, dan bagian ini (di bawah penanda catatan manual) dipertahankan. Hasilnya sama untuk benih, N, dan jumlah pekerja yang sama.