Ich mache ein MMO-Spiel und bin gerade an einem Punkt angelangt, an dem ich Erfolge umsetzen muss ... Wie mache ich das? Am einfachsten ist es, dies einmal alle 100 ms auszuführen:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
Das wirft aber noch mehr Komplikationen auf. Wie überprüfe ich beispielsweise, ob der Erfolg tatsächlich abgeschlossen wurde? Haben die Spieler benutzerdefinierte Eigenschaften für einen bestimmten Erfolg? Ich habe so etwas mit Quests gemacht, weil es sich hauptsächlich um "Sammeln von 100 Holz" handelt, also überprüfen aktive Quests eines Spielers dies. Es muss auch einen besseren Zeitpunkt geben, um dies zu überprüfen. Ich denke, dies würde meinen Server regelmäßig verlangsamen.