Mailinglisten-Archive |
Kommen wir zum nächsten Problem: Die Kommunikation der Spiel-Clients. Um das Spiel für alle Spieler zugänglich zu machen gibts ja bekanntlich jede Menge Ansätze. Ich schreibsel hier einfach mal nieder, was mir so spontan dazu einfällt: 1. Datenbank / File Die kompletten Spieldaten in einer DB / in einem File speichern. Pros: - Ich hab die Daten Cons: - Imperformant (andauernd lesen 4 clients die selben Daten) - Unsicher (multiple Schreibzugriffe) 2. SRM (ScriptRunningMagig/Mashine): Pro Spiel ein persistentes Objekt in der SRM laufen lassen. Pros: - Performante Zugriffe (geg. DB/File) Cons: - Wie stabil ist SRM? 3. SHM (SharedMemory): Pro Spiel wird das komplette Spielobjekt in einen SharedMemory Bereich gelegt. Pros: - Performante Zugriffe (geg. DB/File) - Stabil (givrs schon seit Urzeiten) Cons: - Objekt wird beim schreiben serialisiert (Referenzen??) 4. IRC (InternetRelayChat): Jedes Spiel erhält einen Chatraum auf einem IRC-Server. Hierdrin werden pro ausgeführter Aktion Nachrichten abgesetzt, die die nicht ausführenden Clients parsen. Die Spielobjekte werden in Sessions gehandelt und je nach Aktionslog verändert. Pros: - Performanter Zugriff - Stabil - Objekt in Sessions - Mit etwas Mehrarbeit ein lesbares Log der Siedler Party Cons: - Overhead eine eigene "Sprache" für die Aktionen zu erstellen Das von meiner Seite. Nun die Qual der Wahl... Oder hat noch jemand eine Alternative? Wie würdet Ihr das Updaten der Clients realisieren? Auch hierzu meine ersten Ideen: 1. Seiten Reload: Die komplette Client-GUI (Website) wird alle 10 Sekunden komplett reloaded, solange der Spieler keine Aktion auszuführen hat: Pros: - Kein JavaScript benötigt - Immer der aktuellste Stand Cons: - Riesiger Datenoverhead 2. Status Popup: Der Spieler hat grundsätzlich 2 Fenster offen. Seine Haupt-Ansicht und ein recht kleines (schlichtes) Popup, welches sich alle 10 Sekunden neuläd, solange der Spieler keine Aktion ausführt / keine Nachricht erhält. Ist letzteres der Fall, vergrößert sich das Fenster um die Nachricht anzuzeigen (z.B. "Spieler X spielte seine Aktionskarte 'Rohstoffmonopol' aus. Alle Rohstoffe vom Typ 'Erz' wurden an den Spieler übertragen." als Nachricht oder eben den Dialog zum würfeln, wenn der Spieler an die Reihe kommt. Pros: - Kaum Overhead dur die Reloads (im Fall das keine neuen Daten vorliegen wird nur ein mini HTML-File geladen). - Kompletter Spielflow in einem eigenen Fenster - Hauptdatenansicht nur im Bedarfsfall neuladen Cons: - JavaScript 3. Status Frame: Wie 2. nur statt mit einem Popup in einem Frame. Pros: - Wie 2. Cons: - Wie 2. So, das sind mal wieder Fragen über Fragen! ;) Freue mich schon wieder auf jede Menge Konstruktive Ideen! Grüße! Toby software is like sex, free it's better http://www.schlitt.info
php::bar PHP Wiki - Listenarchive