Skip to content

Goodbye, Cablin — 一個始於 2020 年的 Visual Scripting 實驗 ​

2020 年,我開了一個 C++ 專案:Cablin。

當時有兩個目標。

一個是想做出一套可能降低程式設計門檻的 GUI Scripting 工具,然後在自己的遊戲裡使用它。

另一個則是當時我開始進一步接觸 production-grade C++ code,因此也想藉由這個專案打磨自己的 C++ 工程能力。

Cablin 是什麼? ​

它是一套使用 C++17 實作的嵌入式腳本直譯器。使用 YAML 描述程式結構,支援變數、條件判斷、迴圈、函式呼叫,以及基本的模組與作用域管理。

我也希望這套執行引擎能夠方便整合,因此設計了 Package API,讓 C++ 程式可以向腳本提供自訂函式。

另外,我還特別做了一個展示用的 GUI,來說明這套 Schema 可以如何被視覺化編輯。

  • Cablin-UI:透過 Vue 與 TypeScript,展示如何以圖形化介面編輯腳本。

不過,GUI 本身並不是我打算持續發展的核心,主要還是想探索 Schema 與執行引擎的設計。

真的……有用嗎? ​

2022 年,Godot 宣布將 VisualScript 從 Godot 4 移除。

根據 Godot 官方公告,VisualScript 長期未能獲得足夠的採用率。

其中一個原因是,許多原本期待使用 VisualScript 的使用者,最後發現 GDScript 已經足夠容易使用。另一方面,VisualScript 本身也缺乏足夠的高階遊戲功能整合。

這讓我開始懷疑 Cablin 當時的設計究竟能降低多少門檻。

假如使用者在使用時,仍然需要具備相當程度的「寫程式」素養,那麼把程式碼變成圖形化節點,真的比較簡單嗎?

還是直接使用 Lua 或其他成熟的腳本語言,反而更加方便?

AI Coding ​

到了 2026 年,AI 已經能夠直接撰寫、修改、測試程式碼。

這讓「使用 GUI 來降低編寫程式的門檻」這件事情,現在回頭看,甚至有點好笑。

畢竟,現在使用者可能連 GUI 都不需要操作,就能直接讓 AI 產生一段程式。

雖然結構化的 Schema 依然有其用途,但如果只是為了讓寫程式變得簡單,那麼我實在找不到太多理由繼續維護一門自己的腳本語言。

Archive, Not Delete ​

因此,我決定將 Cablin 與相關實驗專案 Archive。

至少,這個專案當時讓我有機會自己從零蓋出一個相對完整的 C++ Project,也練習了不少工程設計。

像是 PImpl、Move Semantics、RAII、Exception Handling,以及介面與實作的分離等等。

我依然認為當年的探索有意義,但不再認為它是現在最值得持續投入的方向。

Goodbye, Cablin.

Just observe 👀