Poker programmieren

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
ProGem
Beiträge: 5
Registriert: 04.03.2011, 09:51

Poker programmieren

Beitrag von ProGem »

Hallo zusammen,

ich hoffe ich befinde mich im richtigen Unterforum.
Ich würde gerne eine (Offline-)Pokersoftware entwickeln und brauche dabei eure Hilfe. Undzwar weis ich nicht welche Programmiersprache ich verwenden soll. Bisher kann ich nur C++. Soviel ich gehört habe, werden Pokersoftwares meisten mit Java programmiert. Welche Vorteile hat Java? Ich habe vor etwa 4Jahre schon eine Pokersoftware entwickelt mit der 3D-Engine vom Buch "3D-Spieleprogrammierung mit DirectX9 und C++" welches ich auch bereits gelesen habe. Leider finde ich den Quellcode nicht mehr und muss nun wieder von vorne anfangen. Ich denke mit einer anderen Enginge oder Programmiersprache... komm ich viel schneller zum Ziel. Was würdet ihr mir empfehlen?

Bin dankbar für jede hilfreiche Antwort :)

MfG
ProGem
joggel

Re: Poker programmieren

Beitrag von joggel »

Hallo,

also, Java hat den Vorteil das du damit OnlinePoker programmieren kannst, oder Poker das auf unterschiedlichen Platforms läuft.
C++ ist mMn schon gut, vorallem wenn Du es schon kannst.
@Engine:
Gibt es sehr viele: Ogre3D zB. halte ich für ziemlich gut, und Du wirst damit bestimmt schnell zum Ziel kommen, schneller als wenn du von Grund auf eine eigene Engine schreibst.

Gruß
Alexander Kornrumpf
Moderator
Beiträge: 2114
Registriert: 25.02.2009, 13:37

Re: Poker programmieren

Beitrag von Alexander Kornrumpf »

also, Java hat den Vorteil das du damit OnlinePoker programmieren kannst, oder Poker das auf unterschiedlichen Platforms läuft.
Ähm ja, das geht mit C++ auch. Es sei denn du meinst mit Online "im Browser" und beziehst dich auf Java Applets.

Ich vermute dass diejenigen die Java verwenden nicht unbedingt 3D dabei im Sinn haben. Der "Vorteil" bestünde dann darin dass Java eine extrem umfangreiche Runtime Bibliothek mit sich bringt die dir viele Aufgaben abnimmt. (Ja ich weiß, Java und 3D geht auch, allerdings nützt die Runtime da eher weniger und der Vorteil verschwindet). Eine vergleichbare Bibliothek für C++ wäre z.B. Qt, was du dir mal anschauen könntest. Wenn es doch 3D sein soll, kannst du im Grunde auf jede beliebige Engine zurückgreifen, bekannte vertreter wären z.B. OGRE (c++) oder jMonkey (Java).

Das Hauptproblem bei Poker ist aber eigentlich nicht die Darstellung sondern vernünftige Zufallszahlen mit genügend großer Entropie zu bekommen. Das gilt jetzt zwar vor allem für Online Poker (Cheat Sicherheit) aber auch offline macht es irgendwie wenig Sinn wenn man 90% der möglichen Hände nie zu sehen bekommt.

Nett zu lesen:
http://www.cigital.com/papers/download/ ... mbling.php

Auch hier (unter Shuffle):
http://www.pokerstars.com/poker/room/features/security/
ProGem
Beiträge: 5
Registriert: 04.03.2011, 09:51

Re: Poker programmieren

Beitrag von ProGem »

joggel hat geschrieben:Hallo,

also, Java hat den Vorteil das du damit OnlinePoker programmieren kannst, oder Poker das auf unterschiedlichen Platforms läuft.
C++ ist mMn schon gut, vorallem wenn Du es schon kannst.
@Engine:
Gibt es sehr viele: Ogre3D zB. halte ich für ziemlich gut, und Du wirst damit bestimmt schnell zum Ziel kommen, schneller als wenn du von Grund auf eine eigene Engine schreibst.

Gruß
ok danke für deine Antwort :)
Mir ist es auch lieber wenn ich bei C++ bleibe. Gibt es auch simplere Engines als Ogre3D?
Weil die Engine ist schon ziemlich umfangreich, für ein simples 2D-Programm
Alexander Kornrumpf
Moderator
Beiträge: 2114
Registriert: 25.02.2009, 13:37

Re: Poker programmieren

Beitrag von Alexander Kornrumpf »

ProGem hat geschrieben:
joggel hat geschrieben:Hallo,

also, Java hat den Vorteil das du damit OnlinePoker programmieren kannst, oder Poker das auf unterschiedlichen Platforms läuft.
C++ ist mMn schon gut, vorallem wenn Du es schon kannst.
@Engine:
Gibt es sehr viele: Ogre3D zB. halte ich für ziemlich gut, und Du wirst damit bestimmt schnell zum Ziel kommen, schneller als wenn du von Grund auf eine eigene Engine schreibst.

