• Howdy, Freund! Du scheinst neu hier zu sein. Warum erstellst du dir nicht einen Forenaccount, um mitdiskutieren zu können? Du kannst dich hier registrieren.
    Du hast schon einen Forenaccount? Dann kannst du dich hier einloggen. Viel Spaß!

    Was denkst du zum Beispiel über diese Themen?

Sortieren in den Ranglisten

DeletedUser26523

Hey Leute,

ich hätte ne Idee für die Rangliste, die denke ich nicht allzu viel Entwicklungsaufwand benötigt:

Wie wäre es, wenn man die Ranglisten nach den einzelnen Unterdisziplinen sortieren könnte?
Also z.b bei Duellen nicht nur nach XP sondern auch wer die meisten gewonnen hat etc, bei FK's wer den meisten Schaden oder die meisten Ausweicher hat, bei Städten zb wer die meisten Fortpunkte oder reine Ausbaupunkte hat.

Da nicht alle Spieler auf die gleichen Dinge achten wäre das vielleicht sinnvoll um sich in seinen eigenen Disziplinen besser vergleichen und einordnen zu können.


Wäre schön eine Rückmeldung zu bekommen ;)


Schönen Wochenstart
Django
 

Jigelp

Pubquiz-Champion
Ehemaliges Teammitglied
Das hier gilt auf jeden Fall schonmal für die FK-Rangliste:
Ja, aber diese Tabelle funktioniert wie folgt: Einmal pro Stunde wird die Rangliste anhand der Punkte berechnet und dann in einer Tabelle auf dem Server abgelegt, die im Folgenden nur noch von der Rangliste im Spiel statisch abgerufen wird - und zwar jede Seite einzeln. Damit wäre es im Moment nur möglich, die Spieler innerhalb einer Seite gemäß Schaden usw. zu sortieren. Für alles weitere müsste man die Rangliste komplett umbauen. ;)
 

DeletedUser24725

Tja, und das ist eben ein Fail, das die Tabelle nur jede aktuell gemacht wird, die Rangliste gehört in eine extra Tabelle in der Datenbank. ändert sich beim Spieler etwas wird es sofort gespeichert. Wenn der Spieler die Rangliste aufruft wird diese Tabelle abgefragt. Dann kann man auch alle Spieler auf einmal sortieren. Habe ich aber auch schon vor Jahren schon mal geschrieben
 

stayawayknight

Erleuchteter
Ehemaliges Teammitglied
Das ist keine gute Idee, weil die Rangliste dann nicht mehr skalierbar wäre. Sollten einmal ein paar mehr Spieler online sein, Arbeiten einstellen und die Rangliste aufrufen, müssten die mit sehr langen Ladezeiten rechnen. Sortieroperationen sind recht teuer und sollten nicht zur Laufzeit an einer unbestimmt hohen Anzahl an Objekten durchgeführt werden.
 

DeletedUser24725

Das ist keine gute Idee, weil die Rangliste dann nicht mehr skalierbar wäre. Sollten einmal ein paar mehr Spieler online sein, Arbeiten einstellen und die Rangliste aufrufen, müssten die mit sehr langen Ladezeiten rechnen. Sortieroperationen sind recht teuer und sollten nicht zur Laufzeit an einer unbestimmt hohen Anzahl an Objekten durchgeführt werden.
Dadrüber kann ich echt nur lachen. Frage mal echte Programmierer, Objekte??? Wofür Opjekte? Die sind total überflüssig.
Man speichert das Ergebnis in einem Array, dieses Array kannst du dann sortieren lassen wie du möchtest, kannst es sogar komplett in Javascript machen. Du sprichst was an wenn 100.000 Leute gleichzeitig auf die Rangliste drauf geht. Diese Abfrage dauert so ca. 0,002 Sekunden ;) Rede mal mit einem der Datenbank in einer großen Bank verwalten. ;)

Noch was: selbst wenn es Objekte wären dauert es nicht so lange wie du vermutest. Wie gesagt auch dies kann man sortieren, was aber wie gesagt total unnötig sind in diesem Fall.
 

stayawayknight

Erleuchteter
Ehemaliges Teammitglied
"Objekte" waren im Sinne von "zu sortierenden Elementen" gemeint. Wenn du es browserseitig sortieren möchtest, müsstest du zuvor alle Spielerdaten (Rang, Name, Punktzahl, usw.) übertragen. Das ist auch nicht gerade schnell, da kommt bei den von dir angesprochenen 100.000 Spielern einiges zusammen.

An der Ausgangsfrage ändert das alles jedoch nichts. Die Idee, die Rangliste sortierbar zu machen, ist eine schöne und das wäre bestimmt auch sehr nützlich, doch leider ist das mit der aktuellen Rangliste, wie wir sie im Spiel haben, im Moment nicht so einfach umsetzbar.
 

DeletedUser24725

"Objekte" waren im Sinne von "zu sortierenden Elementen" gemeint. Wenn du es browserseitig sortieren möchtest, müsstest du zuvor alle Spielerdaten (Rang, Name, Punktzahl, usw.) übertragen. Das ist auch nicht gerade schnell, da kommt bei den von dir angesprochenen 100.000 Spielern einiges zusammen.
Da ganze ist sogar super schnell, ob du 5 oder 20 Daten von einem Spieler sofort Abfragst da lacht die Datenbank drüber.
Ein Wimpernschlag ist dagegen ein Schnecke. Und auch die Übertragung mit Ajax ist super schnell.
Aber ich habe auch schon vor Jahren geschrieben das ich sehr stark vermute das das Datenbank-Design nicht richtig ist. Dann können Abfragen unheimlich lange dauern.
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser26523

Also von den Hintergründen der Programmierarbeit hab ich absolut keine Ahnung.

Fand nur die Idee ganz nützlich wenn man halt gerne in die Rangliste schaut aber auch mal andere "Listen" sehen könnte.. Vielleicht wirds ja bei The West 3.0 was ;):up:
 
Oben