ตัวเลือกหนึ่งที่ฉันชอบที่จะเห็นการใช้งานเป็นระบบปรับตัวเองอัตโนมัติ
ฉันจะใช้เป็นตัวอย่างเกมจากประเภท MOBA เพราะมันมีโครงสร้างในแบบที่ทำให้มันค่อนข้างง่ายที่จะเห็นว่าฮีโร่แต่ละตัวเปรียบเทียบกับฮีโร่คนอื่น ๆ อย่างไร
โดยพื้นฐานแล้วสำหรับฮีโร่แต่ละตัวสถิติทั้งหมดสำหรับไอเท็มนั้นควรขึ้นอยู่กับค่าแฮนดิแคปซึ่งเซิร์ฟเวอร์จะเปลี่ยนโดยอัตโนมัติขึ้นอยู่กับอัตราการชนะของฮีโร่นั้น จากนั้นเมื่อใดก็ตามที่เกมใหม่เริ่มต้นขึ้นจะใช้ค่าแฮนดิแคปล่าสุดในช่วงระยะเวลาของเกม
Hero(){
attackSpeed = 50 + 5*heroType.adjustment;
moveSpeed = 100 + 5*heroType.adjustment;
}
จากนั้นในตอนท้ายของแต่ละเกมเซิร์ฟเวอร์จะปรับมูลค่าของฮีโร่แต่ละตัวด้วยจำนวนเล็กน้อยขึ้นอยู่กับว่าฮีโร่นั้นชนะหรือแพ้ตามจำนวนที่พวกเขาชนะเป็นต้น:
for(Hero hero: game.winners)
hero.heroType.nerf();
for(Hero hero: game.losers)
hero.heroType.buff();
สูตรการปรับที่แน่นอนอาจเป็นแบบนี้แม้ว่าสถิติที่ซับซ้อนกว่านั้นอาจดีกว่า:
nerf: adjustment[heroType] -= 1 / globalNumberOfGamesPerWeek
buff: adjustment[heroType] += 1 / globalNumberOfGamesPerWeek
ด้วยวิธีนี้หากมีฮีโร่ใหม่บางตัวเพิ่มเข้ามามากพอนั่นคือการมีฮีโร่ตัวนั้นเพิ่มโอกาสในการชนะของผู้เล่นอย่างมากเซิร์ฟเวอร์เกมจะทำการแก้ไขโดยอัตโนมัติเมื่อเวลาผ่านไป
ในความเป็นจริงระบบนี้จะแก้ไขด้วยเหตุผลอื่น ๆ ที่ฮีโร่ตัวใดตัวหนึ่งอาจมีอำนาจเหนือกว่าเช่นใครบางคนที่ค้นหาเมตาใหม่ที่ใช้งานได้ดีจริง ๆ หรือการดัดแปลงภูมิประเทศที่ให้ประโยชน์กับฮีโร่โดยเฉพาะ และการแก้ไขจะสามารถเกิดขึ้นได้แม้ในขณะที่ความรู้เกี่ยวกับกลยุทธ์ใหม่ยังคงแพร่กระจายเท่านั้น
สิ่งที่สามที่สิ่งนี้สามารถช่วยได้คือการค้นพบข้อเท็จจริงว่ามีบางอย่างที่ส่งผลกระทบต่อฮีโร่อย่างจริงจัง หากฮีโร่ได้รับการออกแบบเพื่อให้ค่าการปรับอยู่ใกล้กับศูนย์จากนั้นเมื่อค่าสำหรับหนึ่งในฮีโร่มีการเปลี่ยนแปลงอย่างมีนัยสำคัญนักพัฒนาจะรู้ว่ามีปัญหาบางอย่างกับฮีโร่เพื่อให้พวกเขาสามารถข้ามและทำสมดุลที่ชาญฉลาดมากขึ้น ถึงฮีโร่ที่มีปัญหา