Gruß
ok danke für deine Antwort :)
Mir ist es auch lieber wenn ich bei C++ bleibe. Gibt es auch simplere Engines als Ogre3D?
Weil die Engine ist schon ziemlich umfangreich, für ein simples 2D-Programm
Wenn es 2D sein soll würde ich wirklich Qt o.ä. empfehlen.
joggel

Re: Poker programmieren

Beitrag von joggel »

Alexander Kornrumpf hat geschrieben:
also, Java hat den Vorteil das du damit OnlinePoker programmieren kannst, oder Poker das auf unterschiedlichen Platforms läuft.
Ähm ja, das geht mit C++ auch. Es sei denn du meinst mit Online "im Browser" und beziehst dich auf Java Applets.
Oh, wie unachtsam von mir, Du hast natürlich recht, ich beziehe mich mit "Online" darauf, dass man es "im Browser" spielen kann und meine damit die Java Applets.
Alexander Kornrumpf hat geschrieben: Eine vergleichbare Bibliothek für C++ wäre z.B. Qt, was du dir mal anschauen könntest.
Mmmhh.. ich würde davon abraten! Klar, man kann damit schon ein Spiel programmieren, allerdings ist das GUI dann sehr dem des Betriebssystem ähnlich. Es kommt darauf an, was Deine Motivation ist um Qt für die Programmierung eines Spiels vorzuschlagen.

[Edit]
Ich kenne ClanLib ^^ und SFML, diese beiden sind Frameworks/Engines die für das Programmieren von 2D-Spiele gedacht sind. SFML ist wohl sehr beliebt...
Alexander Kornrumpf
Moderator
Beiträge: 2114
Registriert: 25.02.2009, 13:37

Re: Poker programmieren

Beitrag von Alexander Kornrumpf »

Mmmhh.. ich würde davon abraten! Klar, man kann damit schon ein Spiel programmieren, allerdings ist das GUI dann sehr dem des Betriebssystem ähnlich. Es kommt darauf an, was Deine Motivation ist um Qt für die Programmierung eines Spiels vorzuschlagen
Ich weiß nicht was der "2D Spieleengine Markt" so hergibt aber soweit ich das mitbekomme ist SFML da zur Zeit State-of-The-Art und bietet keinerlei GUI System. Da Poker aber ein Spiel ist was praktisch nur aus GUI besteht (Buttons für Raise, Call/Check Fold, Slider für die Höhe des Einsatzes, das wars dann auch) ist die Verwendung einer GUI Bibliothek sicher die größte Zeitersparnis die man sich da machen kann.
Wie ich schon schrieb nehme ich an dass dies die Motivation hinter der Empfehlung Java zu verwenden war, die der Original Poster anscheinend bekommen hat.

EDIT:

Mit deinem Edit hast du die implizite Frage ob es was anders gibt als SFML ja beantwortet.
ProGem
Beiträge: 5
Registriert: 04.03.2011, 09:51

Re: Poker programmieren

Beitrag von ProGem »

Also, das GUI-Design kann vernachlässigt werden, hauptsache funktionell kann alles umgesetzt werden. Buttons sind beim Poker natürlich notwendig, deshalb möchte ich schon eine GUI-Bibliothek benutzen
joggel

Re: Poker programmieren

Beitrag von joggel »

Okay..

Thema GUI + SFML:
Da musste ich mich auch eines besseren belehren lassen:
http://www.sfml-dev.org/wiki/?DokuWiki= ... rch&id=GUI
Ich persönlich finde ClanLib auch recht angenehm zum arbeiten...

Aber mal zum Thema:
Du willst Poker in 2D oder 3D realisieren?
Alexander Kornrumpf
Moderator
Beiträge: 2114
Registriert: 25.02.2009, 13:37

Re: Poker programmieren

Beitrag von Alexander Kornrumpf »

Sind wir uns also einig.

