Problematiken bei Browsergameerstellung

CookieBuster

Erfahrenes Mitglied
Wie manche vielleicht bereits wissen, bin ich in letzer Zeit dabei, ein Browsergame zu erstellen. Geht mitlerweile auch ganz gut vorran.
Ich erstelle jetzt einfach mal einen Thread mit allgemeinem Titel, dass ich ihn öfters verwenden kann ohne jedes mal einen neuen Thread öffnen zu müssen, wenn ich eine Frage habe.

Zu meinem aktuellen Problem:

Ich habe natürlich ständig die Daten der User zu verwalten. Es ist hier viel zu speicherlastig jedes mal einen Datenbankquery abzusenden, wenn der User einen Reload der Seite macht. Also serialisiere ich meine Klassen mit den entsprechenden Daten und speichere sie in die Session (Namen, Punkte, Besitz, ...).
Dann bei einem Reload der Seite wird geprüft ob bereits Daten in der Session vorhanden sind, wenn ja daraus geladen, wenn nein dann aus der Datenbank.
Mich würde interessieren wie das Resourcenmäßig hier aussieht, ist das entlastend genug?
Gibt es eine bessere Möglichkeit die Userdaten ständig parat zu haben, mit welcher aber die Datenbank nicht ständig durch sehr viele Querys belastet wird?
 
Normal ist es so, dass dein RAM durch die Sessions voll ist, bevor die Datenbank irgendwelche Probleme durch Queries bekommt. Dafuer ist die ja da. Du musst wohl etwas ausprobieren.
 
Hast du es schon in Erwägung gezogen die Daten asynchron zu speichern/nachzuladen.
Dann musst du nicht immer die ganze Seite "laden".
 
@Wolfsbein: Ich folgere aus deiner Aussage, dass meine MySQL-Datenbank schneller sein sollte, als die Session. Ich muss mal schauen ob ich hier Testberichte finden kann.

@tobee: Meinst du mit asynchron, dass immer nur geladen soll was gerade benötigt wird oder, dass ich lade, auch wenn der Nutzer gerade nichts tut und es Cache?
 
@Wolfsbein: Ich folgere aus deiner Aussage, dass meine MySQL-Datenbank schneller sein sollte, als die Session...

Sie muss keineswegs schneller sein. Aber wo speicherst du denn die Session? Im RAM. Und der ist irgendwann voll. Also wuerde ich das eher reduzieren und schauen, dass die DB viel Platz im RAM hat. Den die brauchst du auf jeden Fall immer wieder.
 
@tobee: Als Vergleich könnte man Shakes & Fidged heranziehen, das ist vom Grundlegenden Prinzip her gleich/ähnlich

@wolfsbein: Im Moment lade ich 2 Klassen in die Session mit nur wenigen Daten. Viel mehr soll es auch nicht werden. Diese Beiden Klassen beinhalten alle Userdaten und einige Daten für den Login.
 
Es ist ein neues Problem aufgetaucht. Das oben angesprochene "besteht" noch, soll heißen ich hätte gerne noch andere Meinungen zu dem Thema.

Zum neuen Problem:

Ich habe eine Rangliste, welche die User nach verschiedenen Kriterien sortiert. Wenn der User nun auf die Rangliste geht, soll natürlich die Seite angezeigt werden, auf welcher sich der User befindet (also entsprechend seinem Rang).
Meine bisherige Idee besteht darin, den Rang des Users beim Einloggen (oder beim ersten Besuch der Rangliste pro Session) in der Session zu speichern. Dabei werden einfach alle Daten ausgelesen und der Rang des Users beim Durchlaufen dieser Daten gespeichert. Über den hier gespeicherten Rang kann ich dann das entsprechende Limit setzen.

Gibt es hier eine Lösung, bei welcher ich nicht alle Daten aus der Datenbank aufrufen muss, sondern ein Teil reicht, ich aber trotzdem die Platzierung des Users herausfinden kann?
 

Neue Beiträge

Zurück