SAO Utils – SAO风格启动菜单开发日志<六期>
当前版本 | Experimental 1 | 迭代 | 5 | 下载页面 |
---|---|---|---|---|
目标平台 | 32/64位 Windows(Vista, 7, 8, 8.1, |
|||
当前体积 | 100MB (Programs:80M + Fonts:10M + Images + Sounds) | |||
开发进度 |
10%
|
2018-06-30 |
原型 | alpha | beta | exp | v1.0 | |||
m1 | m2 | a1 | a2 | b1 | e1 | e2 |
2019-05-03 | 1.Exp 1 Update 2 (0.5.2) 更新发布 |
2019-04-30 | 1.Github 开发进度管理 及 Bug 反馈平台 上线 2.更新模块及目录结构设计 |
2018-09-11 | 1.更新模块及目录结构设计 |
2018-09-09 | 1.Exp 1 Update 1 (0.5.1) 更新发布 |
2018-06-30 | 1.更新通用界面设计及插件信息文件标准 |
2018-04-21 | 1.更新开发笔记及开发计划 |
2018-01-04 | 1.Exp 1 (0.5.0) 实验性版本发布 |
投票

开发计划 V0.1.1 | 2018-09-29
第三次圣杯战争完全重构
Alpha | Beta | Exp | |
---|---|---|---|
基本框架 | wxWidgets 2.9 | wxWidgets 3.0 | Qt 5.12.2 |
图形 API | GDI | GDI + Direct3D 9 | GDI + OpenGL 2.0 |
开发语言 | C/C++ | C/C++ | C/C++/QML |
运行时库 | TDM-GCC | MSVC 2005 | MSVC 2019 + VC-LTL |
VR 支持 | - | 内建立体渲染 | OpenVR |
系统支持 | ≥ Windows 2000 | ≥ Windows Vista |
从 原型 – Alpha – Beta – Exp,本次开发的版本为 SAO Utils 的第三次完全重构(重写)。 开展本次重构计划,除了是为了统一清理一些遗留已久的 Bug 外,主要目的还是为了拓展可定制性以及提高易用性:
- 通过加入 QML 脚本支持,玩家不仅可以对应用图片进行魔改,甚至可以通过简单的脚本代码(类似 JavaScript),制作属于自己的启动器主题、桌面挂件以及图标等插件。
- 重新设计一些基础的界面操作,
加入睿智模式,尝试解决掉不会用的玩家。
虽然每次重构都要面临重写大量代码(数万到数十万行),但是每次重构都能接触新技术,使用新的设计框架,还不用再维护自己以前留下来的黑历史代码,个人还是十分享受这个过程的。
与 Steam 创意工坊高度整合
- 从创意工坊浏览和安装插件
- 制作各种插件分享到创意工坊
新的插件框架
插件信息文件
新的插件必须提供一份插件信息文件(package.json),插件标识将使用 Java 的包命名格式,如 “com.gpbeta.plugin.example”。
兼容旧插件
若插件并没有使用 NERvGear 任何私有 API(如 RangerCD 写的几个插件),则为插件添加 package.json 文件后,即可在新版本上运行。
细分插件类别
- 模块插件
- 编译代码模块 (C/C++)
- 脚本代码模块 (JavaScript/QML)
- 资源插件
- 图片资源
- 挂件图片
- 开机画面图片
- 图标资源
- 音效资源
- 字体资源
- 主题资源
- 背景资源
- 动画资源
- 开机动画
- 数据源资源
- 数据视图资源
- 着色器资源
- 启动器特效着色器
- 图片资源
统一桌面挂件框架
- 独立的挂件浏览器(添加/编辑/删除挂件)
- 统一的挂件操作(移动/大小/置顶/透明)
- 支持附着启动器/桌面模式切换
统一配置框架
- 统一插件配置界面
- 统一插件配置接口
- 旧配置迁移(XML -> JSON)
统一日志管理框架
- 统一日志记录 API
- 统一日志查看界面
- 崩溃日志自动转存
启动器改进
- 提高分层模式下的性能
- 独立启动器菜单编辑界面
插件改进
- Mail Box
- 支持 IMAP 协议
- 实现邮件管理
其他改进
- 导航式简易教程
- 导入 Rainmeter 皮肤(备考)
模块及目录划分 V0.1.3 | 2019-04-30
插件 package.json 设计 V0.1.1 | 2018-06-30
{ // 插件包名称, 命名规范同 Java, 可使用 "-" 分割单词 "name": "com.gpbeta.plugin.example", // 版本号, 格式支持同 npm "version": "2.0.1", // 可选, 插件作者信息对象 "author": { "name": "Joshua GPBeta", "email": "gpbeta@sina.cn", "url": "http://www.gpbeta.com/" }, // 插件名称 // 字符串 或 多语言字符串对象 // 若无匹配语言则优先显示英语 (en) "title": { "en": "Plug-in Example", "zh_CN": "SAO Utils 插件示例" }, // 可选, 插件描述, 类型同 "title" "description": "not localized", // 可选, 项目主页, 默认为创意工坊物品页 "homepage": "http://sao.gpbeta.com/", // 可选, 运行环境版本要求, 格式支持同 npm // 不满足运行条件时, 插件不会被加载, 也不会在插件列表中显示 // 当前已定义的环境标识: "engines": { // 若插件链接了 Qt 的运行时库, 则需要声明本运行环境 // 相同主要及次要版本号的 Qt 环境是 ABI 兼容的 "qt": "5.11", // 若插件的 QML 脚本导入了 Qt Quick 模块, 则需要声明本运行环境 // 相同主要版本号的 Qt Quick 模块向前兼容 "qt.quick": "^2.7", // 若插件必须要在 NERvGear 某个版本上运行, 则需要声明本运行环境 "nvg": "0.9.1", // 若插件使用了任何 NERvGear 接口, 则需要声明本运行环境 // 相同主要版本号的 NERvGear 接口向前兼容 "nvg.api": "1" }, // 可选, 插件或其他版本依赖, 格式支持同 npm // 不满足依赖条件时, 插件不会被加载, 除非用户强制启用 "dependencies": { "com.rangercd.plugin.example": "*" }, // 可选, 模块类型, 当前支持 "bin" 和 "qml" "module": "qml", // 可选, 模块入口文件 // 当 "module" 为 "bin" 时, 默认加载 "module[32,64].dll" // 当 "module" 为 "qml" 时, 默认加载 "module.qml" "main": "module.qml", // 可选, 导出路径列表 "exports": [ { // 导出类型, 目前仅支持 "qml" 类型 "type": "qml", // 导出路径, 目录需包含 qmldir 文件 "path": "Exports/qml" } ], // 可选, 资源列表 // 当前已定义的资源类型: // animation/startup: 适用于应用启动时播放的动画资源 // audio: 音效(集)资源 // background: 背景资源 // preset/launcher: 启动器菜单预置资源 // preset/sound: 音效预置资源 // preset/widget: 挂件预置资源 // data: 数据资源 // icon: 图标(集)资源 // image/widget: 适用于挂件使用的图片(集)资源 // image/splash: 适用于开机画面使用的图片(集)资源 // launcher: 启动器主题资源 // shader/launcher: 适用于启动器的着色器资源 // widget: 桌面挂件挂件资源 "resources": [ { // 资源分类, 使用 "/" 分割子类型 "catalog": "launcher", // 资源标识 "name": "com.gpbeta.plugin.example.launcher", // 启动器主题名称, 类型同根节点 "title" "title": "Launcher Example", // 主题预览图, 推荐 16:9 图片 "preview": "Themes/example/preview.png", // 启动器主题脚本 "main": "Themes/example/main.qml" }, { "catalog": "widget", // ... // 全尺寸带透明通道挂件预览图 "preview": "Widgets/example/preview.png", // 挂件脚本 "main": "Widgets/example/main.qml" }, { "catalog": "background", // ... // 背景脚本 "main": "Backgrounds/example/main.qml" },, { "catalog": "icon", // 同 "audio", "image" // ... // 图标集预览图, 推荐 16:9 图片 "preview": "Images/icon/preview.png", // 图标集路径, 文件命名需要按照一定规则 "main": "Images/icon" }, { "catalog": "shader/launcher", // ... // 着色器代码路径对象 "main": { "vertex": "Shaders/launcher.vsh", "fragment": "Shaders/launcher.fsh" } } ], // 可选, 授权协议, 同 npm "license": "GPGPLv1", // 可选, 代码仓库信息, 同 npm "repository": { "type" : "git", "url" : "https://github.com/NERvGear/NERvHub.git" }, // 可选, 出问题找谁背锅好呢? "bugs": { "url": "http://nvg.gpbeta.com/trac/", "email": "gpbeta@sina.cn" } } |
开发笔记
2018-09-09: Exp 1 Update 1 (0.5.1) 发布
本次更新主要修正了一些积累的 Bug,大幅降低了内存使用以及重新编译整个工程。
那么为什么要重新编译呢——因为 Qt 升级到 5.11 了。
官方还把 MSVC 2013 的支持砍掉了,如果想使用最新版 Qt 并且保持 Vista 以上全平台支持的话,程序就必须带上 UCRT 那整整 40 个该死的 DLL……ORZ
好在经微博的大佬推荐 VC-LTL 这个项目,不仅完全移除了对 UCRT 的依赖,还大大降低了 MSVC 运行时库的体积;
不仅如此,你甚至可以使用任意的 Platform Tool, 任意的 Windows SDK 编译自己的项目。(此条五毛,括号内删除)
2018-09-01: 实现完整功能的创意工坊
SAO Utils Steam 版已在更新 0.9.2 中搭载之前提到的新通用界面设计的创意工坊。
之所以创意工坊实现的优先级比重构还要高,主要有以下考虑:
- 测试及评估 QML 在目前主流平台的可用率
- 新版创意工坊可以直接在重构后的版本中复用
- 增加 Steam 创意工坊上的物品种类
2018-06-30: 新的通用界面设计
为了提高通用操作界面的美观性和易用性,决定对这些非主题化的界面重新设计和实现。
通用界面将会基于 Material Design 设计,适当加入 SAO 序列之争的风格元素。
创意工坊部分界面
首选项部分界面
2018-04-21: 0.5.0 更新说明
本次更新主要加上 QML 脚本运行环境,并重构了几个桌面挂件,以后会把所有挂件及主题也全部改用 QML 实现,方便魔改或者第三方开发。
- HP-Bar
HP-Bar 计量条挂件加入动画数值变化效果。当然,出于性能和偏好需求,动画效果是可以自由启用/关闭的。
- GGO 挂件
- 新增「折线图」项目类型
- 「折线图」及「直方图」新增 “动态数据范围” 选项
- 允许为项目设置任意单元格大小
- 允许为项目设置任意颜色
- 桌面图片挂件
- 添加 GIF 动画图片缩放支持
2018-04-01: Exp 1 实验性版本发布
当前发布的 Exp 1 为下一版本的预览使用,欢迎踊跃下载测试并反馈问题。
会(gu)的(gu)
话说,非steam版exp1的下载链接?
准备过年时在steam上入正,仅仅是资金限制得说
在这里http://sao.gpbeta.com/exp/
希望图片挂件可以加入一些功能,比如鼠标点住拖动出现图片摇摆的动作或者带阻尼回到原位的动作=。=
大大,steam上面还会更新吗?(❤ ω ❤)
会的(●’◡’●)
说实话,我17年就开始看到作者在研发了,努力到现在!我一直看着
请问一下Exp 1 Update 2(0.5.2)更新后
音乐播放器支持扩展不能显示专辑封面后续能修复么
强行装了0.3.0版本扩展也不能显示
我降级回Beta 1 Update 2(0.3.2)后才又恢复了
Exp 1的说明看到有说可能要添加package.json文件才能正常使用旧插件,不过不知道怎么编辑orz
应该跟版本无关,先尝试把音乐播放器扩展和 foo_cad 升级到最新版。
Steam上的不更新了吗?
gp大大,请问会对Linux平台,或mac平台的补充,匹配吗?现在我系统是deepin,不知道怎么才能用上呢,
没有计划![允悲]
个人精力根本不可能跨平台维护,目前 Linux 上使用可以试试 Wine
天气插件拼音重复地区无法显示正确地址 用说明中的CHXX地址查找到宿州的CH0002:1 但是不能显示
软件打开时出现NERvGear已停止怎么办
你好,想请问一下那个天气显示挂件经常不会进行更新,点进去设置是又会加载出数据,不知道如何解决?
某一天突然就开机不自启了是什么情况,而且例外里开了全屏模式下禁用手势结果在桌面上无法呼出菜单在游戏里呼出了菜单怎么办。
發現 Mail Box 插件配置輸入是正確的, 系統總是顯示 Cannot login to SMTP server, inalid user name or password. 但我按了 OK 之後可收到信件, 只是不能發送. 防火牆和防毒都關閉了情況沒有改善.
1.音乐播放器如何读取foobar2000的数据
2.steam版什么时候更新exp版本,好像要那个大小自定义的GGO单元格
音乐播放器支持插件帮助文档在这里 http://www.rangercd.com/sao/music-player-sp-help