Skip to content

NLK511/BluffinMuffin.Protocol

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BluffinMuffin.Protocol

BluffinMuffin Protocol is a Bi-directional Communication Protocol for Poker Game. It has been proven on TCP using C#, but it not confined to it.

The project will be released using Semantic Versioning and developped using Vincent Driessen's Git Model.

####Project includes

  • Documentation that defines the protocol

    A project that states it implements a version of the protocol is saying that it supports what's in the documentation of this version.

  • Libraries for Implementation

    As an option, the protocol has libraries released with each versions of the protocol. Using these libraries is not a requirement to implement the protocol, but it can save you some time ;)

    Libraries currently available in:

    • .Net (For implementations in C#, VB.Net, etc.)
    • Python

####Known Implementations

###Current Version: 3.0.0 (2015-09-20)

  • GameTypeEnum now contrains Community, Stud & Draw
  • RoundTypeEnum is no more supported
  • TableInfoCommand is now useless since JoinTableResponse, GameStarted and BetTurnStartedCommand command now have more information. TableInfoCommand have been removed.
  • Cards in the hand of the player are now represented by FaceUpCards and FaceDownCards. PlayerInfo datatype and PlayerHoleCardsChangedCommand have been modified accordingly.
  • CheckCompatibilityResponse now have an AvailableGames field instead of SupportedRules. GameInfo replaces RuleInfo.
  • Available poker variants that can be implemented by the server are now listed in GameSubTypeEnum
  • CreateTableCommand has been simplified
  • Enhancement Issue #18: Validate email on registering
  • Better support of Stud Poker
  • PlayerTurnBeganCommand now have more information
  • PlayerJoinedCommand and PlayerLeftCommand are replaced with GameMessageCommand.
  • Full changelog ...

Documentation


Playing Cards

Playing Cards sended and received with this protocol are always represented with a normalized string.

Obsolete Information

Obsolete information is information required by the protocol for retro-compatibility, but will disappear in the next major version. When implementing a version of the protocol that has an Obsolete information, this is what you should do

  • Sender should continue to send the obsolete information
  • Receiver should stop using the information as soon as possible.

General Commands

General commands are for communication everywhere.

  • DisconnectCommand

    This command is sent to inform the other end of the Tcp Connection that the communication should end

Lobby Commands

Lobby commands are for communication about identification, table list, table creations, etc. Everything that is around a poker game, but that isn't directly a poker game. The lobby has two modes: Quick mode and Registered mode.

Quick mode

The Quick mode is a mode where the money is given to the player when he enters the table. For example, If the amount is set to 1500 on Table1, every player will receive 1500$ to play with when they will enter the Table. For more information on this mode, see the Quick Mode Documentation section.

Registered mode

The Registered mode is a mode where a player connects with an account. He then have some money, that he uses throughout different games. When entering a game, he will take some of that money to play, and when he leaves what was left of that money will be given back to him. For more information on this mode, see the Registered Mode Documentation section.

Game Commands

Game commands are for communication inside a specific table. It's for all the actions on a poker game. For more information on these commands, see the Game Commands Documentation section.

Packages

No packages published

Languages

  • C# 62.4%
  • Python 36.2%
  • PowerShell 1.4%