SAO Utils – SAO風格啟動菜單開發日志<六期>

SAO Utils 開發進度
當前版本 Experimental 1 迭代 5 下載頁面
目標平臺 32/64位 Windows(Vista, 7, 8, 8.1, , 10)
當前體積 100MB (Programs:80M + Fonts:10M + Images + Sounds)
開發進度
10%
2018-06-30
SAO Utils 開發日志
原型 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.更新??榧澳柯冀峁股杓?/td>
2018-09-11 1.更新??榧澳柯冀峁股杓?/td>
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) 實驗性版本發布

投票

你希望 SAO Utils 下個版本的開發代號是?

View Results

Loading ... Loading ...

開發計劃 V0.1.1 | 2018-09-29

第三次圣杯戰爭完全重構

SAO Utils 各版本開發詳情
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": "[email protected]",
        "url": "//www.grnrtr.com.cn/"
    },
 
    // 插件名稱
    // 字符串 或 多語言字符串對象
    // 若無匹配語言則優先顯示英語 (en)
    "title": {
        "en": "Plug-in Example",
        "zh_CN": "SAO Utils 插件示例"
    },
 
    // 可選, 插件描述, 類型同 "title"
    "description": "not localized",
 
    // 可選, 項目主頁, 默認為創意工坊物品頁
    "homepage": "//sao.gpbeta.com/",
 
    // 可選, 運行環境版本要求, 格式支持同 npm
    // 不滿足運行條件時, 插件不會被加載, 也不會在插件列表中顯示
    // 當前已定義的環境標識:
    "engines": {
        // 若插件鏈接了 Qt 的運行時庫, 則需要聲明本運行環境
        // 相同主要及次要版本號的 Qt 環境是 ABI 兼容的
        "qt": "5.11",
        // 若插件的 QML 腳本導入了 Qt Quick ??? 則需要聲明本運行環境
        // 相同主要版本號的 Qt Quick ??橄蚯凹嬡?/span>
        "qt.quick": "^2.7",
        // 若插件必須要在 NERvGear 某個版本上運行, 則需要聲明本運行環境
        "nvg": "0.9.1",
        // 若插件使用了任何 NERvGear 接口, 則需要聲明本運行環境
        // 相同主要版本號的 NERvGear 接口向前兼容
        "nvg.api": "1"
    },
 
    // 可選, 插件或其他版本依賴, 格式支持同 npm
    // 不滿足依賴條件時, 插件不會被加載, 除非用戶強制啟用
    "dependencies": {
        "com.rangercd.plugin.example": "*"
    },
 
    // 可選, ??槔嘈? 當前支持 "bin" 和 "qml"
    "module": "qml",
 
    // 可選, ??槿肟諼募?/span>
    // 當 "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": "//nvg.gpbeta.com/trac/",
        "email": "[email protected]"
    }
}

開發筆記

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 為下一版本的預覽使用,歡迎踴躍下載測試并反饋問題。

    • Zaphier
    • 2019/10/12 6:23上午

    請問一下Exp 1 Update 2(0.5.2)更新后
    音樂播放器支持擴展不能顯示專輯封面后續能修復么
    強行裝了0.3.0版本擴展也不能顯示
    我降級回Beta 1 Update 2(0.3.2)后才又恢復了

    Exp 1的說明看到有說可能要添加package.json文件才能正常使用舊插件,不過不知道怎么編輯orz

    • 應該跟版本無關,先嘗試把音樂播放器擴展和 foo_cad 升級到最新版。

    • Kirito
    • 2019/10/07 4:13下午

    Steam上的不更新了嗎?

    • 真實之音
    • 2019/10/04 7:05下午

    gp大大,請問會對Linux平臺,或mac平臺的補充,匹配嗎?現在我系統是deepin,不知道怎么才能用上呢,

    • 沒有計劃![允悲]
      個人精力根本不可能跨平臺維護,目前 Linux 上使用可以試試 Wine

    • 普通人
    • 2019/09/21 5:25上午

    天氣插件拼音重復地區無法顯示正確地址 用說明中的CHXX地址查找到宿州的CH0002:1 但是不能顯示

    • 奕想天開
    • 2019/09/13 2:55下午

    軟件打開時出現NERvGear已停止怎么辦

    • Provance
    • 2019/09/10 10:31下午

    你好,想請問一下那個天氣顯示掛件經常不會進行更新,點進去設置是又會加載出數據,不知道如何解決?

    • Teoko
    • 2019/08/29 1:36下午

    某一天突然就開機不自啟了是什么情況,而且例外里開了全屏模式下禁用手勢結果在桌面上無法呼出菜單在游戲里呼出了菜單怎么辦。

    • 虛城
    • 2019/07/26 11:45上午

    發現 Mail Box 插件配置輸入是正確的, 系統總是顯示 Cannot login to SMTP server, inalid user name or password. 但我按了 OK 之後可收到信件, 只是不能發送. 防火牆和防毒都關閉了情況沒有改善.

    • lmxox
    • 2019/07/15 12:25上午

    1.音樂播放器如何讀取foobar2000的數據
    2.steam版什么時候更新exp版本,好像要那個大小自定義的GGO單元格

1 4 5 6
  1. 暫無 Trackback

?

return top