德州扑克,2–10 人
支持单机对战机器人、局域网或互联网对局。
pokerth · pokerth/pokerth
PokerTH 是用 C++ 与 Qt 编写的开源德州扑克游戏,可对最多九名电脑对手,也可通过官方服务器或自建服务器与真人联网对局。项目自 2006 年持续至今,采用 AGPLv3 许可,README 标明不含广告与真钱赌博;当前版本 2.1.11,要求 Qt 6.7+ 与...
PokerTH 是一款用 C++ 与 Qt 编写的开源德州扑克游戏,自 2006 年持续开发至今。玩家既可以与最多九名电脑对手进行单机对局,也可以经由官方服务器或自行搭建的专用服务器,与真人玩家联网对战。项目采用 AGPLv3 许可,README 明确说明不含广告、不涉及真钱赌博、不做追踪。当前版本为 2.1.11,构建要求 Qt 6.7 及以上与 C++23 编译器。
支持单机对战机器人、局域网或互联网对局。
可设置起始筹码、按人数或按分钟提升盲注、手动盲注顺序、行动超时以及可调的界面速度。
公开局、仅注册用户局、邀请制局与排位局,并可选择是否允许旁观。
玩家列表、对局列表、聊天、表情回应,以及按账号保存的私信。
按需开启(可选功能,详见 `docs/third_party_services.md`)。
20 种牌桌主题、11 种牌组、多种牌背,主题支持 ZIP 导入导出。
界面完整翻译为 29 种语言。
Linux、Windows、macOS、Android 与 iOS。
提供可在任意环境运行的专用服务器二进制。
src/engine 负责手牌、下注轮次与机器人逻辑(本地与网络两种变体)。src/net 基于 Boost.Asio,包含 TLS 与面向浏览器客户端的 WebSocket。pokerth.proto 是客户端与服务器共同的唯一事实来源。src/db 与 src/dbofficial 提供服务器数据库接口及官方服务器的异步 MySQL 后端。src/core、src/config 涵盖日志、加密、头像处理与配置文件。src/chatcleaner 为官方服务器使用的聊天过滤服务。tests 为驱动运行中服务器的协议测试套件(Java)。protoc,运行时需 libprotobuf)cmake -DCMAKE_BUILD_TYPE=Release -S . -B ./build -G Ninja
cmake --build ./build --config Release --target all
sudo cmake --install ./build
可将 all 替换为单个目标:pokerth_qml-client、pokerth_client、pokerth_dedicated_server、pokerth_official_server、pokerth_chatcleaner。若需包含测试证书与数据目录的干净构建,可先运行 bash clean_build.sh,详见 INSTALL。
发布构建通过 Docker 镜像与 GitHub Actions 工作流实现可复现,而非手工构建:Windows 见 docker/windows(MinGW 交叉构建);Android 见 docker/android 与 build_android_qml.sh;macOS/iOS 见 build_macos_combined.sh 与 build_ios_qml.sh;AppImage/deb/ZIP/Snap/Flatpak 见 docker/linux。上述构建在 .github/workflows 中均有手动触发的工作流。
cmake --build ./build --target pokerth_dedicated_server
./build/bin/pokerth_dedicated_server
服务器从 PokerTH 配置文件读取设置,并将日志写在配置文件旁。端口、防火墙、TLS 证书与服务器列表条目等完整步骤见 docs/server_setup_howto.txt。周边工具包括:pokerth_bot(用于负载与协议测试的无头客户端)、pokerth_globalnotice(向服务器全体发送通知)、tools/analyze_server_log.py(将服务器日志渲染为 SVG)。
本仓库构建两个桌面客户端,它们使用同一套协议,并在 GUI 之下共享引擎、网络与数据库层:
| 目标 | GUI | 状态 |
|---|---|---|
pokerth_qml-client |
Qt Quick / QML(src/gui/qt6-qml) |
当前客户端,覆盖全平台,可从手机尺寸扩展到桌面 |
pokerth_client |
Qt Widgets(src/gui/qt) |
经典桌面客户端;已停止开发,2.1.9 为最终版本(仅缺陷修复构建,当前 2.1.9.3) |
服务器侧有两个二进制:面向所有想开服者的 pokerth_dedicated_server,以及额外包含 pokerth.net 所用用户数据库的 pokerth_official_server。
牌桌、牌组与牌背是三个独立的样式类别,全部为纯数据——一个 XML 文件加配套图形,无需代码。QML 客户端在 data/gfx/qml 中附带 20 种牌桌主题、11 种牌组与 16 种牌背;Qt Widgets 客户端在 data/gfx/gui 与 data/gfx/cards 中有自己的样式集。在 QML 客户端的“设置”→“样式”中可查看已安装样式及预览、从 ZIP 导入新样式、将任意样式导出为 ZIP。导入的样式会复制到用户数据目录,因此可跨版本更新保留。自制样式的方法见 docs/gui_styling_howto.txt,其中说明 XML 标签、图形尺寸与命名约定、样式测试方法以及如何提交到 pokerth.net 的样式库。
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
open-goal/jak-project 是面向 PS2《Jak & Daxter》系列的开源逆向工程与反编...