[JAVA] Client - Server System für Onlinespiel
vossi 05.02.2004 - 01:38 956 10
vossi
been there, done that
|
Ich habe vor als kleines Projekt in Java 4 gewinnt über Internet (Java Applets) gegeneinander spielen zu lassen aber so sicher als möglich.
Vorher dachte ich einfach die Applets auf die MySQL datenbank zugreifen zu lassen wobei hier ein problem liegt da diese Applets ja irrsinnig leicht zu decompilieren sind.
Jetzt wüsste ich gerne ob jemand schon eine sinnvolle und erprobte weise kennt sowas zu realisieren bzw. den Applet Code so zu verschlüsseln das niemand mehr auf die MySQL User Daten kommt alternativ dachte ich daran am Server ein Java Programm laufen zu lassen das ganz normal mit dem Applet kommuniziert wobei hier aber das Problem des mehraufwandes ist immer eine gültige Session ID zu haben und alle Befehle abstimmen zu müssen.
Ich hoffe ihr habt sinnvolle Ideen die mir vielleicht hier weiterhelfen da diese Entscheidung ja doch sehr grundlegend für das Projekt ist.
|
crashman
OC Addicted
|
mh warum mysql als verbindendes element zwischen den applets ? Kann mir das net ganz vorstellen?? aber mit rmi sollte das kein problem sein falls keine ärgeren firewalls zwischen den clients sind. Wenn ja wirst du wohl rpc händisch machen müssen.
|
Sir_Gunslinger
Bloody Newbie
|
eine TCP connection wär auch ne Alternative....
|
vossi
been there, done that
|
naja mysql deshalb weil auf dem server die ergebnisse gespeichert werden müssen
|
crashman
OC Addicted
|
naja mysql deshalb weil auf dem server die ergebnisse gespeichert werden müssen naja ist das net mit kanonen auf spatzen schiessen?? Ich würd das eher in einer Datenstruktur in der Serverklasse speichern die beim runterfahren des server serialisiert gespeichert wird.
|
vossi
been there, done that
|
nein ist es absolut nicht .. das ganze wird per klein gemacht und sollte dann schon 200-500 leute gleichzeitig aushalten .. der server wird NIE heruntergefahren
|
gue
Addicted
|
Also ich würde das Konzept von crashman empfehlen: Du lässt einen zentralen Server rennen und die Applets kontaktieren diesen dann mittels RMI oder einer selbst implementierten Schnittstelle (wobei aber RMI zwecks Einfachheit zu empfehlen ist). Der Server wertet die Daten aus und kann die Ergebnisse in die Datenbank schreiben. Das hat auch den Vorteil, dass Cheaten so gut wie unmöglich ist und dass die Applets nicht auf die Datenbank zugreifen müssen, sondern nur die im Server implementierte Logik. Der Server könnte zB die Schnittstellen haben, dass ein neues Spiel aufgemacht wird, die Liste aller verfügbaren Spiele abgerufen wird und - wenn ein Spiel gestartet ist - dass ein Spieler seine Marke in eine Spalte reinwirft. HTH
|
vossi
been there, done that
|
ja so dachte ich mir das auch danke .. nur würd ich die schnittstelle selber programmieren da ich RMI nicht kenne (bzw. nichtmal weiss was das ausgeschrieben bedeutet )
|
Ecraft
Here to stay
|
|
crashman
OC Addicted
|
wenn du es mal "überrissen" hast kannst du in 5 minuten wirklich brauchbare client server gerüste erstellen. Ein Problem ist halt nur daß es recht empfindlich auf firewalls reagiert.
|
atrox
in fairy dust... I trust!
|
rmi ist schon ein segen, mußt halt wegen der berechtigungen der VM aufpassen. eine alternative möglichkeit, währe ein "spiel"-objekt zu serializieren und per tcp zu übertragen.
|