跳到主要內容

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引擎腳本,就可以省下大量重複的工作了。

留言

這個網誌中的熱門文章

OllyDbg教學(二) -- Hello, World!解析

這次我們的目標是透過觀察Hello World程式,來了解使用OllyDbg的一般流程。 原始程式代碼如下: 編譯指令: gcc -o main.exe main.c 原始碼 main.c: 編譯後產生的main.exe,直接用OllyDbg載入即可。

BGI引擎概論

BGI全名 Buriko General Interpreter,別名Ethornell,為Buriko公司所開發的遊戲引擎。 較著名的例子有: Lump of Sugar全系列 SMEE近期新作 AUGUST近期新作 HOOKSOFT近期新作 由於沒有公開SDK,網路上幾乎沒有正式的相關內部資訊。 若要做漢化,這篇是很好的入門: Galgame 汉化破解初级教程:以 BGI 为例,从解包到测试