跳到主要內容

Galgame引擎概論

作為我的第一篇文章,先來談談galgame引擎的由來。

何謂galgame引擎? 那我們先從以製作galgame的角度說起。

最原始的想法就是直接使用任何一種支援GUI的程式語言,直接以程式碼寫出遊戲的流程以及各項功能。這項工作並不難,其實galgame程序的複雜度,在所有遊戲當中算是相當低的。

不過我們可以很容易地發現,在編寫galgame的過程中,我們一直都在做重複的事,簡單的說,其實只有三種: 載入圖片、撥放音樂、顯示文字、以及流程控制,那我們何不將這些功能包裝起來,以簡化程序的工作? 因此就有了galgame引擎的出現。

galgame引擎就是預先將各種常用的功能寫好,之後再由腳本(script)來呼叫這些功能。
這裡以顯示圖片為例,比較程式語言與galgame引擎腳本的差異:

程式語言(Win32環境下C語言):
int SetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth,
DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines,
const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse);


galgame引擎腳本(krkr2):
[image storage="bg1" page=fore layer=base]

SetDIBitsToDevice函式的功能是將記憶體中的一張bitmap顯示到螢幕上,其中可以設定許多關於顯示的參數。
krkr2的image標籤的功能一樣是將一張圖片顯示到螢幕指定的圖層上,關於圖層的概念稍後會再提到。

從這裡可以看的出來,雖然使用程式語言可以讓我們對畫面進行詳細的調整,但是其實在同一個專案下,我們大多用的都是一樣的設定,若使用galgame引擎腳本,就可以省下大量重複的工作了。

留言

這個網誌中的熱門文章

muv漢化補丁修復

muv的漢化補丁對Win10會有相容性問題,這自從補丁發佈到現在,漢化組都沒有修正的意思,這問題也折騰我好一陣子了,最後決定還是自己debug比較實際。 其實解決方法意外的簡單,不過追蹤的過程挺有趣的,也讓我學到了一個hook的實作方法。 在win10下啟動漢化補丁會出現下面這個對話框:

OllyDbg教學(一) -- 基本操作

這篇簡單介紹一下OllyDbg的用法,還有一些使用上的技巧,這邊假設讀者對程式的執行已經有一定的了解。 OllyDbg 1 主頁 OllyDbg 2 主頁 要用OllyDbg來debug一個程式有兩種方法,第一種是直接以OllyDbg啟動程式,另一種則是先啟動程式,在用OllyDbg附加到執行中的程式。一般用第一種方法就可以成功,第二種方法通常用於一些需要特殊啟動環境的程式。

SiglusEngine地區限制破解

新版網誌: https://casidi.github.io/2016/07/29/siglusengine-cracking/ 採用這個引擎的比較有名的就是key跟SAGA PLANETS這兩家公司了。 這次以SAGA PLANET做的一個小遊戲為分析對象,遊戲可以免費下載: 【はつゆきパズル☆神経衰弱☆】 下載下來的是一個壓縮檔,檔名為 hatsukipuzzle01.zip,直接解壓縮會得到一個資料夾, 名字為: はつゆきパズル 其實遊戲必要的只有 はつゆきパズル\StartData\GameData 這個資料夾,直接把GameData資料夾搬到隨便一個地方,執行SiglusEngine.exe即可啟動遊戲。