Game Shift 一个帮你整合本地游戏的游戏启动器

  • 开源项目
  • 游戏工具
  • Tauri

2026/09/17 06:10:48

| 4| 2

Game Shift 是一款 Windows 本地游戏启动器,用来统一管理散落在电脑各个目录里的游戏。

如果你的游戏基本都来自 Steam、Epic Games 等游戏平台,那么你可能并不需要它;但如果电脑里有不少独立游戏、免安装游戏,或者来自其他渠道的本地游戏,Game Shift 可以帮你把它们集中整理到一个地方。

这个项目由我个人开发,目前已经开源。

GitHub:mpasdi/game-shift

uploadImage

1. 为啥做这个项目

之所以做这个项目,是因为我自己确实需要一个桌面软件,来管理电脑里比较杂乱的本地游戏。

读书的时候预算有限,我经常会从网上找一些免费游戏、独立游戏,或者别人分享的游戏资源。工作以后虽然买正版游戏更多了,但本地依然积累了不少来自不同渠道的游戏。

也正是因为如此,我本地电脑中有很多散乱的游戏资源,我经常会记不起上次玩的是哪款游戏,或者某个游戏在哪个文件夹下,甚至有些文件夹下有很多.exe文件,我都不知道要点击哪个.exe。正是这些原因,我最终决定去开发这么一款软件。

其实世面上也有一些类似的产品,不同的是市面上的很多游戏库以账号和在线平台为中心,而 Game Shift 更偏向本地优先:

  • 游戏可以分散在不同硬盘和目录;
  • 不需要登录 Game Shift 账号;
  • 核心功能不依赖官方服务器;
  • 游戏库数据保存在本机;
  • 从游戏库中移除记录,不会删除磁盘中的游戏文件。

我希望它更像一个帮助整理本地游戏的桌面工具,而不是另一个需要注册、同步和长期联网的平台。

2. 目前具备的能力

当前公开版本为 v0.2.3 Beta,已经支持以下功能:

1. 手动添加和编辑游戏

可以直接选择游戏的.exe文件进行手动添加。选择完本地的.exe文件,会自动回填游戏名称、工作目录等,接下来只需点击‘保存’按钮,即可完成一个游戏的添加

添加之后支持修改:

  • 游戏名称
  • 启动程序路径
  • 工作目录
  • 启动参数
  • 游戏封面

对于一些需要特殊启动参数或工作目录的老游戏,这种方式会更可靠。

uploadImage

2. 扫描目录并批量导入

如果你本地有大量的游戏资源,一个个的去添加,显然是低效的。因此 Game Shift 也支持通过扫描目录进行批量导入。

选择一个游戏目录后,Game Shift 会递归查找其中的.exe文件。

单纯找出所有可执行文件并不难,真正麻烦的是:一个游戏目录里经常不只有一个.exe。

里面可能同时存在:

  • 游戏主程序
  • 启动器
  • 配置工具
  • 卸载程序
  • 崩溃报告工具
  • 运行库安装程序
  • 编辑器或调试工具
  • 32 位和 64 位的不同版本

所以扫描功能并不是简单地列出所有.exe,而是尝试结合文件名、目录结构、程序元数据和常见游戏引擎特征,优先找出更可能是真正游戏入口的程序。

当然,这套识别规则目前还不可能覆盖所有游戏,因此 Game Shift 会保留不确定的候选项,交给用户做最后确认。

uploadImage

3. 网格和列表两种视图

游戏库支持网格和列表两种展示方式,也可以按照名称或启动程序文件名搜索。

uploadImage

目前还提供:

  • 收藏游戏
  • 最近游玩记录
  • 启动次数
  • 最近收藏排序
  • 最近游玩排序

我平时更喜欢封面网格,但在游戏数量较多、需要快速查找具体程序时,列表模式会更加直观。

uploadImage

4. 本地封面和联网封面

Game Shift 会尝试发现游戏目录中的本地封面,也支持手动选择图片。

如果找不到合适的图片,还可以选择启用 SteamGridDB 联网封面功能,根据游戏名称搜索封面。

