Salve!
Salvete!
jetzt möcht ich ein TCG (Rundenbasierendes Kartenspiel) einbauen. Es sollen 2 user (beide müssen online sein) gegeneinander spielen können.
Ich habe keine Ahnung wie ich das Kartenspiel umsetzen soll, welche Sprache bzw. ob es ohne Client-.EXE geht.
Du musst dich zunächst entscheiden, WIE das Spiel ablaufen soll:
-
direkt live, wie bei einem Chat, mit Anzeige der Spielsituation
(Beispiele: www.brettspielwelt.de, www.gravon.de) -
rundenbasiert, wie bei Postspielen, also der erste Spieler logt sich ein, macht seinen Zug, der zweite Spieler bekommt eine Mailbenachrichtigung, logt sich irgendwann ein, macht seinen Zug, etc.
(Beispiele: www.cartagena-online.de, www.yucata.de, www.online-vinci.de.vu)
Für Live-Spiele wäre eine dauerhafte Verbindung zwischen den Spielclients und dem Spielserver sehr vorteilhaft, was aber nicht mehr mit reinem HTML und CGI/ASP geht. Dazu eignen sich Java-Applets (bei denen ja nur der Bytecode und nicht der Quellcode veröffentlicht werden), die sich beim Server anmelden und die Verbindung offenhalten, damit der Server bei Bedarf die Spieländerungen durch die Handlungen der anderen Spieler direkt übermitteln kann. Hierzu musst du dann einen eigenen Spiele-server schreiben (also eine .EXE in einer beliebigen Sprache).
gute Sprachen für den Client: Java (Applets), Flash, oder beliebige Hochsprache (dann statt Applet eher .EXE-Download)
gute Sprachen für den Server: irgendeine Hochsprache (Java, C+, Delphi, VB, ...)
Für rundenbasierte Postspiele (sozusagen webunterstützte Play-by-E-Mail-Spiele) reicht es aus, wenn du mit PHP oder ASP serverseitig die aktuelle Spielsituation darstellst und mit einem Klick die Änderungen in die Datenbank speicherst. Der andere Spieler braucht die Änderungen ja nicht live mitbekommen, sondern erst wenn er sich einlogt. Das verschicken von Benachrichtigungsmails wenn der aktive Spieler wechselt, ist sehr nützlich und lässt sich auch serverseitig mit PHP/Perl/ASP realisieren.
gute Sprachen für den Client: reines HTML/CSS
gute Sprachen für den Server: beliebig (CGI-basiert, z.B. PHP, Perl, ASP/VB, ASP/JScript, C++, ...)
PS: Natürlich kannst du "quasi-live" Spiele auch ohne clientseitige Programme/Skripte schreiben, musst dann aber - was ich unschön finde - durch META REFRESH regelmässig den Browser veranlassen, nach dem neuen Spielstand zu fragen, auch wenn dieser sich nicht geändert hat.