發表文章

目前顯示的是 8月, 2021的文章

hana引擎介紹

  hana引擎介紹 用途 hana引擎是參考Electron的想法(我沒有查過他的實做,所以不敢說是用一樣的作法)製作的java galgame引擎。 主要目標是想讓不會寫程式但會畫圖跟寫腳本的人可以輕鬆做出galgame,並且讓前端開發者可以用html + css + js做出更複雜的功能甚至是小遊戲,理論上可以套用所有網頁框架甚至是非js,為什麼可以這樣做下面會說明。 另外它採用完全的前後端分離,並且可能會使用graalVm 因此"應該"可以跨多語言(以官方來看可以支援js, node.js, python, ruby, R, LLVM家族) 架構 整體架構簡單來說是: javaFx + SpringBoot + MyBatis + H2DB + hana script 所有東西(包含DB)都是執行在jre(jvm)上面,所以這個專案不用處理任何作業系統的問題,可以幾乎跨全平台。 但android 不包含在內。 雖然android有類似jvm的東西,但由於ART那個我很討厭的東西是google高度訂製的類似jvm的東西,所以會有缺一堆lib跟多一堆有的沒的lib所以無法跨平台上,但關於這點有備案可以另外聊(不是這次)。 整個啟動流程滿簡單易懂的,當使用者開啟應用程式的時候會啟動上述 javaFx + SpringBoot + H2DB。 前端 前端是使用JavaFx 上的 Webkit。 簡單來說當使用者開啟的時候就是開啟一個java的網頁瀏覽器。 對於開發者來說就是開發總計三個一頁式網頁並且透過spring boot的API去取得資料或存取檔而已。 同時由於是直接使用 Webkit 所以理論上來說可以跑unity 3d網頁版跟live 2d,但由於沒有測試過所以不確定。 對於沒學過前端的人hana引擎本身會提供基本的網頁讓使用者不用寫網頁也可以得到想要的東西。 所以理論上玩家會看到的東西應該是極高度訂製化的才對。 後端 後端是採用 java 目前最主流的後端框架,基本上所有的類別呼叫都是透過依賴注入(DI)跟控制反轉(IOC)去實現的。 換句話說當hana引擎開發完成後可以提供界面讓非hana引擎維護者的開發人員可以不用看hana引擎的code就可以客製化自己的後端內容甚至修改API,但因為剛開始就考慮這塊會大幅影響開發進度,所以目前不開...