更新 README.md,重写项目描述,添加功能特性、系统要求及构建步骤

This commit is contained in:
Ayndpa
2025-11-19 22:37:30 +08:00
parent 37272a5b95
commit d91d57e20a

162
README.md
View File

@@ -1,42 +1,158 @@
# ConnectTool - Dear ImGui Hello World
# ConnectTool - 在线游戏联机工具
This repository includes a simple Dear ImGui "Hello World" example using GLFW + OpenGL3 for cross-platform compatibility.
基于 Steam 网络的在线游戏联机工具,支持创建和加入游戏房间,提供 P2P 网络连接和 TCP 端口转发功能。使用 Dear ImGui 构建图形界面。
## Prerequisites
## 功能特性
- C++17 compatible compiler
- CMake 3.10 or higher
- OpenGL 3.0 or higher
- GLFW library
- **Steam 网络集成**: 基于 Steamworks SDK 实现 P2P 网络连接
- **房间管理**: 创建和加入游戏房间,支持邀请 Steam 好友
- **TCP 服务器**: 内置 TCP 服务器,监听端口 8888支持多客户端连接
- **连接状态监控**: 实时显示房间成员、延迟和连接类型
- **单实例运行**: 确保只有一个程序实例运行,自动激活已存在的窗口
- **跨平台支持**: 支持 Windows、Linux 和 macOS
## Getting Dear ImGui
## 系统要求
1. Download Dear ImGui from https://github.com/ocornut/imgui
2. Extract the contents to a folder named `imgui` in the project root (next to `CMakeLists.txt`)
- C++17 兼容编译器
- CMake 3.10 或更高版本
- OpenGL 3.0 或更高版本
- Steam 客户端(需要登录)
- 以下依赖库:
- GLFW3
- Boost (system 组件)
- Steamworks SDK
## Building
## 依赖项说明
1. Ensure you have GLFW installed. On Windows, you can use vcpkg:
### Dear ImGui
1. 从 [Dear ImGui](https://github.com/ocornut/imgui) 克隆或下载
2. 将内容放置到项目根目录的 `imgui/` 文件夹
3. 或使用 git submodule 添加:
```bash
git submodule add https://github.com/ocornut/imgui.git imgui
```
vcpkg install glfw3
```
On Linux/macOS, use your package manager (e.g., `sudo apt install libglfw3-dev` on Ubuntu).
2. Create a build directory:
### nanoid_cpp
1. 从 [nanoid_cpp](https://github.com/mcmikecreations/nanoid_cpp) 克隆或下载
2. 将内容放置到项目根目录的 `nanoid_cpp/` 文件夹
3. 或使用 git submodule 添加:
```bash
git submodule add https://github.com/mcmikecreations/nanoid_cpp.git nanoid_cpp
```
用于生成唯一的、URL 友好的字符串 ID。
### Steamworks SDK
1. 从 [Steamworks SDK](https://partner.steamgames.com/) 下载
2. 解压到项目根目录的 `steamworks/` 文件夹
### 中文字体
程序需要 `font.ttf` 文件以显示中文界面,请将支持中文的 TrueType 字体文件放置在可执行文件同级目录。
## 构建步骤
### Windows (使用 vcpkg)
1. 安装依赖:
```powershell
vcpkg install glfw3 boost-system
```
2. 配置并构建:
```powershell
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=[vcpkg路径]/scripts/buildsystems/vcpkg.cmake
cmake --build . --config Release
```
3. 运行程序:
```powershell
.\Release\OnlineGameTool.exe
```
### Linux
1. 安装依赖:
```bash
sudo apt install libglfw3-dev libboost-system-dev
```
2. 构建:
```bash
mkdir build
cd build
cmake ..
make
```
3. Run the executable:
```
./ConnectTool
3. 运行:
```bash
./OnlineGameTool
```
## Cross-Platform Notes
### macOS
- This setup uses GLFW for window management and OpenGL for rendering, ensuring compatibility across Windows, Linux, and macOS.
- If using Visual Studio on Windows, you can generate VS solution files with `cmake -G "Visual Studio 16 2019" ..` (adjust for your version).
- For macOS, ensure you have Xcode command line tools installed.
1. 安装依赖:
```bash
brew install glfw boost
```
2. 构建和运行步骤同 Linux
## 使用说明
1. **启动程序**: 确保 Steam 客户端已登录
2. **主持房间**: 点击"主持游戏房间"按钮创建新房间
3. **加入房间**: 输入房间 ID 并点击"加入游戏房间"
4. **邀请好友**: 在好友列表中选择好友发送邀请
5. **查看状态**: 在"房间状态"窗口查看所有成员的连接信息
## 项目结构
```
ConnectTool/
├── ConnectTool/
│ ├── online_game_tool.cpp # 主程序
│ ├── net/ # 网络模块
│ │ ├── tcp_server.cpp # TCP 服务器实现
│ │ └── multiplex_manager.cpp
│ └── steam/ # Steam 网络模块
│ ├── steam_networking_manager.cpp
│ ├── steam_room_manager.cpp
│ ├── steam_message_handler.cpp
│ └── steam_utils.cpp
├── imgui/ # Dear ImGui 库
├── nanoid_cpp/ # ID 生成库
├── steamworks/ # Steamworks SDK
└── CMakeLists.txt
```
## 技术栈
- **UI 框架**: Dear ImGui + GLFW + OpenGL3
- **网络**: Steamworks P2P + Boost.Asio
- **构建系统**: CMake
- **语言标准**: C++17
## 注意事项
- 程序运行时需要 Steam 客户端处于登录状态
- TCP 服务器默认监听端口 8888请确保端口未被占用
- 首次运行需要将 `steam_api64.dll` (Windows) 及相应的动态库文件放在可执行文件同级目录
## 致谢
感谢以下开源项目:
- [Dear ImGui](https://github.com/ocornut/imgui) - 即时模式图形用户界面库
- [nanoid_cpp](https://github.com/mcmikecreations/nanoid_cpp) - C++ 实现的唯一 ID 生成器
- [GLFW](https://www.glfw.org/) - 跨平台窗口和输入处理库
- [Boost](https://www.boost.org/) - C++ 通用库集合
## 许可证
本项目使用的第三方库遵循各自的许可证:
- Dear ImGui: MIT License
- nanoid_cpp: MIT License
- GLFW: Zlib License
- Boost: Boost Software License