Bir MMO oyunu yapıyorum ve başarıları gerçekleştirmem gereken bir noktaya geldim ... Bunu nasıl yapabilirim? Yapılacak en basit şey, bunu her 100 ms'de bir çalıştırmak olacaktır:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
Ancak bu daha da fazla komplikasyon yaratır. Örneğin, başarının gerçekten tamamlanıp tamamlanmadığını nasıl kontrol ederim? Oyuncuların sadece belirli bir başarı için kendilerine özel özellikleri var mı? Görevlerle bu tür bir şey yaptım, çünkü esas olarak "100 odun topla", bir oyuncu üzerindeki aktif görevler bunu kontrol ediyor. Ayrıca, kontrol etmek için daha iyi bir zaman olmalı, bu periyodik olarak sunucumu yavaşlatır diye düşünüyorum.