商業或自製,引擎大不同!

在前篇文章「遊戲引擎的層級架構 」中,有位訪客的迴響提到一個很關鍵的問題:

國外的某些商業繪圖引擎並沒有提供 Game 相關的編輯器,為何還是有很多公司購買商業繪圖引擎?

一言以蔽之,就是 Robust 與否的問題。

Robust:堅固的、剛健的、結實的、強壯的。

什麼樣的引擎才能稱得上是堅固結實呢?所謂的引擎技術,不僅只是在最新的顯示卡與最好的配備上展現出炫麗奪目的效果,就能夠稱得上是優秀的引擎。除了一般的運行狀況之外,更需要周全地考量各種邊界狀況 (Boundary Condition) 的情形,以及如何進行例外處理 (Exception Handling) 的程序。檔案不存在的情形如何處理?記憶體不足無法配置如何處理?檔案讀取當中發生毀損狀況怎麼辦?有沒有可能傳入空指標 (Pointer) 而造成系統當機?還有很多很多不同面向的問題。

Continue reading “商業或自製,引擎大不同!”

Scripting系統概論與Lua簡介

Lua Programming Language基於我很愛 Lua 這個 Scripting Language(劇本描述語言←有點彆扭的翻譯 Orz)的立場,不先來篇介紹實在說不過去啊。不過在介紹 Lua 出場前,要先把老大哥 Scripting Language 推出來暖暖場才行。

一般的程式語言,在程式碼撰寫完畢後都需要經過編譯 (Compile) 這個步驟,交由程式語言工具的編譯器 (Compiler) 進行語法驗證、程式碼連結與機器碼建立,最後才能產生出所謂的可執行檔 (Executable Files),也就是在 Windows 平台下滑鼠左鍵雙擊就會開始執行的檔案類型。而使用 Scripting Language 編寫好的程式碼,無須經過編譯的步驟就能夠被直譯 (Interpreted) 並且執行。使用 Scripting Language 有點像是使用一組預先定義好的指令集,在直譯器 (Interpreter) 解析到這些指令時,就能夠去執行預先定義好的行為與程式。所以相較於 C/C++ 屬於需要經過編譯才能執行的程式語言 (Compiled Language),Scripting Language 被稱為是一種直譯式的語言 (Interpreted Language)

Continue reading “Scripting系統概論與Lua簡介”

遊戲引擎的層級架構

遊戲程式的領域中,最常聽到的專有名詞,可以說是非 Game Engine(遊戲引擎)莫屬了。聽起來是個很炫很酷的名詞,但其實遊戲引擎一詞經常被過度泛稱與誤用。所謂的遊戲引擎架構,由低階 (Low-Level) 至高階 (High-Level) 可細分為以下三個層級 (Layer)

Continue reading “遊戲引擎的層級架構”