การคำนวณแต้มค่าประสบการณ์ที่ได้รับหลังการต่อสู้


9

ฉันกำลังพัฒนาเกมต่อสู้ข้อความอย่างง่ายและมีปัญหาบางอย่างที่คำนวณว่าควรได้รับ XP เท่าใดหลังจากการสู้รบมีปัจจัยบางประการที่ฉันต้องการพิจารณา:

1) ผู้เล่นควรได้รับ XP ที่ดีถ้าพวกเขาเอาชนะคนในระดับเดียวกัน

2) ผู้เล่นควรได้รับ XP ที่ยอดเยี่ยมถ้าพวกเขาเอาชนะใครบางคนในระดับที่สูงขึ้น

3) ผู้เล่นควรได้รับ XP ที่แย่ถ้าพวกเขาเอาชนะคนที่มีระดับต่ำกว่า

4) สิ่งที่กล่าวมาข้างต้นน่าจะปรับได้อย่างดีเช่นถ้าผู้เล่น A เป็นระดับ 10 และต่อสู้กับผู้เล่น B ที่ระดับ 9 หรือ 11 ความแตกต่างไม่ควรใหญ่ (แน่นอนว่าพวกเขาจะได้รับ XP มากขึ้นสำหรับการเอาชนะตัวละครระดับ 11 แต่เราจะไม่ คาดหวังว่าสิ่งนี้จะมีขนาดใหญ่มาก) แต่ถ้าเขาต้องต่อสู้กับเลเวล 5 หรือ 15 ความแตกต่างนี้น่าจะมาก

มีปัญหาในการคำนวณบางอย่างที่ทำงานได้ดีในทุกสถานการณ์ขณะนี้ตาราง XP ของฉันมีลักษณะดังนี้:

Current Level   XP Needed   Increase from Last Level
1   30  0
2   65  35
3   106 41
4   154 48
5   210 56
...
10  672 123

ใน PHP โค้ดของฉันดูเหมือนด้านล่างเพื่อคำนวณ XP Needed:

$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;

$xp = $base + $offset;

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

ความช่วยเหลือ / การป้อนข้อมูลใด ๆ ที่จะได้รับการชื่นชม


2
ฉันไม่ได้อ่านเลยไปที่นั่น -> gamebalanceconcepts.wordpress.com/2010/07/07/… <-
o0 '

ความคิดแรกคือคุณควรพบสำเนาคู่มือผู้นำ D&D ดันเจี้ยนจากรุ่นที่สองหรือสาม แหล่งข้อมูลที่ดีสำหรับการเล่นระบบการตัดสิน XP ที่สมดุลแล้ว
Richard Fabian

คำตอบ:


13

สองข้อเสนอแนะ:

Exponents! คำนวณ "base xp reward" สำหรับแต่ละระดับ จากนั้นสูตรสำหรับการฆ่าคือ base_xp_reward * pow (1.1, target_level - player_level) คุณอาจต้องการได้กำไรสูงสุดให้มากที่สุดเพื่อทำให้การหาประโยชน์เป็นโมฆะและคุณอาจต้องการให้ XP ต่ำกว่าศูนย์แตกต่างกันเล็กน้อยเพื่อป้องกันการเลี้ยงต่ำ

(รางวัลฐาน XP อาจเป็นความก้าวหน้าอย่างง่ายเช่นกันถ้าคุณต้องการ - constant_factor * pow (1.25, ระดับ) บางทีคุณสามารถกำหนด "exp to level" ในแง่ของรางวัล XP พื้นฐานหลายรายการ ง่ายต่อการปรับสมดุลด้วยวิธีนี้)

หรือทำอย่างนี้ให้ง่ายจริงๆ ทำสิ่งพื้นฐานเดียวกันกับรางวัล XP จากนั้นคิดตารางด้วยมือเพื่อรับโบนัสที่คุณต้องการจากส่วนต่างระดับ ทำให้เป็นไปตามสัดส่วนดังนั้นการฆ่าใครสักคนที่เหนือระดับคุณให้พูดเสมอโบนัส XP 10% เหนือรางวัลพื้นฐาน และตอนนี้คุณไม่จำเป็นต้องกังวลเกี่ยวกับสูตรเลย - คุณสามารถทำให้ตัวเลขทำในสิ่งที่คุณต้องการได้

สูตรมีการ overrated บางครั้งคุณเพียงแค่ต้องติดตัวเลขและเล่นด้วยหู


1
+1 สำหรับFormulas are overrated, sometimes you just need to jam some numbers in and play it by ear.
RCIX

2

ฉันจะพูดบางอย่างเช่น "รับ xp จากความเสียหายที่ได้รับ / เสียหาย" ดังนั้นถ้าระดับ 10 กับ 100hp ต่อสู้กับระดับ 15 กับ 200 แรงม้า ดูเหมือนไม่ยุติธรรม แต่หากระดับ 10 สามารถฆ่าระดับ 15 ได้เขาจะได้ xp สองเท่าของสิ่งที่เขาจะได้รับหากต่อสู้กับระดับ 10 ด้วย 100hp เท่านั้น

ด้วยวิธีนี้คุณไม่ต้องกังวลกับสิ่งต่าง ๆ เช่นถ้าคนสองคนจะต่อสู้กับศัตรูเดียวกันด้วยอุปกรณ์ต่าง ๆ ตัวอย่างเช่นหากระดับ 8 และระดับ 10 ต่อสู้กับระดับ 13 หากระดับ 8 มีอุปกรณ์ / ชุดเกราะที่ดีกว่าเขาจะได้รับ xp มากขึ้นดังนั้นระดับ 10 ก็จะทำให้เขาเสียหายมากขึ้นในระดับ 13

แต่สิ่งที่สำคัญที่สุด: ตั้งกฎ playtest ตั้งกฎ playtest ตั้งกฎ plasytest ฯลฯ ฯลฯ ...

แม้แต่ MMO ที่ดีที่สุดจากนักพัฒนาซอฟต์แวร์ที่ดีที่สุดก็ปรับระบบการกระจาย xp ตราบใดที่เกมยังมีชีวิตอยู่


0

เพียง IMHO สิ่งที่สำคัญที่สุดที่จะทำให้ถูกต้องคือจำนวน XP ที่ต้องการเพื่อเพิ่มระดับ เพื่อนของฉันใช้รูปแบบฟีโบนักชีสำหรับเบราว์เซอร์ Rogue เช่น 100XP, 100XP, 200XP, 300XP, 500XP, 800XP เป็นต้น

ฉันเคยได้ยินเกี่ยวกับกลไกในบางเกมที่ระดับถูกหักออกจาก XP ที่ได้รับจากการต่อสู้แต่ละครั้ง ตัวอย่างเช่นหากการรบหนึ่งครั้งได้รับ 50XP และพวกเขาอยู่ที่ระดับ 20 พวกเขาจะได้รับ 30XP เท่านั้น หากพวกเขาอยู่ในระดับ 50 ขึ้นไปพวกเขาจะไม่ได้อะไรเลย

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