Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Elainaaa/ConnectTool

Repository files navigation

ConnectTool - 在线游戏联机工具

QQ讨论群:616325806

基于 Steam 网络的在线游戏联机工具,支持创建和加入游戏房间,提供 P2P 网络连接和 TCP 端口转发功能。使用 Dear ImGui 构建图形界面。

功能特性

  • Steam 网络集成: 基于 Steamworks SDK 实现 P2P 网络连接
  • 房间管理: 创建和加入游戏房间,支持邀请 Steam 好友
  • TCP 服务器: 内置 TCP 服务器,监听端口 8888,支持多客户端连接
  • 连接状态监控: 实时显示房间成员、延迟和连接类型
  • 单实例运行: 确保只有一个程序实例运行,自动激活已存在的窗口
  • 跨平台支持: 支持 Windows、Linux 和 macOS

系统要求

  • C++17 兼容编译器
  • CMake 3.10 或更高版本
  • OpenGL 3.0 或更高版本
  • Steam 客户端(需要登录)
  • 以下依赖库:
    • GLFW3
    • Boost (system 组件)
    • Steamworks SDK

依赖项说明

Dear ImGui

  1. Dear ImGui 克隆或下载
  2. 将内容放置到项目根目录的 imgui/ 文件夹
  3. 或使用 git submodule 添加:
    git submodule add https://github.com/ocornut/imgui.git imgui

nanoid_cpp

  1. nanoid_cpp 克隆或下载
  2. 将内容放置到项目根目录的 nanoid_cpp/ 文件夹
  3. 或使用 git submodule 添加:
    git submodule add https://github.com/mcmikecreations/nanoid_cpp.git nanoid_cpp

用于生成唯一的、URL 友好的字符串 ID。

Steamworks SDK

  1. Steamworks SDK 下载
  2. 解压到项目根目录的 steamworks/ 文件夹

中文字体

程序需要 font.ttf 文件以显示中文界面,请将支持中文的 TrueType 字体文件放置在可执行文件同级目录。

构建步骤

Windows (使用 vcpkg)

  1. 安装依赖:

    vcpkg install glfw3 boost-system
  2. 配置并构建:

    mkdir build
    cd build
    cmake .. -DCMAKE_TOOLCHAIN_FILE=[vcpkg路径]/scripts/buildsystems/vcpkg.cmake
    cmake --build . --config Release
  3. 运行程序:

    .\Release\OnlineGameTool.exe

Linux

  1. 安装依赖:

    sudo apt install libglfw3-dev libboost-system-dev
  2. 构建:

    mkdir build
    cd build
    cmake ..
    make
  3. 运行:

    ./OnlineGameTool

macOS

  1. 安装依赖:

    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 - 即时模式图形用户界面库
  • nanoid_cpp - C++ 实现的唯一 ID 生成器
  • GLFW - 跨平台窗口和输入处理库
  • Boost - C++ 通用库集合

许可证

本项目使用的第三方库遵循各自的许可证:

  • Dear ImGui: MIT License
  • nanoid_cpp: MIT License
  • GLFW: Zlib License
  • Boost: Boost Software License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.9%
  • CMake 8.1%

AltStyle によって変換されたページ (->オリジナル) /