อัลกอริทึมสำหรับเครื่องมือในการสร้างทฤษฎียานบนพื้นฐานของเกม (League of Legends)


10

ฉันต้องการสร้างแบบจำลอง (โดยทั่วไปสำหรับการทดสอบ) สำหรับเกม (League of legends)

พื้นฐานของเกม:

คุณมีฮีโร่ที่มีสถิติ:

  • จุดสุขภาพ
  • โจมตีความเสียหาย
  • ความเร็วโจมตี
  • เกราะ
  • การเจาะเกราะ
  • ความเร็วในการเคลื่อนที่

ฮีโร่สามารถมี 4 ทักษะ (คุณจะได้รับหนึ่งแต้มทักษะในแต่ละระดับ) (พวกมันถูกเปิดใช้งานด้วยตนเองเกือบตลอดเวลามีคูลดาวน์ดาเมจอัตราส่วนโจมตีต่อพลังโจมตี / การโจมตีระดับโจมตีและระดับทักษะ) + ทักษะแบบพาสซีฟ

คุณสามารถฆ่าฮีโร่ศัตรูหรือสัตว์ประหลาดที่เป็นกลางพวกเขามีสถิติเดียวกัน:

  • จุดสุขภาพ
  • โจมตีความเสียหาย
  • ความเร็วโจมตี
  • เกราะ

สิ่งที่ฉันต้องการจะทำ:

สร้างเครื่องมือเพื่อทดสอบว่ามีไอเท็มใดบ้างหรือการเพิ่มค่าสเตตัสโดยเฉพาะจะเพิ่มความเร็ว / ความเร็วในการฆ่าของคุณหรือไม่

แผนที่: http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg

ตัวอย่างสถิติ:

  • แรงม้า: 420
  • โฆษณา: 55
  • AttackSpeed: 0.613 (การโจมตี / s -> การโจมตีทุกครั้งที่ 1 / 0.613 s)
  • การเจาะเกราะ: 25

ตัวละครจะโจมตีศัตรูโดยอัตโนมัติด้วย 1 / attackspeed และสร้างความเสียหายด้วยการโจมตี (มีสูตรในการคำนวณความเสียหาย แต่นั่นไม่สำคัญในขั้นตอนนี้ฉันเดา) เมื่อพวกเขาตายย้ายไปที่หน้าถัดไปด้วย movingspeed ( คุณสามารถเห็นค่ายต่าง ๆ บนแผนที่หัวกะโหลกสีเหลือง)

ฉันคิดเกี่ยวกับอัลกอริทึม:

  1. ฉันคิดว่าถ้าฉันทำจาก i = 0 ถึง i = 30000 (การนับ ms) ดังนั้นฉันสามารถตรวจสอบศัตรู hp และ hp ของฉันได้เช่นกันที่ ms ทุกตัวออกมาแย่มาก (cpu ค่อนข้างหนักและฉันต้องการ ใส่สุ่มเข้าไปในนั้นดังนั้นฉันควรจะสามารถสรุปซ้ำ 1k ซึ่งเป็นไปไม่ได้)

  2. ประการที่สองฉันคิดว่าฉันควรทำเพื่อเริ่มต้นจาก i = 1 ถึง 30 และตรวจสอบทุกวินาทีและตรวจสอบสิ่งที่เกิดขึ้นในวินาทีสุดท้าย แต่สัตว์ประหลาดที่เป็นกลางบางตัวอยู่ในค่ายใหญ่ (มากถึง 4 สัตว์) และ วิธีนี้ทำให้รหัสซับซ้อนและซับซ้อนขึ้น

  3. ฉันจะสร้างเธรดสำหรับผู้เล่นแต่ละคน / สัตว์ประหลาดและเมื่อพวกเขาค้นหาเสร็จเมื่อพวกเขาตายและลดแรงม้าของผู้เล่น

คำถามของฉันนี่เป็นวิธีที่เหมาะสมหรือไม่

TLDR: ฉันต้องการสร้างเครื่องมือเพื่อสร้างการวิเคราะห์ (ย้ำ 1k และคำนวณค่าเฉลี่ย) เกี่ยวกับเกมที่การเพิ่มค่าสถิติจะทำให้ตัวละครฆ่ามอนสเตอร์ที่เป็นกลางได้เร็วขึ้น

ฉันต้องการ java แต่ atm ฉันติดอยู่กับอัลกอริทึม


