这是个 WIP 早期项目,大部分功能还没写完或仅存在于设计,开发进度请参考 Roadmap。
正如其缝合的名字一样,Polymerium 的主要目标是整合 Minecraft 的游戏资源,而非单单启动游戏。其使用与启动器完全不同的思路来管理游戏资源:创建实例元数据,使用部署引擎将游戏本地文件还原到元数据所描述的状态; Polymerium不维护游戏文件,只维护实例元数据。
相比于其他国产的游戏核心概念和版本隔离模式,Polymerium 以更为抽象的“游戏体验”概念和其具象表现“实例”来管理游戏。 这种方式结合了国际主流的现代化管理方式和 a little bit of personal flavor。
有关于 Polymerium 的模式请参阅核心概念。
这不是 launcher,也不是压缩毛巾,这是 Polymerium —— 游戏实例管理器。 初衷是在用 PrismLauncher 的时候遇到一些问题并想出一些改进的的方法,不过在写代码、与 forge installer 斗智斗勇的过程中已经忘记哪些改进了(囧。现在要回答这个问题的话,那么答案是:没有为什么,小孩子不懂事写着玩的。
跨。跨了 Windows 10 和 Windows 11 两个“平台”。
- 🎨 Fluent Design & WinUI3
- 💾 增量部署,使用软链接节省硬盘空间
- 🎭 支持多账号且账号与实例绑定
- 🎟️ 多种在线仓库,与 CurseForge 和 Modrinth 集成
- ☕ 运行时智能选择 Java 版本
由于部署采用了 Symbolic Link,该功能需要管理员权限。 Windows 没有为打包的应用提供管理员权限申请能力,但提供了 开发者模式 来降低创建软连接的特权要求。
设置
👉 更新和安全
👉 开发者选项
👉 开发人员模式
设置
👉 系统
👉 开发者选项
👉 开发人员模式
不需要。只有 Windows 需要在创建软连接时提供管理员权限,也只有 Windows 10+ 才能使用 WinUi3 打包应用。
开箱即用。
目前仅支持创建原版实例(并在随后的实例配置页面添加 Mod Loader)或导入 Modrinth,CurseForge 整合包。
下载整合包文件,拖动到导入页面的 DragDrop 面板,根据向导添加。
目前只支持导出在线包格式,不支持类似 BBSv2 这种 CurseForge Pack 改的离线包格式,在未来也不会支持。
- 创建该项目
- 起名字
- 创建 Git 项目仓库
- 在目录里随处撒上魔术粉
- 实例管理
- 从空模板创建
- 导入
- 导入预览对话框
- Poly-Pack
- CurseForge
- Modrinth
- MMC-Pack
- 导出为 Poly-Pack
- 实例操作
- 备份与还原
- 内置副产品管理(游戏模组资源包着色器包等称为 Resource,抽象;当其作为文件存在于游戏目录称为 Asset,只读;当其存在元数据中成为
Attachment,只读可固化为 Asset;游戏过程中产生的文件成为 Byproduct,可写且不断变化)
- 服务器查看与预览
- 存档查看与预览
- 账号管理
- 账号提供方
- Microsoft 账号登录
- 设备码添加账号
- 可用性检查与刷新
- authlib-injector 账号注入
- Microsoft 账号登录
- 无网模式
- 账号提供方
- 部署引擎
- 基于 Iterator 模型
- 香草安装
- 加载器安装
- Forge
- NeoForge
- Fabric
- Quilt
- Trident Storage
- 固化与还原
- 基于文件池
- 还原引擎
- 基于 Iterator 并发模型
- 发射引擎
- 基于 Iterator 模型
- 下载引擎
- 基于 Iterator 模型(错误的,什么都往这个模型套是过度设计,除了部署引擎本身就是串行的,其他引擎都是并行的,套到迭代器这种串行模型上面就是错误设计。真正的问题仅需
Parallel.ForEach(x => DownloadAsync(x))
甚至Task.WaitAll
就能解决。但我还是要在未来实现它,因为并行工作用串行收集结果很优雅~)
- 基于 Iterator 模型(错误的,什么都往这个模型套是过度设计,除了部署引擎本身就是串行的,其他引擎都是并行的,套到迭代器这种串行模型上面就是错误设计。真正的问题仅需
- 资源仓库
- CurseForge
- 整合包
- 模组
- 资源包
- 着色器包
- Modrinth
- 整合包
- 模组
- 资源包
- 着色器包
- CurseForge
- 搜索
- 搜索中心
- 互联网资源搜索
- 导入在线整合包
- 添加在线资源到本地实例
- 收藏合集:为一个(新)实例添加一系列资源,用以对公共整合包快速个性化
- 搜索中心
- 软件设置
- 游戏实例设置
- 元数据编辑
- 私有启动配置页面
- 本地化
更多细节请在 Issues 中查询。
Polymerium 没有遥测。
但会在部分保存或导出的数据文件中包含隐私数据,其中包括:
- 你的用户名:被包含在日志和临时文件中,通过 Home 目录暴露
- 你使用的操作系统类型:被包含在日志和临时文件中,且仅有唯一的值 Windows
上面有提到你的账号信息吗?没有,因为这部分信息不被保存在公共区域。
- 游戏启动流程、Fabric/Quilt 部署: Inside a Minecraft Launcher
- 游戏启动流程: 教程/编写启动器
- Forge: ForgeWrapper
- 微软验证: Microsoft Authentication Scheme
十分感谢以上作者和所著文章。
- Minecraft 官方的 Meta Launcher Api 给出的数据是多态模型
- CurseForge Api V1 不在文档中标注可能为 null 的数据
- Modrinth Api V2 不在文档中标注可能为 null 的数据,且不提供 V3 文档
- PrismLauncher 的 Meta Launcher Api 定义了一系列 "Component",但每个 Component 都有自己独特的数据结构:他们只是看起来相似,在某些地方,例如对 rules[].os 的定义,是不同的
Distributed under the MIT License. See LICENSE.txt
for more information.