使用Lua實做GUI系統的遊戲實例

在這篇文章裡,將以國外一個非常著名的休閒遊戲 Diner Dash 2 的實例,探討 Lua 的應用功能之一:GUI 系統。自前篇「Scripting系統概論與Lua簡介」對 Lua 的 What(是什麼)Why(為什麼使用)有了初步的認識之後,接下來的重點就是瞭解 Lua 的 How(如何使用)

在進入 How 的主題之前,先補充一下 Where(在何處使用)的概念。Lua 的能力十分強大,似乎無所不能,可以完成任何的任務與功能。但是就實際應用層面的考量來說,哪些功能與系統才是真正適合使用 Lua 的部分呢?又要如何區分 C++ 語言與 Lua 語言所能達成的任務呢?

以兩者擅長處理的事項來分類:

  • C++:低階核心、記憶體管理、資源管理、繪圖底層、數學運算、訊息發送。
  • Lua:使用者介面、人工智慧、資料管理、遊戲邏輯、動態行為。

複雜的運算與低階的底層核心,適合使用 C++;而因應設計需求,經常會變動的各種功能系統,例如使用者介面、人工智慧、遊戲邏輯等等就適合使用 Lua 來完成。另外,有安全性考量的功能層面,也應該使用 C++ 撰寫比較合適。

Continue reading “使用Lua實做GUI系統的遊戲實例”

《DOOM啟世錄》:遊戲界的傳奇英雄:John Carmack & John Romero

Masters of Doom書名:DOOM 啟世錄
作者:David Kushner
譯者:孫振南
出版:Random House (May 6, 2003) / 電子工業出版社
語言:英文版 / 簡體中文版

DOOM 啟世錄(英文書名:Masters of Doom),這是一本如同傳記般的書,記載著 id Software 的人們與和兩位主角—John CarmackJohn Romero 的精彩故事。id Software,只要是熱愛 FPS 類型遊戲的玩家,相信沒有人不知道這間公司。John Carmack,只要是3D繪圖技術的狂熱者,相信沒有人會不景仰這位怪傑。

在那個大型電玩機台初來乍到,漸漸開始佔據街頭巷尾,令孩子們無法自拔地奉獻硬幣的年代裡,兩個十幾歲的少年,正準備為這個世界帶來完全超乎想像的眼界與視野。遊戲,電腦遊戲,成為他們共同追求的美麗夢想。從方興未艾的網際網路中,他們對遊戲製作的執著與熱情正一點一滴地感染著玩家。藉由共享軟體的商業模式,使他們開發製作的遊戲獲得驚人的非凡成功。

Continue reading “《DOOM啟世錄》:遊戲界的傳奇英雄:John Carmack & John Romero”

Twitter碎碎念

在側邊的欄位,加了個新的項目「靈藥筆記」,使用 Twitter 的小元件,用來記錄與分享一些小小事與小感想。

所謂的 Twitter 是現在很火熱的「微型部落格」。每次最多可以輸入 140 個字元,適合用來做為小事碎碎念、簡短內容分享,或第一手消息分享等等的內容更新。Twitter 感覺上是個很有趣的小玩具,可以在靈感來時很快地寫個幾句,不用侷限於達到單篇文章的內容與長度才能發佈啦。有興趣的話,申請個帳號來用看看就知道了。 XD

另外調整了一下側邊幾個項目的排列順序,看看這樣會不會比較方便一點。

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

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

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

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

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

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

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

《Peopleware:腦力密集產業的人才管理之道》:以人為本的管理方法論

Peopleware書名:Peopleware:腦力密集產業的人才管理之道
作者:Tom DeMarco, Timothy Lister
譯者:方亞瀾、錢一一
出版:Dorset House Publishing Company, Incorporated; 2nd edition (February 1, 1999) / 經濟新潮社 (2007年12月)
語言:英文版 / 繁體中文版

這是一本談論關於「人」勝過於「管理」的書。整本書的內容環繞在人、辦公室環境與團隊相關的各種議題,用字遣詞輕鬆有趣,加上豐富生動的說明與舉例,沒有難嚼無味的管理學用語與理論,如果你正好是在資訊業界或遊戲業界工作,一定會對書中的許多內容感同身受。

Peopleware,是個有趣的發明字。我們常聽到 Software、Hardware、Firmware 這些字詞,卻很少會想到,其實人才也能夠視為一種 Ware(非物質的資產)。遊戲產業,理論上也應是屬於腦力密集的產業類型,因此將人才視為一種資產而不只是一種資源,對於公司的存亡與專案的成敗來說絕對是相當重要的關鍵。

Continue reading “《Peopleware:腦力密集產業的人才管理之道》:以人為本的管理方法論”

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簡介”

寫信給我與迴響回覆

關於裡面增加了個寫信給我的表單。如果有悄悄話想告訴我不想給別人看到,或是有業界八卦、小道消息、心得感想忍不住想和我分享,或是想寄情書,啊不是,是有任何疑難雜症的話,歡迎丟個訊息過來囉。

為了不讓側欄最新迴響的位置被我自己的回覆佔滿,現在我回覆迴響的方式,是會在每則迴響裡直接使用引言的方式回覆訊息喔。看到迴響裡有「半路:」開頭的就是我的回覆啦。如果有人覺得這樣不方便看回覆,我再想想看改用其他的方法。另外,通常晚上才會有時間回覆迴響與信件。

感謝各位~ XD

遊戲引擎的層級架構

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

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

經驗與管理的迷思

在遊戲業界裡,擔任管理職務者,往往是具有多年經驗與歷練的人。

他們在好幾年、甚至超過十數年的資歷中,可能經歷過大大小小許多間的公司,也參與過很多完成與未完成的專案。從一開始可能誤打誤撞的進入了業界,一待就是八、九個年頭過去。一路走來,做為一個職員,表現一直都屬良好。於是在幾次的轉換公司或內部拔擢之中,他們理所當然地成了管理職務的候選者。機緣巧合下,他們得到上層的賞識與信任,終於晉升成為管理職,頭銜變好聽了,薪水增加了,公司也得到有能力的主管,從此大家都一帆風順、過著幸福快樂的日子。

然而事實真的是這樣嗎?

Continue reading “經驗與管理的迷思”

《Harvest Man: Yasuhiro Wada’s Gentle World》:造訪牧場物語的創造者

Harvest Moon原文出處:Harvest Man: Yasuhiro Wada’s Gentle World

這是一篇採訪 Yasuhiro Wada 先生的訪談,他是知名遊戲 Harvest Moon(牧場物語)系列的創造者,也是 Marvelous Interactive 公司的總裁。他在遊戲業界已經有 18 年的資歷,而牧場物語系列作,從超級任天堂起始至今也有 13 年的歷史了,可以說 Yasuhiro 大部分的業界生涯都貢獻給了這個系列作。

Continue reading “《Harvest Man: Yasuhiro Wada’s Gentle World》:造訪牧場物語的創造者”