@ Karoly S: อ๋อมันเป็นสิ่งที่ไม่ดีนะ com -> .eu

ฉันทำงานนี้:

ฉันกำลังตรวจสอบเวลาที่เหลืออยู่ในแต่ละวัตถุ (ความสามารถของผู้เล่นการโจมตีอัตโนมัติบัฟ) และเลือกเวลาที่สั้นที่สุดและเก็บ last_time และเพิ่มเวลาเป็นครั้งคราวในรอบถัดไปที่ฉันคำนวณเวลาด้วย (ครั้ง - ครั้งสุดท้าย)

หากวัตถุมีเวลาเหลือ 0 มันจะทำทุกอย่างที่จำเป็นต้องทำ

ฉันไม่รู้ว่ามันเป็นวิธีที่มีประสิทธิภาพหรือไม่ แต่นั่นเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้


1
คุณอาจโชคดีกว่าที่ขอให้ในส่วนการพัฒนาเกม / ไซต์ของ Stack Exchange พยายามขอ Mod เพื่อย้ายแม้ว่าจะมีโอกาส เครื่องมือจำลองป่าที่น่าสนใจฉันจะให้ความคิดและดูสิ่งที่ฉันคิดขึ้นมา
Karoly S

ขอบคุณสำหรับคำตอบอย่างรวดเร็วความช่วยเหลือของคุณเป็นที่นิยมมาก ฉันเดาถูกแล้วว่าคุณเป็นคนฮังการีด้วย

แน่นอนว่านี่คือสิ่งที่ฉันคิด แต่ไม่ใช่ในเชิงลึก แต่ฉันสนใจวิธีการเริ่มต้นของฉันคือการดูว่า # 2 รุ่นที่มีประสิทธิภาพของคุณนั้นเป็นไปได้หรือไม่ ฉันชอบที่จะหารือเรื่องนี้กับคุณในระยะยาว และใช่เดาของคุณจะถูกต้อง :)
Karoly S

ฟังดูดีสำหรับฉันฉันจะปล่อยให้หัวข้อเปิดบางทีบางคนมีความคิดเกี่ยวกับเรื่องนี้ อีเมลของฉัน (etheld ที่ gwelican dot com)

ฟังดูดีฉันจะใส่ความคิดลงไปและส่งอีเมลถึงคุณในภายหลัง
Karoly S

คำตอบ:


1

ทางเลือกในการจำลองทีละเฟรม:

คุณสามารถได้รับการประมาณที่สมเหตุสมผลสำหรับการจำลองโดยสูตรเช่น

rawDamage = <some function of strength?)
Damage = rawDamage - enemyArmorReduction
DPS = (attackSpeed * Damage) * enemyArmorMod
myRemainingHP = myDPS / theirHP  - theirDPS / myHP

คุณยังสามารถรักษาคิวการย้ายเพื่อให้คุณจำลองการย้ายต่อไม่ได้ต่อขีด:

// my aspd = 4 attacks per second, his aspd = 3 attacks per second
0.0s : start battle
0.25s: I attack
0.33s: He attacks
0.50s: I attack again
...
1.00s: I attack
1.00s: He attacks
...

คิวการย้ายจะมีความแม่นยำมากขึ้นเนื่องจากเกี่ยวข้องกับข้อเท็จจริงที่ว่าความเสียหายนั้นไม่ต่อเนื่องไม่ต่อเนื่อง ตัวอย่างเช่นถ้าฉันทำดาเมจ 50 ดาเมจใน 0 วินาทีและอีก 50 ดาเมจใน 1 วินาที DPS ของฉันจะเป็น 50 แต่ฉันจะฆ่า 100 HP เป้าหมายใน 1 วินาที

@hammar: จริง ยิ่งการต่อสู้สั้นลงเท่าไหร่ความแม่นยำของการประมาณการที่ใช้ DPS ก็จะน้อยลงเท่านั้น
จิมมี่

ความจริงที่ว่าเกมมี stuns และ debuff อื่น ๆ จะทำให้เครื่องมือดังกล่าวยากที่จะประสบความสำเร็จเพราะผู้เล่นที่แตกต่างกันอาจมีผลลัพธ์ที่แตกต่างกันในอัตราการฆ่าพวกเขา อย่างไรก็ตามคำตอบที่ดี
Grimshaw
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.