Guten Morgen miteinander.
Ich schreibe dieses Thema hier in der Computer-Sektion, da es mit LotGD eig. nur indirekt zu tun hat.
In den letzten Tagen sind mir immer mehr Ideen zu einem Browsergame durch den Kopf geflogen (Inhalt tut hier nichts zur Sache). Um diese wirren Geister dann auch etwas zu beruhigen hatt' ich mir einiges notiert, einige Abläufe gezeichnet, Datenstruktogramme gezeichnet, u.s.w.
Dann ist mir allerdings plötzlich die Aktualisierungsproblematik in den Sinn gekommen. Und ich stutzte.
Was ist die Aktualisierungsproblematik (Aus meiner Sicht), erklärt an einem LotGD-Beispiel:
- Spieler kommt in Waldspecial
- Spieler erhält Gold im Waldspecial
- Spieler aktualisiert die Seite immer und immer wieder, um jedes Mal mehr Gold zu erhalten
Natürlich funktioniert dieses Beispiel nur, wenn da nicht der Navigationsschutz vorhanden wäre.
Nun gefällt mir dieser Ansatz aber nicht wirklich. Ich wollte das irgendwie loslösen und einen neuen Weg gehen.
Nun meine Frage an euch: "Hatte jemand bereits ebenfalls mit dieser Problematik zu kämpfen, und fand einen für Ihn ertragbaren Weg, oder zumindest eine Idee / einen Vorschlag?"
Ich habe auch schon einen Ansatz - Er sollte funktionieren, scheint mir aber noch etwas aufwendig (Untenstehend einige meiner Ideen dazu)
Harthas hat geschrieben:
- Bei jeder Aktion wird eine gewisse Art von Event generiert und in die Tabelle geschrieben.
- Diese Aktionen sollen einen eindeutigen Namen besitzen (bsp: house_id_1_to_2 um ein haus auf stufe 2 zu bauen).
- Wenn die Seite aktualisiert werden sollte wird erst kontrolliert, ob bereits ein solches Event vorhanden ist, oder bereits aufgerufen wurde ( Man kann ein Haus nicht 2 Mal auf Stufe 2 ausbauen ),
wenn dem nicht so ist, wird das Event hinzugefügt
- Diverse Event-Kategorien ( Ausbau, Forschung, Armee, Ausbildung, u.s.w. )
- Wenn ein user nun eine Seite aktualisiert, werden seine Handles überprüft, ob eines davon seine Gültigkeit erreicht hat ( Für jede Handle-Kategorie kann ein spezielles Skript geschrieben werden).
Ist ein Handle inzwischen ungültig ( BSP: Hausbauzeit ist abgelaufen ) so wird ein weiteres Skript aufgerufen um die Resultate auszuführen ( BSP: Hausstufe 1 erhöhen ).
- Ablauf an Hausausbaue
- Benutzer klickt auf Haus ausbauen
- Kontrolliere, ob das Haus überhaupt vorhanden ist und diesem Spieler gehört.
- Kontrolle, ob das Handle bereits vorhanden ist und nur 1x vorhanden sein darf. Wenn ja -> Abbruch
- Wenn nein -> script_requirements soll ausgeführt werden. Wenn dieses nicht true zurück gibt -> Abbruch
- Wenn true -> Handle haus_ausbaue_id_1_zu_2 wird in DB geschrieben
- Beim nächsten Benutzerklick
- Alle Handles des Benutzers werden ausgelesen ( closed=false)
- script_duration wird ausgeführt ( Für jedes andere Skript ). Gibt dieses false zurück -> passiert nichts
- Bei true -> script_result wird ausgeführt
- Handle closed wird auf true gesetzt.
Wäre natürlich super, irgend etwas von irgend jemandem zu hören.
Mit herzlichen Grüssen,
Louis / Harthas