Ich baue derzeit ein Browsergame (jaja ich weiß; gibt viel zu viele, blabla, ich machs halt trotzdem weil ich was lernen will) auf und in diesem Zuge fällt mir so langsam auf, dass ich bald Probleme kriegen werde.
Nämlich dann, wenn ich die Aktionen eines Spielers auf den Bildschirmen der anderen Spieler anzeigen lassen will.
Stellt euch am besten eine große Karte vor, auf denen die Spieler Figuren hin und her ziehen können (also kein "klassisches" Browsergame mit Tabellen, etc)
Prinzipiell soll es natürlich so ablaufen, dass
1. A möchte Aktion 1 ausführen -> Request an den Server: Aktion ausführen
2. Server überprüft, ob A die Aktion ausführen darf, tut dies entsprechend oder verweigert die Aktion
3. Server verteilt, wenn die Aktion erfolgreich war, die Aktion an alle am Spiel teilnehmden Clients
4. A erhält die Antwort vom Server -> die Aktion wir auf dem Bildschirm ausgeführt (mit JavaScript z. B. eine Figur bewegt, whatever) oder eine Fehlermeldung erscheint
5. Zeitgleich wird die Aktion (bei Erfolg) auf allen angeschlossenen Clients ausgeführt.
Wie daraus ersichtlich wird, möchte ich eine Art Echtzeitspiel bauen, natürlich nur Pseudoechtzeit, aber prinzipiell in diese Richtung.
Woran ich scheitere, ist Punkt 3. Da ich das Spiel ausschließlich auf PHP/MySQL/jQuery aufbauen möchte, damit man es sich ohne Probleme auf einem beliebigen Webhoster installieren kann, kommen andere Technologien nicht in Frage.
Wie aber realisiere ich mit diesen Sprachen einen Server-Push? PHP kann dies meines Wissens nach nicht.
Und wenn ich es mit periodischen Requests aller Clients (z. B. jede Sekunde) mache; wie müsste man ein solches Update gestalten, damit jeder Client immer alle Aktionen der anderen mitbekommt?
Stehe etwas auf dem Schlauch, hoffe jemand hat Anregungen oder vielleicht weiterführende Literatur...
Nämlich dann, wenn ich die Aktionen eines Spielers auf den Bildschirmen der anderen Spieler anzeigen lassen will.
Stellt euch am besten eine große Karte vor, auf denen die Spieler Figuren hin und her ziehen können (also kein "klassisches" Browsergame mit Tabellen, etc)
Prinzipiell soll es natürlich so ablaufen, dass
1. A möchte Aktion 1 ausführen -> Request an den Server: Aktion ausführen
2. Server überprüft, ob A die Aktion ausführen darf, tut dies entsprechend oder verweigert die Aktion
3. Server verteilt, wenn die Aktion erfolgreich war, die Aktion an alle am Spiel teilnehmden Clients
4. A erhält die Antwort vom Server -> die Aktion wir auf dem Bildschirm ausgeführt (mit JavaScript z. B. eine Figur bewegt, whatever) oder eine Fehlermeldung erscheint
5. Zeitgleich wird die Aktion (bei Erfolg) auf allen angeschlossenen Clients ausgeführt.
Wie daraus ersichtlich wird, möchte ich eine Art Echtzeitspiel bauen, natürlich nur Pseudoechtzeit, aber prinzipiell in diese Richtung.
Woran ich scheitere, ist Punkt 3. Da ich das Spiel ausschließlich auf PHP/MySQL/jQuery aufbauen möchte, damit man es sich ohne Probleme auf einem beliebigen Webhoster installieren kann, kommen andere Technologien nicht in Frage.
Wie aber realisiere ich mit diesen Sprachen einen Server-Push? PHP kann dies meines Wissens nach nicht.
Und wenn ich es mit periodischen Requests aller Clients (z. B. jede Sekunde) mache; wie müsste man ein solches Update gestalten, damit jeder Client immer alle Aktionen der anderen mitbekommt?
Stehe etwas auf dem Schlauch, hoffe jemand hat Anregungen oder vielleicht weiterführende Literatur...
Kommentar