ฉันสร้างเกม MMO และฉันเพิ่งมาถึงจุดที่ฉันต้องใช้ความสำเร็จ ... ฉันจะทำอย่างไร สิ่งที่ตรงไปตรงมาที่สุดที่ต้องทำคือเรียกใช้ทุก ๆ 100ms:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
แต่นั่นก็ทำให้เกิดภาวะแทรกซ้อนมากขึ้น ตัวอย่างเช่นฉันจะตรวจสอบว่าความสำเร็จนั้นเสร็จสมบูรณ์ได้อย่างไร? ผู้เล่นมีคุณสมบัติที่กำหนดเองด้วยตัวเองเพื่อความสำเร็จที่เฉพาะเจาะจงหรือไม่? ฉันทำสิ่งนี้ด้วยเควสต์เพราะพวกเขาส่วนใหญ่จะ“ เก็บไม้ 100 อัน” ดังนั้นเควสต์ที่แอคทีฟของผู้เล่นจึงตรวจสอบว่า นอกจากนี้ต้องมีเวลาที่ดีกว่าในการตรวจสอบซึ่งจะทำให้เซิร์ฟเวอร์ของฉันช้าลงเป็นระยะฉันคิดว่า