Um nicht als Qt Fanboy zu enden der ich gar nicht bin, es gibt da z.B. Swing (Java), WinForms[oder wie immer das aktuell gerade wieder heißt WPF?!] (C#), Qt (C++), GTK+(C) und wxWidgets

Welche du nimmst ist vermutlich relativ egal, ich habe Qt nur so gepusht da du gerne bei C++ bleiben wolltest.
ProGem
Beiträge: 5
Registriert: 04.03.2011, 09:51

Re: Poker programmieren

Beitrag von ProGem »

joggel hat geschrieben: Du willst Poker in 2D oder 3D realisieren?
In 2D. Das Design der Buttons ist unrelevant, möchte nicht zu viel Zeit für die Visualisierung aufbringen. Also sollte was simples sein
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Poker programmieren

Beitrag von Chromanoid »

Wenn du mal ein bisschen Abwechslung suchst, könntest du dir auch mal Flash anschauen. Es kann ja trotzdem ein Einzelspieler-Poker sein. Gleiches gilt für JavaScript (evt. mit HTML5) und/oder GWT. Wenn du C++ einigermaßen beherrscht, sollte Java, AS3 oder JavaScript kein Problem für dich sein. Flash möchte ich persönlich besonders empfehlen, da damit leicht ein Spiel zu entwickeln ist. Flash Spiele kannst du mit FlashDevelop und dem Flex SDK von Adobe ohne die Adobe Flash CS Umgebung umsonst entwickeln.
joggel

Re: Poker programmieren

Beitrag von joggel »

ProGem hat geschrieben:
joggel hat geschrieben: Du willst Poker in 2D oder 3D realisieren?
In 2D. Das Design der Buttons ist unrelevant, möchte nicht zu viel Zeit für die Visualisierung aufbringen. Also sollte was simples sein
Also dann würde ich mich der Meinung eines anderen ZFX-Members anschliesen: Qt :D
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: Poker programmieren

Beitrag von dowhilefor »

Neue Meinung: C# und WPF oder XNA :) *wegflitz*
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: Poker programmieren

Beitrag von pUnkOuter »

Ich würde in Assembler programmieren und direkt in den Framebuffer schreiben. So hast du die volle Kontrolle.
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
ProGem
Beiträge: 5
Registriert: 04.03.2011, 09:51

Re: Poker programmieren

Beitrag von ProGem »

Fehlt nur noch, dass jemand visual basic vorschlägt :D
Danke für alle Antworten
Ich werde es jetzt mal mit Qt versuchen
joggel

Re: Poker programmieren

Beitrag von joggel »

ProGem hat geschrieben: Fehlt nur noch, dass jemand visual basic vorschlägt :D
Damit kann man auch Spiele programmieren, und wahrscheinlich nicht mal umständlich, sofern sie nicht zu komplex sind.
slice89
Beiträge: 1
Registriert: 07.11.2006, 11:51

Re: Poker programmieren

Beitrag von slice89 »

Ein simples Pokerspiel könnte man auf jeden Fall mit VB(.NET) schreiben, aber da brauch es dann etwas Feinschliff, damit das ganze nicht nach Flickwerk aussieht. Stark performancelastige Spiele sollte man allerdings nicht versuchen, nach meiner Erinnerung bricht die Framerate schnell zusammen, wenn man 30 oder mehr Animationen auf dem Bildschirm hat.

Ich würde noch SDL und GTK (für's GUI) einwerfen. Da dürfte man sich ungefähr genauso schnell einarbeiten wie in QT...
Wundert mich das SDL bis jetzt noch nicht gekommen ist :?:
Als ich mich das letzte mal damit beschäftigt hatte, war es noch schneller als SFML.

MfG
slice
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: Poker programmieren

Beitrag von dowhilefor »

Mal nebenbei bemerkt, der Pokerstars Client dürfte auch in .NET also VB, C# oder Managed C++ geschrieben sein ;)
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
odenter
Establishment
Beiträge: 207
Registriert: 26.02.2009, 11:58

Re: Poker programmieren

Beitrag von odenter »

Ob C# oder VB.net oder Managed C++ macht nicht den geringsten Unterschied. Am Ende kommt eh der gleiche Code heraus. Werden ja auch identische Bibliotheken verwendet, einzig die Syntax ist unterschiedlich.

Ein Poker Spiel ist nun nicht gerade Performance lastig. Selbst GDI+ oder sogar GDI sollte für die Darstellung völlig ausreichen. ^^
Wenn Du schnell Ergebnisse willst .NET mit C#.
Alexander Kornrumpf
Moderator
Beiträge: 2114
Registriert: 25.02.2009, 13:37

Re: Poker programmieren

Beitrag von Alexander Kornrumpf »

Naja ich bleibe bei meiner Meinung, dass die großen GUI Frameworks sich da alle nicht viel tun.

Wir können gerne in einem neuen Thread ein Poll "Was ist dein lieblings GUI Framework?" aufmachen, ein "bestes" zu identifizieren halte ich jedoch für genauso wenig zielführend wie die Suche nach der besten Programmiersprache.
odenter
Establishment
Beiträge: 207
Registriert: 26.02.2009, 11:58

Re: Poker programmieren

Beitrag von odenter »

Alexander Kornrumpf hat geschrieben:Naja ich bleibe bei meiner Meinung, dass die großen GUI Frameworks sich da alle nicht viel tun.
Wir können gerne in einem neuen Thread ein Poll "Was ist dein lieblings GUI Framework?" aufmachen, ein "bestes" zu identifizieren halte ich jedoch für genauso wenig zielführend wie die Suche nach der besten Programmiersprache.
Die Frage ist halt immer was man will.
Antworten