Ich habe dies fälschlicherweise in stackoverflow gepostet und jetzt hier basierend auf einem Vorschlag auf dieser Seite gepostet ...
Dies ist eine sehr hochrangige konzeptionelle Frage. Angenommen, in einer Softwareanwendung habe ich 4 verschiedene Aktionen, zum Beispiel: Hochladen, Teilen, Kommentieren und dergleichen
Und ich möchte Benutzern Leistungsabzeichen geben wie:
- Rookie - Laden Sie Ihre ersten 5 Dateien hoch
- Junkie hochladen - Laden Sie 20 Dateien an einem Tag hoch
- Night Crawler - Laden Sie eine Datei nach Mitternacht hoch
- Share-a-holic - Teilen Sie 10 verschiedene Dateien
- Likes-Everything - Wie 20 verschiedene Dateien
Du hast die Idee. Wie kann er am besten überprüfen, ob ein Benutzer eine bestimmte Leistung erzielt hat, ohne die Logik für die Leistung in meinem Code kompilieren zu müssen? Und .. - Behalten Sie die Möglichkeit bei, nach dem Kompilieren neue Erfolge hinzuzufügen (xml oder db). - Erfolge müssen bestimmte Aktionen, die Anzahl der Male und zusätzliche Kriterien (wie die Tageszeit) verfolgen. - Die Erkennung sollte nahezu in Echtzeit erfolgen, damit der Benutzer benachrichtigt wird fast sofort, wenn ein Erfolg abgeschlossen ist
Meine größte Frage ist, wie ich feststelle, dass diese Erfolge erzielt werden. Muss ich:
1) Überprüfen Sie nach jeder Aktion, ob ... (meistens in Echtzeit) 2) Lassen Sie die Datenbank jederzeit von einem anderen Programm anhand einer Reihe von Regeln überprüfen? (Am einfachsten)
Gibt es ein anderes Paradigma, das mir fehlt? Ich habe das Gefühl, dass dies definitiv der Fall ist, weil ich in vielen Spielen (wie zum Beispiel Jetpack für iOS) über den Erfolg informiert werde, den ich in dem Moment freigeschaltet habe, in dem ich ihn freigeschaltet habe, was ich ziemlich beeindruckend fand.
Vielen Dank