ultimate / syncnapsis

syncnapsis application and game development framework
4 stars 2 forks source link

Rankings #42

Open ultimate opened 10 years ago

ultimate commented 10 years ago

Voraussetzung für die Sortierung und halbwegs vollständig Darstellung der User- und Empire-Liste ist das Vorhandensein eines Rankings. Unabhängig davon, wie dieses Ranking und sein dazugehöriger Punktewert später mal ermittelt wird, sollte an dieser Stelle schon eine geeignete Basis geschaffen werden, die auch ohne berechnete Werte (mit Dummy-Werten) verwendet werden kann.

ultimate commented 10 years ago

Damit ich die angesprochene Sortierung der Listen vornehmen kann habe ich erstmal ganz grob folgende Spalten für das Ranking definiert:

Ansonsten stellt sich mir dann noch die Frage, ob man die Unterkriterien auch in den Rankings einsehen können soll, ob man sie nur im Profil des Spielers sehen kann, oder ob das nur interne Werte sind, aus denen sich die Punktzahl zusammensetzt, die aber sonst niemand sehen kann...

ultimate commented 10 years ago

Die grundsätzliche Struktur ist auch schon umgesetzt
Wir müssen uns jetzt ggf. nur noch über die Spalten/Bewertungskriterien unterhalten...

ultimate commented 10 years ago

Ranking-Update

Es sollte dann eine zentrale Stelle geben, an der alle Aktionen zusammenlaufen und die dann das Ranking eines Spielers neu berechnet und aktualisiert. Es müssen dann in dem Zusammenhang auch das Ranking aller betroffenen Allianzen und des Benutzers aktualisiert werden. Auf diese Weise ist das Ranking immer auf dem neuesten Stand und wir vermeiden ein automatisches Update zu bestimmten Uhrzeiten...

History

Da das Ranking zugleich eine History-Funktion bietet, können wir über die "Archivierung" von Ranking-Objekten einen historischen Verlauf für alle Spieler/Allianzen/Benutzer (und was uns sonst noch einfällt) abbilden. Es kommen dabei zwei Varianten in Frage:

Zu berücksichtigen gibt es in beiden Fällen folgendes: Durch die Zeitverzögerung, die beim Bauen von Gebäuden/Schiffen und beim Entwickeln von Technologien entsteht, muss die Aktualisierung des Rankings zwar bei Baustart angestoßen werden, jedoch als Zeitpunkt erst die Fertigstellung eingetragen werden. Auf diese Weise entsteht eine Art "Ranking in der Zukunft", was schon vorher bekannt ist (aber natürlich noch nicht angezeigt werden darf...). Wenn also in der Zwischenzeit ein unvorhersehbares Ereignis eintritt (also kein Bau-/Entwicklungsvorhaben, sondern z.B. ein Angriff oder Zufallsereignis), dann müssen nicht nur der aktuelle Ranking-Stand, sondern auch die "Zukunftsrankings" entsprechend neu berechnet werden.

Noch eine Anmerkung: Im Moment habe ich ein boolean "actual" vorgesehen, was ausdrücken soll, ob der Wert der aktuelle Wert ist. Wenn wir das mit dem Zukunftsranking machen, muss man nochmal prüfen, ob das sinnvoll ist, oder ob es besser ist, nur über das Datum zu gehen, weil man sonst zwischendurch auch immer mal "actual" aktualisieren muss...