更新 README.md,重写项目描述,添加功能特性、系统要求及构建步骤
This commit is contained in:
162
README.md
162
README.md
@@ -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
|
- **Steam 网络集成**: 基于 Steamworks SDK 实现 P2P 网络连接
|
||||||
- CMake 3.10 or higher
|
- **房间管理**: 创建和加入游戏房间,支持邀请 Steam 好友
|
||||||
- OpenGL 3.0 or higher
|
- **TCP 服务器**: 内置 TCP 服务器,监听端口 8888,支持多客户端连接
|
||||||
- GLFW library
|
- **连接状态监控**: 实时显示房间成员、延迟和连接类型
|
||||||
|
- **单实例运行**: 确保只有一个程序实例运行,自动激活已存在的窗口
|
||||||
|
- **跨平台支持**: 支持 Windows、Linux 和 macOS
|
||||||
|
|
||||||
## Getting Dear ImGui
|
## 系统要求
|
||||||
|
|
||||||
1. Download Dear ImGui from https://github.com/ocornut/imgui
|
- C++17 兼容编译器
|
||||||
2. Extract the contents to a folder named `imgui` in the project root (next to `CMakeLists.txt`)
|
- 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
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Run the executable:
|
3. 运行:
|
||||||
```
|
```bash
|
||||||
./ConnectTool
|
./OnlineGameTool
|
||||||
```
|
```
|
||||||
|
|
||||||
## Cross-Platform Notes
|
### macOS
|
||||||
|
|
||||||
- This setup uses GLFW for window management and OpenGL for rendering, ensuring compatibility across Windows, Linux, and macOS.
|
1. 安装依赖:
|
||||||
- If using Visual Studio on Windows, you can generate VS solution files with `cmake -G "Visual Studio 16 2019" ..` (adjust for your version).
|
```bash
|
||||||
- For macOS, ensure you have Xcode command line tools installed.
|
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
|
||||||
Reference in New Issue
Block a user