Was ist beste Lösung für Client To Client?

wSam

Erfahrenes Mitglied
Hallo zusammen

Ich möchte ein Java Spiel erstellen, welches netzwerkfähig ist. Nun kam die Idee auf eine Datenbank (MySQL) zu verwenden und dafür eine PHP Anbindung zu erstellen. Die Datenbank und das PHP Interface laufen auf einem Webserver.
Ist dies Problemlos möglich von den Java Clients nun nur mit der Datenbank / PHP zu kommunizieren?
Und nach welchen Stichworten muss ich dafür suchen?
Und ist dies überhaupt schlau?

Oder wäre Client To Client ohne Datenbank doch besser?

Vielen Dank im Voraus und Gruss
 
HI wSam,
Es kommt immer drauf an was du machen willst. Um ein status zu speichern empfehl ich dir eine datenbank. Für das eigendliche Spiel ist eine direktverbindung besser. Um einen Client zu finden kannst du auch eine DB benutzen. Wenn du in PHP so fit bist kannst du es damit machen. Ansonsten kannst du dieses auch mit Servlet erledigen.

Suchtips.
Direktverbindung: Sockets
Webseite: HttpURLConnection
 
Hi,

es kommt drauf an was für ein Spiel du machen möchtest. Spielen nur 2 Spieler gleichzeitig oder ist ein "Browser-Game" für viele viele Spieler?
 
Hallo

Danke für die Antworten.

Es handelt sich um ein Player vs. Player Spiel, ein Schach. Die Idee der Datenbank / PHP Lösung wäre gewesen, dass man sich mit dem Java Client beim Server anmelden kann, und sehen kann wer das alles für ein Spiel bereit ist. In der Datenbank werden danach alle Spielzüge gespeichert. Der Java Client dient nur zum Spielen.

@mrno

Verlangt das grosse PHP Kentnisse? Diverse Sachen habe ich in PHP schon gemacht wie login, DB-Anbinungen und so Sachen.

Servlet? Wäre das Schlau? Da bräuchte ich doch noch einen Web Server?

Zur Direktverbindung: Ist es kein Problem, wenn beide Clients eine NAT Adresse haben, weil sie in einem Lokalen Netzwerk sind? Kann man so auch mit einem anderen Client welcher wiederum in einem anderen Lokalen Netzwerk ist, durch die Eingabe der IP Adresse Verbindung aufnehmen? Da muss man doch noch einen Eintrag in die NAT Tabellle des Routers machen?

Danke und Gruss
 
Grüß Dich,
also zum Thema Netzwerk habe ich mal was über JXTA gelesen. Ich selbst habe vor ca 2 Jahren auch mal ein Schachspiel gebaut (ein Scach für 4 Personen). Ich hatte mich dabei nur um das Spiel selbst interessiert und nicht für irgendeine Persistenz von Zügen. Ich hatte dazu (zum ersten Mal) mit Sockets in Java entwickelt, was einigermaßen ging, wobei es eigetnlich noch heir und da hakt und über Router etc ich dann auch probleme hätte. Eigetnlich, wenn ich Lust dazu hätte, würde ich die Kommunikation des Spiels nochmal schreiben, da ich damals einfach ein einfaches Chat-Programm-Beispiel genommen und entsprechend nach meinen Vorstellungen aufgebohrt hatte. Ich glaube JXTA ist da ne bessere Möglichkeit, gerade wegen Firewall, Router (Nat) etc Problematik (google einfach mal danach).

PHP naja wenn Du meinst es verwenden zu wollen.... Ich nehme an, Du meinst damit die einzurichtende Spielwiese, damit sich Leute finden und Tische eröffenen können, gelle? Könnte man natürlich auch genausogut im Spiel selbst integrieren, das ist eine reine Architekturfrage. Andererseits bietet es sich natürlich an, eine Spielwiese vorgelagert zu betrachten, um für vielleicht andere Spiele, die Du noch vor hast zu bauen identisch zu halten (allerdings ist dies unabhängig ob Du zusätzlich PHP verwendest oder nicht). Somit bräuchtest Du für andere Spiele keine neue/erneute Benutzerverwaltung implementieren.

Dann kommt natürlich noch die Verteilung des Spiel-Clients. Empfehlenswert wäre da entweder Applet (das yahoo-Schach z.B. tut sowas) oder Java-Web-Start.
Dazu brauchst Du natürlich einen Web-Server. Ich hatte mich damals für Web-Start entschieden, da Du dann auh die Möglichkeit hättest offline zu spielen.
Interessant ist auch eine E-Mail-Schnittstelle, für Langsamspieler. Hatte zwar sowas bei mir nicht vorgesehen gehabt, aber solche Ideen findet sich bei Schach glaube ich nicht selten.

viel Spaß und Erfolg

Takidoso
 
Kostenloser web server für servlet:
http://www.myjavaserver.com

Zu PHP kann ich dir leider nicht viel sagen. Ich benutze PHP zu wenig(das letzte mal vor 3 Jahren) um dir da weiterzuhelfen. Zu servlets findest du hier im board genug wissen. Ansonsten googlen. Ich hatte bei direktverbindungen über sockets noch nie Probleme. Du musst da auch nichts in der nat eintragen. (FTP funktion passiv mode als beispiel)
 
Hmm, danke für die guten Ideen.

Ihr habt mich fast überzeugt entweder ein Servlet / JDBC oder JXTA zu verwenden.

Und Java Web Start tönt auch gut.

Könnte man natürlich auch genausogut im Spiel selbst integrieren,...
Dann bräuchte ich doch auch einen Server wo man sich anmelden und abmelden kann oder?
 
Schreib dir doch einfach eine web oberflächer, wo man sich anmelden kann. Speichere die login dateien in deiner db und fertig. Dann kannst du mit deinem Programm kontakt zum server aufnehen (z.B. über ein Servlet) ,die login daten senden. Das servlet kann die daten mit der db überprüfen und wenn alles in ordnung ist ihn anmelden.
 
Zurück