Browsergame / Chess Online
-
Hallo,
Ich habe nun gut 3 Monate täglich eine Einstündige Zugfahrt vor mir. Und diese möchte ich produktiv ausnutzen.
Ich habe mir überlegt, dass ich entweder ein Schachportal schreibe, wobei User live gegeneinander Schach spielen können oder ein kleines Browserspiel.
Das ganze ist bloss für mich selbst (und vielleicht 2,3 Kumpel, jedoch nichts professionelles, dass ich ins Netz stellen werde. Also nein, ich bin kein Script Kiddie.)
Nun denn, mein Problem ist, dass ich bislang herzlich wenige Applikationen im Web realisiert habe.
Wie würdet ihr ein Browserspiel oder ein Schachportal realisieren? Mein grösstes Problem ist der Clientteil (Ich werde natürlich Ajax verwenden für die Kommunikation vom Client zum Server).
- Wie soll ich das ganze auf dem Client anzeigen lassen? Einfach mit Divs und nen bisschen Javascript-Zauber?
- Was soll ich dem Server jeweils übergeben und wie soll ich nach der Antwort auf dem Client updaten? z.B Bei einem Schachzug?Meine Probleme mögen ziemlich banal klingen, aber irgendwie fehlt mir ein kleiner Anstoss...
Danke schon im Voraus!
-
Hallo,
geht die Frage jetzt in Richtung Design oder Umsetzung?
Umsetzung ist einfach. Alle Clients die an einem Spiel teilnehmen fragen in regelmäßigen Abständen beim Server nach ob eine Änderung (die sinnigerweise irgendwo - vorzugsweise: Datenbank gespeichert wird) stattgefunden hat. Wenn ja, zeigt er diese Änderung (z.B. in Form von Bewegung einer Spielfigur) an. Die einzelnen Schachfiguren würd ich eindeutig benennen (id="Turm_Schwarz1", id="Turm_Schwarz2", usw) um sie im Spielverlauf besser identifizieren zu können. Das gleiche gilt für die Positionen ("<div id="A1">, <div id="B1"> usw.). Dann musst du nur noch die Beziehung zwischen Position und Spielfigur herstellen ("Turm_Schwarz1" => "A1").
Was dann noch fehlt ist die Logik des Spiels, da ich aber herzlich wenig Ahnung von Schach habe, will ich dazu nichts sagen ^^
VlG
-
Ich würde vielleicht den Client dumm lassen, gänzlich ohne Schachwissen, so daß der selbe Client für Schach, 4-Gewinnt und Dame taugt.
-
Als Alternative zu Divs könntest du dir auch mal das HTML5 Canvas-Element anschauen (Einführung). Das wird von den meisten Browsern schon unterstützt und eignet sich für die Darstellung dynamischer Grafiken besser als Divs. Ich bastel auch gerade ein einem kleinen Browserspiel und nutze dieses Element. Ein Schachbrett lässt sich damit sehr einfach zeichen.
Die Figuren würde ich dann in einem Array speichern. In regelmäßigen Abständen holt sich der Client dann (über ein PHP-Script) das aktuelle Figuren-Array vom Server oder eben nur die Veränderungen. Ebenso kann der Client über ein Script einen Zug setzen, wobei der Server dann überprüft, ob der Spieler auch an der Reihe ist, der Zug gültig ist usw. bevor er das serverseitige Figuren-Array ändert.
-
Hallo,
Danke für die Antworten!
Ich werde mir das ganze nochmals durch den Kopf gehen lassen...