philosucker / Text_Holdem

Texas Holdem Application with AI agents
Apache License 2.0
3 stars 0 forks source link

Texture_Holdem

Description:

Project Background

  1. The project aims to provide more people with an accessible and enjoyable way to experience Texas Holdem.

    • Characteristics of Existing Holdem Applications.

      1) High Risk of Gambling Addiction: Often perceived as mere gambling.
      2) High Entry Barrier: The rules are not easy to learn.
      3) Lack of Solo Play Options: There are no holdem game applications yet that include plausible AI agents.

  2. Texas Holdem presents a valuable opportunity for development
    using Large Language Models (LLM) and Deep Reinforcement Learning (DRL).

    • Texas Holdem is an imperfect information game with strategic simulation elements.
    • Developing AI capable of making optimal decisions and bluffing with limited information requires
      advanced techniques in multimodal input processing (text, images, video, sound).

      1) Notable "Starcraft"(Real-Time Strategy Game) pro-gamers like Hong Jin-ho and Lim Yo-hwan have transitioned to professional Holdem players as of June 2024.

      2) Professional "Go"(Turn-Based Strategy Game) player Lee Sedol has also become a Holdem player as of June 2024.

      Project Plan

  3. from April until June in 2024:

    • Leaning Texas Holdem game.
    • Studying Python programming, FastAPI and Unity.
    • Designing overall architecture.
  4. from June until August in 2024:

    • Develop a Texas Holdem Game Application: Create an application with a sleek and user-friendly UI.
  5. from september until october in 2024

    • Develop an AI Agent for Holdem application:

      1) Utilize LLM APIs to create an LLM model for playing Holdem.
      2) Integrate the LLM model into the Holdem application to collect data for reinforcement learning.

Requirement Skills

  1. Domain Knowledge : No Limit Texas Holdem
  2. Programming Language : Python, C#
  3. Backend : FastAPI
  4. Database : MySQL(SQLAlchemy), MongoDB(Beanie)
  5. Application : Unity
  6. Network Programming : Nginx, HTTP, Web Socket, Message Broker(RabbitMQ)
  7. Asyncrnous Programming : AsyncIO
  8. Deep Learning : LLM, DRL for AI Holdem Agent
  9. DevOps : Docker, Kubernetes

"How to implement Texas Holdem game? It's so complicated;("

I made reference for you:) Please refer to the documents in docs directory


Development Log

09.04.2024

08.14.2024

08.08.2024

08.07.2024 Started comprehensive backend testing

1. Reception: Test sign-up, sign-in, authentication procedures, and anti-fraud functions
2. Floor: Test chat service, broadcasting service, and table matching service after connecting the client and websocket
3. Dealer: Test hold'em game progress after connecting the client and websocket
4. Communication between servers: Test message broker (Reception-Floor-Dealer)
5. Asynchronous programming test
6. Server performance test: Resource usage, load test, bottleneck test

08.06.2024

08.03.2024

07.31.2024

07.30.2024

07.29.2024

07.24.2024

07.22.2024 Started development of the backend

1. Implementing reception, floor, and dealer server algorithms  
2. Implementing server-client connections  
3.Implementing communication between servers  

07.19.2024

07.18.2024

07.16.2024

07.12.2024 Completed implementation of "dealer algorithm"

07.10.2024

07.05.2024

07.02.2024

07.01.2024

06.28.2024

06.27.2024

06.26.2024

06.25.2024

06.24.2024 Started development of texas holdem dealer algorithm.

1. Implementing an algorithm that acts as a dealer in a Texas Hold'em game
2. Implementing calculations of the types of actions a user can make each turn
3. Implementing calculations of conditions for ending each street and hand
4. Implementing calculations of main pot and side pot
5. Implementing showdown
6. Implementing pot distribution

06.19.2024

06.10.2024

06.08.2024

06.04.2024

05.14.2024

04.24.2024