联网封面功能默认关闭,需要用户自行提供 SteamGridDB API Key。API Key 只保存在本机,本地游戏路径不会上传。

对于用户而言,这可能是整个软件中最麻烦的操作了,因为需要在steamgriddb 网站中注册账号并生成API Key。如果你需要联网封面功能, 则需要去该网站进行注册

https://www.steamgriddb.com/

从网络选择的封面也会经过格式、尺寸和文件大小检查,然后保存到本地缓存中。以后即使关闭联网封面功能,已经保存的封面仍然可以继续使用。

uploadImage

3. 技术实现

Game Shift 的界面使用 Vue 3 + TypeScript,桌面端基于 Tauri v2,本地文件、扫描和数据库相关能力主要由 Rust 与 SQLite 完成。

选择 Tauri,主要是因为这个项目需要比较多的本地能力,例如:

  • 访问本地游戏目录;
  • 扫描可执行文件;
  • 读取程序信息;
  • 提取游戏图标;
  • 处理和缓存封面;
  • 启动本地程序;
  • 保存本地游戏库。

同时,我又希望界面开发保持相对灵活,所以最后采用了 Vue + Tauri 的组合。

4. 开发过程中比想象中麻烦的地方

整个项目做下来,我越来越觉得,真正花时间的并不是“把一个.exe 启动起来”,而是处理各种现实中的边界情况。

最典型的就是目录扫描。

一开始我以为扫描游戏目录,无非就是递归查找.exe。但实际一个游戏目录里可能同时存在游戏主程序、启动器、配置工具、卸载程序、崩溃报告工具,甚至还有 32 位和 64 位两个版本。

另外,不同游戏引擎的目录结构差异也很大。Ren'Py、RPG Maker、Unity、Unreal 的目录特征并不一样,所以很难靠一套简单规则准确识别所有游戏入口。

除此之外,还遇到过不少细节问题:

  • 中文路径和带空格的路径;
  • 封面图片损坏、尺寸异常或者带有方向信息;
  • 数据库写入失败后,不能留下不完整的封面缓存;
  • 应用更新失败时,不能影响原有版本和本地游戏数据。

真正做下来以后,我发现这些边界情况比“启动游戏”本身更花时间。

5. 目前的不足

Game Shift 目前仍然是 Beta 版本,还有不少限制:

  • 目前只提供 Windows 10/11 x64 安装包
  • 安装包没有购买商业代码签名证书
  • Windows SmartScreen 可能提示“未知发布者”
  • 还不能跟踪游戏进程的实际运行状态
  • 暂时不能统计单次或累计游玩时长
  • 分类与标签功能尚未开放
  • 目录扫描规则仍然可能出现误判
  • 联网封面需要用户自行申请 SteamGridDB API Key

后续准备完善的方向包括游戏运行状态、游玩时长、分类标签、扫描目录管理,以及更准确的游戏入口识别等

6. 下载和体验

如果你也有一些散落在不同目录中的 Windows 本地游戏,可以试试 Game Shift。

项目地址:

https://github.com/mpasdi/game-shift

安装包可以在 GitHub Releases 中下载:

https://github.com/mpasdi/game-shift/releases

由于目前安装包没有商业代码签名,Windows 可能会显示 SmartScreen 提示。安装前请确认文件来自项目官方 GitHub Releases,并根据 Release 页面提供的 SHA-256 文件进行校验。

如果遇到问题,可以在 GitHub Issues 中反馈。提交问题时,如果能附带 Game Shift 版本、Windows 版本、复现步骤和相关截图,会非常有帮助。

项目使用 MIT License。如果你对 Tauri、Vue、Rust,或者本地游戏管理感兴趣,也欢迎查看源码、提交 Issue 或参与改进。

Game Shift 现在还有不少地方需要继续完善,不过已经基本解决了我最开始遇到的问题。如果你也有类似的本地游戏管理需求,欢迎尝试。

评论(0)

仅支持邮箱注册用户发表评论

评论加载中...