Saya membuat game MMO dan saya baru saja sampai pada titik di mana saya perlu mengimplementasikan pencapaian ... Bagaimana saya melakukannya? Hal paling lurus ke depan yang harus dilakukan adalah menjalankan ini setiap 100ms ,:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
Tapi itu hanya menimbulkan lebih banyak komplikasi. Misalnya, bagaimana saya memeriksa apakah pencapaiannya telah benar-benar selesai? Apakah para pemain memiliki properti khusus hanya untuk pencapaian tertentu? Saya melakukan hal semacam ini dengan pencarian, karena mereka terutama "mengumpulkan 100 kayu", jadi pencarian aktif pada pemain memeriksa itu. Juga, harus ada waktu yang lebih baik untuk memeriksanya, saya pikir ini akan memperlambat server saya secara berkala.