Skip to content

Repository files navigation

GameHub

GameHub

GameHub 是一个 Windows 本地游戏库,把 Steam、Epic Games、Battle.net 已经安装到本机的游戏集中到一个入口。它不接账号、不读云库、不上传任何数据,只负责把本地已经存在的游戏找出来,给你一个统一好看的管理界面。

LicensePlatformRuntime

截图

GameHub 主界面

功能

  • 只展示已安装游戏:Steam、Epic、战网各自从本机清单文件读取,不依赖账号登录
  • 统一卡片:封面、大小、最近游玩时间、安装路径一目了然
  • 一键启动:点击“启动”交给对应平台拉起,也可以直接“打开位置”
  • 自动识别路径缺失:游戏被移动后会在卡片上明确标记
  • 已安装优先排序:常玩的游戏排在最前面,方便快速启动
  • 自动过滤 Demo、试用内容、DLC 与 Steam 组件
  • 搜索、平台筛选、排序、收藏、网格/列表视图
  • 封面本地缓存:优先用官方 CDN 高清封面,失败时回退到 exe 图标,不会阻塞扫描
  • 完全离线可用:封面缓存后不联网也能正常浏览和启动

扫描来源

平台本机数据来源启动协议
Steam所有库目录下的 steamapps/appmanifest_*.acfsteam://rungameid/<appid>
Epic GamesC:\ProgramData\Epic\EpicGamesLauncher\Data\Manifests\*.itemcom.epicgames.launcher://apps/...
Battle.netC:\ProgramData\Battle.net\Agent\aggregate.json经由战网客户端 --exec="launch <code>" 登录会话启动

快速开始

Electron 桌面版

npm install
npm start

也可以直接双击项目根目录的 start-gamehub.cmd

纯 Web 版

Web 版是扫描器生成的静态页面,不需要安装任何东西:

powershell -NoProfile -ExecutionPolicy Bypass -File .\web\GameHub.ps1
start .\web\GameHub.html

构建 Windows 应用

npm run scan # 只运行扫描器,输出 JSON
npm run pack # 生成未安装的目录版本
npm run dist # 生成 NSIS 安装包与便携版

构建产物输出到 dist/

封面策略

扫描器按以下顺序尝试获取封面:

  1. Steam 本地 appcache/librarycache 高清封面
  2. Steam 官方 CDN 竖版封面
  3. Epic Store 官方内容接口的竖版图片
  4. Battle.net 清单中的 box_art_uri
  5. 游戏 exe 自带图标

封面会缓存到 Electron 用户数据目录或 data/covers。下载失败的记录会暂时跳过,避免每次扫描都重复请求。

隐私与离线

  • 不需要登录 Steam / Epic / 战网,也不读取在线游戏列表
  • 不上传游戏数据,不发送统计信息
  • 封面只来自各平台官方公开的 CDN 或内容接口
  • 游戏清单、收藏和封面全部保存在本机

项目结构

GameHub/
├── main.js # Electron 主进程
├── preload.js # 安全的 IPC 桥接
├── src/
│ ├── renderer/ # 自绘界面(HTML/CSS/JS)
│ └── scanner/ # Steam / Epic / 战网扫描器
├── web/
│ ├── GameHub.ps1 # 生成静态网页版
│ └── GameHub.template.html
├── assets/icon.png # 应用图标
└── dist/ # 打包输出(不提交到 git)

常见问题

打包后的 exe 提示“无法验证发布者”

当前构建没有商业代码签名证书,Windows 智能应用控制(Smart App Control)可能会拦截。可以关闭“Windows 安全中心 → 应用和浏览器控制 → 智能应用控制”后再运行,或在项目目录用 npm start / start-gamehub.cmd 开发模式启动。

卡片显示“路径缺失”

说明游戏清单还在,但安装目录已经被移动或删除。检查该游戏的安装路径,或把游戏重新装回对应位置后重新扫描。

战网游戏点“启动”提示无法通过战网服务进行登录

battlenet://game/<product_id> 和直接调用游戏本体 Hearthstone.exe -launch -uid hs_beta 拿不到战网客户端的登录会话,所以游戏会拒绝登录。现在 GameHub 会先确保战网客户端在线,再调用 Battle.net.exe --exec="launch WTCG" 这类命令,让战网客户端像点击“开始游戏”一样带上账号令牌启动游戏。Web 版会随扫描生成 launch_battlenet_*.cmd 启动器,Electron 版也会自动使用同一套命令。

某个游戏没有封面

离线或官方 CDN 未收录时,会显示平台配色的首字母占位图;重新联网后再次扫描会自动补上。

技术栈

  • Electron
  • 原生 Node.js 文件扫描,无第三方运行时依赖
  • 原生 HTML/CSS/JS 界面,无前端框架
  • PowerShell 生成静态 Web 版
  • electron-builder 打包

License

MIT

About

GameHub - 本地已安装游戏的统一 Windows 游戏仓库(Steam / Epic / Battle.net)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages