Saya ingin membuat simulator (pada dasarnya untuk tujuan pengujian) untuk permainan (League of Legends).
Dasar-dasar permainan:
Anda memiliki pahlawan yang memiliki beberapa statistik:
- Titik Kesehatan
- Kerusakan Serangan
- Kecepatan serangan
- Baju zirah
- Penetrasi Armor
- Kecepatan pergerakan
Hero dapat memiliki 4 skill (Anda mendapatkan satu skillpoint di setiap level) (Mereka diaktifkan secara manual, sebagian besar waktu, memiliki cooldown, damage, attackpower / attack scale scale ratio, dan level skill) + skill pasif
Anda dapat membunuh pahlawan musuh, atau monster netral, mereka memiliki statistik yang sama:
- Titik Kesehatan
- Kerusakan Serangan
- Kecepatan serangan
- Baju zirah
Apa yang ingin saya lakukan:
Buat alat untuk menguji apakah item tertentu, atau peningkatan stat tertentu akan mempercepat kekuatan / kecepatan membunuh Anda.
peta: http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg
Contoh stat:
- Hp: 420
- Iklan: 55
- AttackSpeed: 0,613 (serangan / s -> setiap serangan pada 1 / 0,613 s)
- penetrasi baju besi: 25
Karakter akan secara otomatis menyerang musuh dengan kecepatan 1 / serangan, dan merusak dengan serangan serangan (ada formulasi untuk menghitung kerusakan, tapi itu tidak penting dalam fase ini kurasa), setelah mereka mati, pindah ke yang berikutnya dengan kecepatan gerak ( Anda dapat melihat kamp-kamp di peta, tengkorak kuning)
Saya sedang memikirkan algoritma:
Saya pikir jika saya hanya membuat untuk dari i = 0 ke i = 30000 (menghitung ms), jadi saya bisa memeriksa hp musuh dan hp saya juga di setiap ms ternyata sangat buruk (cpu cukup berat, dan saya ingin untuk meletakkan beberapa acak di dalamnya, jadi saya harus bisa meringkas iterasi 1k, yang tidak mungkin)
Kedua, saya pikir saya hanya harus melakukan untuk dari saya = 1 hingga 30, dan memeriksa setiap detik, dan memeriksa apa yang terjadi di detik terakhir, tetapi beberapa monster netral berada di kamp besar (hingga 4 monster), dan dengan cara ini kode semakin rumit dan rumit.
Saya akan membuat utas untuk setiap pemain / monster, dan begitu mereka selesai mencari ketika mereka mati, dan mengurangi hp pemain.
Pertanyaan saya, apakah ini cara yang tepat untuk pergi?
TLDR: Saya ingin membuat alat untuk membuat analisis (iterate 1k dan menghitung rata-rata) tentang game yang peningkatan stat akan membuat karakter membunuh monster netral yang lebih cepat.
Saya lebih suka java, tetapi atm saya terjebak pada algoritma.
@Karoly S: Yap, ini salahku, .com -> .eu
Saya sudah mengerjakan ini:
Saya memeriksa sisa waktu pada setiap objek (skill pemain, serangan otomatis, buff), dan selalu memilih waktu yang paling singkat, dan menyimpan last_time, dan menambahkan waktu ke waktu, pada putaran berikutnya saya menghitung waktu dengan (waktu- terakhir kali)
Jika objek memiliki sisa waktu 0, ia akan melakukan apa pun yang perlu dilakukan.
Saya tidak tahu apakah itu cara yang efisien atau tidak, tapi itu yang terbaik yang bisa saya lakukan.
Jawaban:
Alternatif untuk simulasi frame-by-frame:
Anda bisa mendapatkan semacam perkiraan yang wajar untuk simulasi dengan rumus seperti
Anda juga dapat mempertahankan antrean bergerak, sehingga Anda mensimulasikan per-gerakan, bukan per-centang:
sumber