วิธีสร้างสมดุลประสบการณ์ให้ได้ในเกม RPG


10

ขณะนี้ฉันกำลังพัฒนาเกมสวมบทบาทที่มีคะแนนประสบการณ์คลาสสิกและช่างเลเวลอัพ ผู้เล่นสังหารมอนสเตอร์ได้รับคะแนนประสบการณ์เพิ่มระดับเมื่อพวกเขารวบรวมพอและแข็งแกร่งขึ้น

ฉันจะสมดุลจำนวนคะแนนประสบการณ์ที่จำเป็นสำหรับการเข้าถึงแต่ละระดับและจำนวนค่าประสบการณ์ที่ได้รับจากสัตว์ประหลาดแต่ละตัวในแต่ละระดับได้อย่างไร


ที่เกี่ยวข้อง: gamedev.stackexchange.com/questions/10695/…
MichaelHouse

ขอบคุณสำหรับการโพสต์ ฉันคิดว่าการตอบคำถามด้วยตนเองเพื่อแบ่งปันข้อมูลนั้นยอดเยี่ยม อย่างไรก็ตามฉันคิดว่าคำถามควรจะสามารถยืนได้ด้วยตัวเอง หากคำถามนี้ถูกโพสต์โดยไม่มีคำตอบอาจเป็นไปได้ว่าปิดกว้างเกินไป บางทีคุณสามารถแก้ไขคำถามเล็กน้อยเพื่อรวมข้อกำหนดเพิ่มเติมและระบุปัญหาที่แน่นอนที่คุณพบ คำถามกว้างมากในขณะนี้และคำตอบก็คือ "ขึ้นอยู่กับสิ่งที่คุณต้องการ"
MichaelHouse

คำตอบ:


18

วิธีที่ดีที่สุดที่จะได้ข้อสรุปในเรื่องนี้คือ - เหมือนกับสิ่งส่วนใหญ่ในการพัฒนาเกม - ก่อนอื่นให้คิดว่าคุณต้องการให้เกมเล่นอย่างไรจากนั้นทำการคำนวณทางคณิตศาสตร์

คุณต้องการให้ผู้เล่นเล่นนานแค่ไหนในแต่ละด่าน?

ในเกม RPG ที่เน้นเนื้อเรื่องผู้เล่นคนเดียวคุณอาจต้องการให้เลเวลอัพเป็นรางวัลที่คงที่และให้ผู้เล่นเลเวลอัพทุกๆสองสามนาทีระหว่างเกมทั้งหมด อัตราการเพิ่มระดับยังคงที่ดังนั้นฟังก์ชันนาทีต่อระดับของคุณจึงเป็นค่าคงที่ ( time = c)

ในเกมที่เน้นความสำเร็จเช่น MMORPG คุณมักต้องการให้เลเวลอัพเพิ่มขึ้นสำหรับผู้เริ่มต้น แต่บ่อยครั้งที่ผู้เล่นดำเนินไปเรื่อย ๆ ในกรณีนั้นฟังก์ชันนาทีต่อระดับของคุณจะเป็นพหุนาม ( time = Level ^ c) หรือเลขชี้กำลัง ( time = c ^ Level) แทน อย่างไรก็ตามการใช้หมายเลขระดับตามที่เป็นอยู่ในสูตรเลขชี้กำลังมักจะมากเกินไป มันเป็นความคิดที่ดีที่จะหารด้วยค่าคงที่เพื่อทำให้การเพิ่มขึ้นช้าลงมากในขณะที่ยังคงเป็นเลขชี้กำลัง ( time = c1 ^ (1 + Level / c2))

ฉันอยากจะแนะนำให้คุณใช้สเปรดชีตเพื่อบีบตัวเลข สร้างตารางที่มีคอลัมน์ที่มีตัวเลขตั้งแต่ 1 ถึงระดับสูงสุดที่คุณคาดไว้และคอลัมน์ที่สองที่มีสูตรระดับ สิ่งนี้ช่วยให้คุณสามารถทดลองกับสูตรที่แตกต่างกันเพื่อค้นหาตัวเลขที่คุณชื่นชอบ บางทีคุณอาจได้ผลลัพธ์ที่ดีขึ้นเมื่อคุณรวมพหุนามกับองค์ประกอบเลขชี้กำลัง?

จำไว้ว่าคุณเห็นเวลาต่อสู้สุทธิที่นี่ เวลาของเกมที่ผู้เล่นรวบรวมคะแนนประสบการณ์ ไม่นับเวลาที่ผู้เล่นใช้พูดคุยกับ NPC เปรียบเทียบอุปกรณ์และทำงานอื่น ๆ ที่ไม่ทำให้เกิดความคืบหน้าโดยตรง

ในเกมปัจจุบันของฉัน (เป็น MMORPG) seconds(level) = 10 ^ (1 + Level / 20)ฉันมากับสูตร ระดับแรก ๆ นั้นใช้เวลาเพียงไม่กี่วินาทีของการต่อสู้ที่เกิดขึ้นจริง (ความพึงพอใจอย่างฉับพลันในระหว่างขั้นตอนการสอน) ระดับ 20 - 40 ใช้เวลาไม่กี่นาทีในยุค 50 จะกลายเป็นชั่วโมงต่อระดับและเมื่อใกล้ระดับสูงสุด 100 จะใช้เวลาทั้งสัปดาห์ ความคืบหน้า

ประสบการณ์การให้รางวัลต่อศัตรูควรแตกต่างกันอย่างไร

