# Texas Hold'em Poker als Online-Spiel mit Freunden



## oppaernst (8. Mrz 2021)

Hallo zusammen,

ich habe mit Java in eclipse ein Texas-Hold'em-Poker-Spiel für bis zu 8 Personen programmiert.
Das komplette Spiel läuft allerdings bisher nur in der eclipse-Konsole.

Zwei Schritte sollen jetzt folgen:

1. Das Poker-Spiel soll grafisch umgesetzt werden (bisher existiert ja nur die reine Syntax)
2. Das Poker-Spiel soll als Online-Spiel gestaltet werden, sodass ein Freund hostet (einen Raum erstellt) und diverse Freunde dann beitreten können.

Fragen:
a) Wie kann ich die beiden Schritte am sinnvollsten abarbeiten?
b) Gibt es spezielle Tools zur grafischen Umsetzung von Spielen, oder sollte man das "hart" programmieren? Was hat sich bewährt und ist Stand der Technik (Extra Software, GUI,...)?
c) Wie mache ich dann ein Online-Spiel daraus und in welcher Reihenfolge macht es am meisten Sinn, die oben genannten Schritte abzuarbeiten?
d) Das ganze soll erst mal als .exe-Datei unter Windows laufen. Kann man am Ende aus eclipse heraus eine ausführbare Datei erzeugen, über die gespielt werden kann?

Viele Grüße
oppaernst


----------



## oppaernst (8. Mrz 2021)

PS.: Wie sieht es mit AWT, swing, SWT, JavaFX aus?


----------



## temi (8. Mrz 2021)

oppaernst hat gesagt.:


> PS.: Wie sieht es mit AWT, swing, SWT, JavaFX aus?


JavaFX ist die modernste Variante.

"Online" bedeutet für dich "normale" Java-Anwendungen mit einer Client-Server-Kommunikation, nehme ich an, oder? Alternativ dazu könnte "online" auch eine webbasierte Anwendung bedeuten, die dann entsprechend auf einem Webserver und im Browser läuft.


----------



## LimDul (8. Mrz 2021)

Bzgl. der Frameworks:
AWT direkt nimmt nie, wenn mit Swing als Überbau.

Bezüglich der drei Frameworks:
* Swing ist das älteste und den Anwendungen sieht man (sofern man das Look & Feel nicht anpasst) in der Regel auch an, dass es sich um Java Anwendungen handelt. Hierzu findet man dafür aber auch die meisten Informationen im Netz bzgl. Tutorials, Best Practices etc.
* SWT ist das Framework auf dem Eclipse aufbaut. Sieht moderner aus. Da kann ich nicht viel zu sagen.
* JavaFX ist das neuste Framework (das mal eine Zeitlang Bestandteil des JDK wars, mittlerweile ein eigenes Artefakt). Die Anwendungen hiermit sehen moderner aus. Ich selber hab damit noch nicht gearbeitet, steht aber auf meiner Todo Liste, daher weiß ich auch nicht, wie gut die Infos sind, die man dazu findet.



> a) Wie kann ich die beiden Schritte am sinnvollsten abarbeiten?
> c) Wie mache ich dann ein Online-Spiel daraus und in welcher Reihenfolge macht es am meisten Sinn, die oben genannten Schritte abzuarbeiten?


Mit einen Blatt Papier und Stift bzwl. irgendwelchen Modellings Tools ala Umlet, Visio, Dia und was es sonst noch gibt  

Sprich, das wichtigste ist die Architektur. Das heißt folgendes sollte klar sein:

* Wie sieht das UI aus, wie ist die Benutzerführung, welche Dialoge gibt es, wie ist der Kontrollfluss
* Wie soll das Protokoll bzgl. des Online Spiels sein. Das heißt - um mal in die theoretische Informatik abzudriften - einen Zustandsautomaten malen. Also überlegen welche Informationen müssen abstrakt ausgetauscht werden, damit das Spiel online funktioniert.

Die beiden Dinge hängen insofern zusammen, dass natürlich das UI die "Zustände" des Online-Protokolls abbilden muss bzw. die Benutzerführung in der Regel Informationsaustausch über das Online Protokoll bedingt. Wichtig: Das muss keine 1:1 Abbildung sein - das sollte man schon trennen, aber man muss schon die beiden Seiten kennen.

Wie gut man das umsetzen kann, hängt davon ab, wie gut die Architektur der Konsolenvariante ist. Ist da Benutzereingabe/Ausgabe komplett getrennt von der Spiellogik? Dann wird es einfacher - sonst muss man viel umbauen.

Das ganze Projekt ist nicht ohne und nichts für einen Anfänger, aber durchaus ein reizvolles Projekt (Sowas ähnliches hat mir vor Ewigkeiten der ersten Job nach der Uni verschafft).


----------



## oppaernst (9. Mrz 2021)

Hallo,

erst mal vielen Dank für die Infos.
Also erst mal einen Plan machen... Klar. Eine Frage ist allerdings noch offen:

Kann man aus eclipse heraus eine ausführbare Datei erzeugen (z.B. .exe), die man unter Windows dann ausführen kann?

Viele Grüße


----------



## LimDul (9. Mrz 2021)

Eclipse - so direkt nein.

Aber es gibt tools die das können und die man in einen Build Prozess wie Maven oder Gradle einhängen kann.


----------

