Je fais un jeu MMO et je suis juste arrivé à un point où j'ai besoin de mettre en œuvre des réalisations ... Comment faire? La chose la plus simple à faire serait de l'exécuter toutes les 100 ms:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
Mais cela soulève encore plus de complications. Par exemple, comment puis-je vérifier si la réalisation est effectivement terminée? Les joueurs ont-ils des propriétés personnalisées uniquement pour une réalisation spécifique? J'ai fait ce genre de chose avec les quêtes, car elles consistent principalement à "collecter 100 bois", donc les quêtes actives sur un joueur le vérifient. De plus, il doit y avoir un meilleur moment pour le vérifier, cela ralentirait périodiquement mon serveur, je pense.