แม้ในขณะที่ศัตรูของคุณไม่มีสถิติระดับชัดเจน (หรือมีความหมาย) คุณจะต้องออกแบบให้เป็นความท้าทายที่สมดุลสำหรับระดับตัวละครบางตัว แต่ถ้าศัตรูแนะนำให้ใช้เลเวล 40 จะได้รับค่าประสบการณ์มากกว่าที่แนะนำสำหรับเลเวล 30 หรือไม่

คำตอบสำหรับคำถามนี้มีความสัมพันธ์อย่างใกล้ชิดกับจำนวนตัวละครที่ทรงพลังและต่อระดับที่คุณต้องการให้พวกเขาอยู่ข้างหน้าหรือข้างหลังศัตรูปัจจุบันที่มีระดับตัวละครอยู่

ตัวอย่างเช่นระบบเกมบางอย่างเช่น World of Warcraft ทำให้ไม่มีประโยชน์ในการต่อสู้กับศัตรูเพียงเล็กน้อยหรือต่ำกว่าระดับของตัวละครของผู้เล่น อะไรก็ตามที่มีเพียงไม่กี่ระดับด้านบนจะทำลายผู้เล่นสิ่งที่ระดับไม่กี่ด้านล่างจะไม่ท้าทาย (และไม่มีรางวัล) เลย

ตัวอย่างเคาน์เตอร์จะเป็นชุด Disgaea ในเกมที่คุณสามารถเอาชนะศัตรูกับหลายครั้งระดับของตัวละครของคุณเองเมื่อคุณเล่นสมาร์ท

ยิ่งคุณต้องการอยู่ในระดับที่เข้มงวดยิ่งขึ้นซึ่งเป็นการต่อสู้ที่ยุติธรรมสำหรับผู้เล่นยิ่งคุณต้องทำให้แน่ใจว่าผู้เล่นจะไม่ล้าหลังหรือก้าวไปข้างหน้ากับศัตรูที่พวกเขากำลังต่อสู้อยู่ เมื่อผู้เล่นตกอยู่หลังศัตรูเกมจะกลายเป็นเรื่องยากอย่างน่าผิดหวังโดยไม่ต้องบด เมื่อผู้เล่นนำหน้าสัตว์ประหลาดเกมจะกลายเป็นเรื่องง่ายและน่าเบื่อ

วิธีที่ดีในการทำให้ผู้เล่นอยู่ในวงเล็บระดับคือการเพิ่มรางวัล EXP ต่อระดับ ในอีกด้านหนึ่งมันจะช่วยให้ผู้เล่นติดตามได้ง่ายเมื่ออยู่ต่ำกว่าระดับที่แนะนำเล็กน้อย ในอีกด้านหนึ่งมันจะไม่ยอมให้พวกเขาเลเวลอย่างมีประสิทธิภาพกับศัตรูที่อ่อนแอโดยไม่ต้องไปสู่พื้นที่ที่ยากขึ้น

เส้นโค้ง exp พหุนาม ( exp = Level ^ c) มักจะทำงานได้ดี ที่มีขนาดใหญ่มูลค่าcมากกว่าที่คุณจะบังคับให้ผู้เล่นเข้าไปในวงเล็บระดับปัจจุบันของมอนสเตอร์ที่พวกเขาต่อสู้

โปรดทราบว่าศัตรูที่ใช้เวลานานกว่าในการเอาชนะควรให้ประสบการณ์มากกว่าแบบสัดส่วน การต่อสู้ที่ใช้เวลา 20 วินาทีควรให้ค่าประสบการณ์มากเป็นสองเท่าเช่นเดียวกับที่ใช้เวลาเพียง 10 วินาที exp = (Level ^ c) * minutes_per_combatเรื่องนี้ต้องขยายสูตรของคุณไป

สูตร exp-per-level สุดท้าย

สูตรสุดท้ายสามารถรับได้จากทั้งสอง experience per levelเป็นคูณกับtime per level in minutes experience gained per minuteดังนั้นเพียงแค่ใช้สูตรสองสูตรที่คุณคิดขึ้นมาในสองส่วนสุดท้ายแล้วคูณมัน นั่นคือ: สูตรประสบการณ์ต่อระดับของคุณ

ด้วยการเพิ่มเวลาพหุนามต่อระดับสูตรจะเป็น

exp(level) = (level ^ c1) * (level ^ c2)

ที่ไหน

  • c1 ขึ้นอยู่กับว่าคุณต้องการให้แต่ละด่านนานแค่ไหน
  • c2 ขึ้นอยู่กับว่าคุณต้องการให้ผู้เล่นใกล้ถึงระดับของศัตรูที่พวกเขาต่อสู้

มีอะไรผิดพลาด?

แม้แต่แนวคิดการคิดที่ดีที่สุดก็ไม่สามารถทดแทนการทดสอบที่เหมาะสมได้ หากการทดสอบของคุณกลายเป็นว่าผู้เล่นเฉลี่ยมีความคืบหน้าเร็วกว่าหรือช้ากว่าที่คุณต้องการมันเป็นสัญญาณที่แสดงว่าคุณได้ประเมินระดับที่แนะนำของศัตรูของคุณมากเกินไปหรือประเมินค่าต่ำเกินไปและใช้เวลานานเท่าใดในการฆ่าผู้เล่น ลองวิเคราะห์ร่วมกับ playtesters ของคุณว่าศัตรูฆ่ายากแค่ไหนในระดับตัวละครและปรับค่า exp หรือสถิติตามนั้น

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