願景 - FrankNine/franknine.github.io GitHub Wiki
資料編輯
- 資料 Schema 的三方使用者
- Client
- Server
- Data
- 同一份資料三種 Use Case
A Tale of Three Data Schemas- Editor
- 編輯用
- Runtime
- 執行用
- Storage
- 儲存、Merge & Diff 用
- 可能在不同 Use Case 要轉換成不同 Schema
- Editor
如何同步
- Client, Server, Data Monorepo 確保三者 Schema 同時進版
- 單一 Schema,Code Gen 到不同語言
- The Future of Scene Description on 'God of War'
- 單一 SmSchema
- Jinja Code Gen
- The Future of Scene Description on 'God of War'
- 統一前後端語言
如何多人編輯
- 合作方式
- 即時同步編輯
- Google Sheet
- 難以追蹤班本
- Commit & Merge
- 即時同步編輯
- 難點
- 即時同步編輯
- 難以追蹤班本
- 難以 Cherry-pick 特定改動
- Commit & Merge
- 需要自製 Diff 跟 Merge
- 非技術上手難度高
- 如何合併
- 全檔案合併
- 需要支援使用者自訂 Diff 與合併用 Multi-column Index
- 使用者上傳 Detla 合併 Master
- 全檔案合併
- 用什麼工具
- Notepad
- Excel
- Excel Merge Tool 試驗過非常不合用
- 寫 Exporter 存檔時存成方便 Diff & Merge 純文字格式
- 什麼資料要匯出,欄位框度、上色、筆記、公式 要保留嗎?
- 保留後要用什麼策略 Diff & Merge?
- 自製工具
- 框架
- Electron
- 用過非常不喜歡
- Qt (?
- WinForm / WPF (Windows)
- Xamarin.Form / .NET MAUI
- Castle DB
- 少量資料感覺不錯,但是太陽春
- JetBrains MPS
- 感覺社群不小
- 但是嘗試建立表格 UI 要寫非常繁瑣的 Java
- 試驗過不太想用
- Electron
- 實作細節
- 框架
- 即時同步編輯
- 參考討論
編譯速度
Deterministic Build
AssetBundle
- 只建置有變化的
- Unity 2018-2019を見据えたDeNAのUnity開発 (Abdool)
- Dependency 追蹤不容易
- Cache 只能用在同一個 Branch 往前建置
- 實作發現 C# git API 效能不太理想
- Unity 2018-2019を見据えたDeNAのUnity開発 (Abdool)
- 拆解 Unity Implicit 依賴,手動組裝回來
- 浅谈倩女手游中的资源更新
- 依賴數量降低造成 AssetBundle 變化量下降
- 備份 Library 分享給團隊使用
il2cpp
- Xcode
UI
如何加速製作
- 其他領域 UI 有自製的 WYSIWYG Editor 或是常見編輯工具的 Importer
- Unity Importer
- From Adobe XD
- https://github.com/kyubuns/AkyuiUnity
- Adobe 開始收費且台灣無法單買有點勸退
- From After Effect
- From Adobe Photoshop
- From Figma? Sketch?
- 感覺還是沒有 Production Ready 的方案
- 匯入後是否能重新再匯入更新設計,保留已掛載的 MonoBehaviour
- 在 Agugu 有嘗試過從舊的 GameObject Tree 複製到新的 GameObject Tree,不過 Agugu 一直沒有 Production Ready
https://github.com/FrankNine/Agugu/blob/master/Unity/Agugu/Assets/Agugu/Editor/Importer/UguiTreeMigrator.cs - 如果成功可以讓程式先做 UI 白模直接綁定邏輯,UI 美術再編輯 PSD 檔案,過程中 UI 一直可操作感覺是非常好的 Workflow
- 在 Agugu 有嘗試過從舊的 GameObject Tree 複製到新的 GameObject Tree,不過 Agugu 一直沒有 Production Ready
- 選單中的各 Entry 如何編輯,如何在 Editor 實例化
- NoesisGUI 引用的 MS Blend Data Binding 是一個方向
- 像是 Figma 或是 XD 還能編輯 UI 間的 Transition,這部分有可能 Import 嗎?
- 匯入後是否能重新再匯入更新設計,保留已掛載的 MonoBehaviour
- Cy 公主連結演講說他們有 Adobe Animate Importer,但是沒有詳述
https://game.udn.com/game/story/10455/3361404- Cy 的 UI 動態真的多到噁心,還蠻好奇 Workflow 的
- From Adobe XD
效能
- uGUI 慢到很不合理,即使做了各種最佳化技巧
- NoesisGUI
- 其他 ToolSmith 推薦
- 但是採用轉換成本太高
- 設計師要整組轉成 MS Blend
- 感覺 NoesisGUI 選 MS Blend 是想吸引設計 C# WPF 之類的設計師,但現在設計師用 PS 居多
- 因為內建 SVG Renderer,所以支援 Lottie 是一大利多
https://github.com/Noesis/Lottie-Noesis- 測試過 Unity Binding 可用
- Dear ImGui
- 傳說中的高效與跨平台
https://github.com/ocornut/imgui/issues/3075 - Unity Binding
https://github.com/realgamessoftware/dear-imgui-unity- 沒有 Android iOS binary
- 兩年沒更新 Dear ImGui 版本
- 不確定能不能拿來做使用者用的 UI
- 不過感覺拿來做 API Sample Project 或是 Debug GUI 非常合適,Unity OnGUI 效能差到當 Debug GUI 都會影響 Profiling
- 傳說中的高效與跨平台
程式靜態分析
想法
- 如何加快新人 Onboarding 速度。雖然 Code Review 有指導的效果,但是 Code Review 問題數量太多會有 Overwhelm Reviewer 的情況發生。如何將一些比較實作面的寫法提示交給工具,把珍貴的 Lead Review 時間留在比較難傳遞的架構建議
- Rider 的 Coding 建議感覺許都人都認同有幫助
- 將 Linter 加入 CI 作為 Test 不知是否可行。有可能會像寫 Rust 太過嚴苛,但是專案有大量 Wraning 對 CI 報告閱讀跟除錯都是困擾
資源
非程式程式編輯
反對 Visual Scripting:
https://twitter.com/BrianKaris/status/1550346299840466945
- 有能力整理好 Visual Scripting 的人差不多就能寫程式了
- 認為是行銷的花樣,寫程式無可避免
方向:Visual Scripting 跟字面程式能一對一對應
- Google Blocky
- GDScript 和 VisualScript 成對
- 文字 Refactor 希望能整理到 Visual Scripting
- 額外的視覺位置資訊要如何儲存?