- 桌面应用
【免费下载链接】Starward
Game Launcher for miHoYo - 米家游戏启动器
Starward 是一个以解决官方启动器 HoYoPlay 痛点为目标的开源第三方游戏启动器,覆盖 HoYoverse(米哈游)旗下全部 PC 端游戏,并集成了游戏时长记录、账号切换、截图管理、抽卡记录保存等扩展能力。本文以项目 README.md 为主体骨架,结合仓库源码结构,完整介绍其安装要求与步骤、核心功能模块的源码实现、本地化协作方式以及本地编译环境,帮助读者快速部署 Starward 并从源码层面理解其功能边界。
Starward 是什么
Starward这个名字取自《崩坏:星穹铁道》的宣传语May This Journey Lead UsStarward,非常适合用作应用名。
Starward 是一个开源的第三方启动器,设计目标是弥补 HoYoPlay(米哈游官方启动器)的不足。它支持 HoYoverse 旗下在 PC 端发行的全部游戏,致力于完全替代官方启动器。在启动器的基础功能之外,项目还按个人需求整合了多项附加功能,README 中明确列出的包括:
- 记录游戏时长(Record game time)
- 切换游戏账号(Switch game accounts)
- 查看游戏截图(View game screenshots)
- 保存抽卡记录(Save gacha records)
从仓库源码结构看,这些功能分别对应src/Starward/Features/下的 PlayTime、GameAccount、Screenshot 与 Gacha 四个功能目录,此外还有 GameLauncher、GameRecord、CloudGame 等更多模块,README 也提示“更多功能留待你自行探索”。
安装要求与步骤
系统与运行时要求
在安装前,设备需要满足以下条件:
| 要求 | 说明 |
|---|---|
| Windows 版本 | Windows 10 1809(版本号 17763)及以上 |
| WebView2 Runtime | 需要预先安装,用于应用内嵌网页(如登录、公告等场景) |
| WebP 图片扩展 | 需要安装,用于显示 WebP 格式的背景图片与素材 |
| 系统视觉效果 | 建议开启系统设置中的透明效果(Transparency effects)与动画效果(Animation effects),以获得更好的使用体验 |
关于 WebP 扩展有一个特别提示:WebP 图片扩展通常随系统附带(一般是预装组件),如果应用无法正常显示背景图片,请确认该扩展是否已安装。
这些要求的设定与项目的技术选型直接相关:从 Starward.csproj 可以看到,主程序面向net10.0-windows10.0.26100.0,最低平台版本为10.0.17763.0(对应 Windows 10 1809),并启用了 WinUI(<UseWinUI>true</UseWinUI>)与 Windows App SDK(<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>),这解释了为什么对系统版本有明确的下限要求。
安装步骤
- 前往项目的 GitHub Release 页面,根据你的 CPU 架构下载对应安装包(仓库发布配置覆盖 x86、x64、ARM64 三种架构,见 win-x86.pubxml、win-x64.pubxml 与 win-arm64.pubxml)。
- 解压安装包。
- 运行
Starward.exe,并跟随首次启动的引导提示完成初始化配置。
首次启动时,程序会在 App.xaml.cs 的OnLaunched中调用AppConfig.CheckEnviromentAsync()对环境进行检查;启动入口则在 Program.cs,其Main方法通过Microsoft.UI.Xaml.Application.Start启动 WinUI 应用,并注册了AppDomain.CurrentDomain.UnhandledException全局异常处理,异常日志默认写入%LOCALAPPDATA%\Starward\log目录。
单实例与命令行启动细节
从 App.xaml.cs 的OnLaunched实现可以观察到几个实用的启动细节:
- 程序通过
AppInstance.FindOrRegisterForKey("main")实现单实例运行,重复启动时会重定向到已有实例并退出当前进程; - 启动参数带
--hide时,只启动系统托盘窗口(SystemTrayWindow),不显示主窗口; - 支持
starward://test/协议前缀,用于打开 URL 协议测试窗口; - 支持
rpc、playtime、startgame等命令式启动参数(见HandleStartupAsync),其中playtime配合pid与biz参数用于记录游戏进程时长,startgame配合biz参数可直接拉起对应游戏,这些参数的实际业务实现在 PlayTimeService 与 GameLauncherService 中。
核心功能与源码实现
游戏时长记录(PlayTime)
README 提到的“记录游戏时间”由 PlayTimeService 实现。从源码看,LogPlayTimeAsync(GameBiz biz, int pid)会以游戏进程 PID 注册一个playtime_{pid}的应用实例(避免重复记录),随后以约 800~1200 毫秒的随机间隔轮询进程状态,进程退出时写入PlayTimeState.Stop记录并结束计时循环。计时的启停通过startgame/playtime命令参数串联:startgame启动游戏后会派生playtime子进程完成记录。UI 侧由 PlayTimeButton.xaml 展示累计时长。
游戏账号切换(GameAccount)
“切换游戏账号”由 GameAccountService 实现。其核心机制是从 Windows 注册表读取各游戏的登录凭证:
- 通过
biz.GetGameRegistryKey()定位游戏在注册表中的键; - 根据服务器区域(
cn/global)读取对应注册表值(键名定义见 GameRegistry.cs,如MIHOYOSDK_ADL_PROD_CN_h3123967166与MIHOYOSDK_ADL_PROD_OVERSEA_h1158948810); - 对读取到的字节数据做 SHA256 哈希并生成账号实体
GameAccount,同时针对不同游戏(bh3、hk4e、hkrpg)分别从不同注册表值中解析 UID。
已保存的账号列表则通过 DatabaseService 存入本地 SQLite 数据库(查询语句可见GetGameAccountsFromDatabase中的SELECT * FROM GameAccount WHERE GameBiz = @biz)。切换账号时,GameAccountSwitcher.xaml 会负责将选中的凭证写回注册表,实现免密登录切换。
截图管理(Screenshot)
截图功能由 Screenshot 目录下的多个组件协作完成:
- ScreenCaptureService.cs 与 ScreenCaptureHelper.cs:负责游戏进程的自动截图捕获与存储;
- ScreenshotPage.xaml:按游戏/日期分组浏览截图的主界面;
- ImageViewWindow.xaml:全屏看图窗口;
- ImageBatchConvertWindow.xaml:支持批量格式转换(图片编解码相关能力可参考 Codec 目录下的
ImageLoader、ImageSaver等实现); - ScreenshotFolderManageDialog.xaml:管理截图保存文件夹。
抽卡记录(Gacha)
抽卡记录是功能最丰富的模块之一,对应 Gacha 目录,按游戏拆分为三个服务:GenshinGachaService(原神)、StarRailGachaService(星穹铁道)、ZZZGachaService(绝区零)。
从基类 GachaLogService.cs 的源码可以看到关键实现逻辑:
- 各游戏的卡池记录统一存入本地 SQLite 表(如
GachaLogService.GetUids()中的SELECT DISTINCT Uid FROM {GachaTableName}); - 读取记录后,服务会为每条记录计算序号
Index与保底计数Pity,这是抽卡统计页展示五星保底进度(GachaStatsCard.xaml、ZZZGachaStatsCard.xaml)的数据基础; - 卡池数据通过 GachaLogClient.cs 及按游戏划分的
GenshinGachaClient、StarRailGachaClient、ZZZGachaClient(均在 Starward.Core/Gacha 下)从官方接口获取; - 支持 UIGF 格式的导入/导出与云端存档备份(UIGFGachaService.cs、UIGF3File.cs、UIGF4File.cs);
- 支持将记录导出为 Excel 文件(依赖 MiniExcel,见 GachaLogExportFile.cs)。
支持的游戏范围
Starward 覆盖 HoYoverse 旗下全部 PC 端游戏。仓库中 GameBiz.cs 定义了统一的游戏业务标识(如hk4e对应原神、hkrpg对应崩坏:星穹铁道、nap对应绝区零、bh3对应崩坏3 等),并结合服务器区域(cn/global)区分国服与海外服。游戏元数据(启动参数、安装信息、公告、版本包等)通过 HoYoPlay 与 HoYoPlayService 从官方渠道拉取;游戏安装目录的记录与校验逻辑可在 GameLauncherService.cs 中看到(支持可移动存储设备上的游戏路径)。启动游戏前,StartGameButton.xaml 等组件会提供登录态检查与启动选项。
本地化(Localization)
Starward 的应用内文本通过 Crowdin 平台协作翻译,README 中展示了各语言当前的翻译进度徽章,涉及语言包括:de-DE、en-US、it-IT、ja-JP、ko-KR、ru-RU、th-TH、vi-VN、zh-CN、zh-TW 等。
从 Localization.cs 可以看到,程序内维护了一份包含 11 种语言的语言列表(含标题与语言代码,如("简体中文 (zh-CN)", "zh-CN")、("繁體中文 - 台灣地區 (zh-TW)", "zh-TW"))。实际字符串资源存放在 src/Starward.Language 目录下的Lang.*.resx系列资源文件(默认资源为Lang.resx,各语言版本如Lang.zh-CN.resx、Lang.ja-JP.resx等),核心库 Starward.Core 则有自己的CoreLang.*.resx资源系列。
如果你希望参与翻译,README 提供了两份指引:
- Localization Guide:本地化贡献指南;
- 翻译工作通过 Crowdin 的 starward 项目进行,可帮助翻译与校对你的母语文本。
本地开发与编译
要在本地编译 Starward,需要安装Visual Studio 2022,并勾选以下工作负载:
- .NET Desktop Development(.NET 桌面开发)
- C++ Desktop Development(C++ 桌面开发)
- Universal Windows Platform Development(通用 Windows 平台开发)
这三项工作负载的用途与仓库构成相对应:主程序是 WinUI/.NET 桌面应用(.NET Desktop Development),Starward.Launcher 是一个 C++ 原生启动器项目(C++ Desktop Development),而 WinUI 的 XAML 编译与打包则依赖 UWP 平台工具链(Universal Windows Platform Development)。
从 Starward.csproj 还可以观察到更多技术细节:
- 项目引用关系:主程序引用
Starward.Core(核心数据模型与 API 客户端)、Starward.Language(本地化资源)、Starward.RPC(后台 RPC 服务)与Starward.Setup.Core四个子项目; - 关键技术栈:CommunityToolkit.Mvvm(MVVM 与消息机制)、CommunityToolkit.WinUI(控件与动画)、Microsoft.WindowsAppSDK 1.8、Microsoft.Data.Sqlite(本地数据库)、Dapper(数据访问)、Serilog(日志)、MiniExcel(Excel 导出)、ComputeSharp.D2D1 / Win2D(图形处理)等;
- 发布配置:通过
PublishProfiles下的win-x86.pubxml、win-x64.pubxml、win-arm64.pubxml分别发布三种架构的版本。
结语
Starward 以“替代官方启动器”为目标,将启动、时长统计、账号切换、截图与抽卡记录整合进一个 WinUI 应用,并保持了清晰的多项目分层(UI 主程序 / 核心库 / 本地化 / RPC / 原生启动器)。本文覆盖的安装、功能、本地化与编译信息均可在 README.md 及各功能目录源码中得到印证,后续如需深入了解某一模块(如抽卡 UIGF 导入导出、账号注册表操作、游戏安装包下载),可直接从对应 Features 目录继续阅读源码。
- 桌面应用
【免费下载链接】Starward
Game Launcher for miHoYo - 米家游戏启动器
相关推荐
突破性跨平台资源嗅探方案:一站式解决你的数字内容保存难题
突破性跨平台资源嗅探方案:一站式解决你的数字内容保存难题 你是否曾经在微信视频号看到精彩内容却无法保存?是否在抖音上发现有趣视频却被水印困扰?或者在小红书浏览美
桌面应用网络音视频Starward游戏启动器终极指南:解锁米哈游游戏全新体验
Starward游戏启动器终极指南:解锁米哈游游戏全新体验 Starward作为一款专为米哈游游戏打造的启动器,集成了游戏管理、账号切换、性能优化等多项实用功能
桌面应用Starward游戏启动器完全指南:轻松管理米哈游全家桶游戏
Starward游戏启动器完全指南:轻松管理米哈游全家桶游戏 还在为频繁切换不同游戏启动器而烦恼吗? Starward游戏启动器 作为一款专门为米哈游游戏优化的
桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考