Nov 28 2008

《How to Prototype a Game in Under 7 Days》:如何在七天內完成遊戲原型

文章分類: 遊戲開發閱讀
prototype

(圖片來源:www.refreshaustin.org)

原文出處:How to Prototype a Game in Under 7 Days: Tips and Tricks from 4 Grad Students Who Made Over 50 Games in 1 Semester

本文是於 2005 年時發表的文章,雖然距今已有三年以上的歷史,但絕對無損這篇文章的價值。同時,本文也與極具創意的優秀獨立遊戲作品《World of Goo》,有非常深的淵源以及關連性存在。

Kyle Gabler、Kyle Gray、Matt Kucic 與 Shalin Shodhan 是四位就讀於卡內基美隆大學 (Carnegie Mellon University) 研究所的學生。在 1 個學期的時間內,他們僅僅憑藉著 4 個人的力量,完成了超過 50 個遊戲的原型 (Prototype)!同時他們也設置了一個名為 Experimental Gameplay Project 的網站發表他們所製作的各款遊戲原型;其中最受歡迎的遊戲之一,就是由 Kyle Gabler 所製作的《Tower of Goo》,而這個遊戲原型也正是《World of Goo》的前身作品!

為了達到 1 個學期之內完成 50 款遊戲原型作品這項近似於不可理喻且不可思議的目標,他們將自己鎖在房間內,遵循著以下三項規則進行開發工作:

  1. 每個遊戲必須在 7 天以內完成。
  2. 每個遊戲必須從頭到尾以 1 人之力完成。
  3. 每個遊戲必須立基於一般常見的主題,例如「重力」、「植物」或「群聚生物」等等。

7 天,1 人,以及 1 個主題,製作成為一個遊戲原型作品。許多人好奇他們是如何在這麼短的時間內完成一款遊戲原型作品?又是如何能夠維持上述規則與紀律,長達一整個學期之久?在此,四位作者共同將這段過程中所學習到的各種寶貴知識,包括正確以及不可行的嘗試經驗沈澱整理之後,分為準備、設計、開發以及遊戲性四個項目,一一闡述如下:

繼續閱讀 << "《How to Prototype a Game in Under 7 Days》:如何在七天內完成遊戲原型"


Nov 21 2008

《The State of the Casual Games Industry in 2008》:休閒遊戲產業的發展現況與未來展望

文章分類: 遊戲開發閱讀
bejeweled-2-deluxe

Bejeweled 2 Deluxe(圖片來源:www.aioforum.com)

原文出處:The State of the Casual Games Industry in 2008

若要追溯 PC 平台上的休閒遊戲起源,其實一開始只是附屬於 Windows 作業系統內,譬如《接龍》、《踩地雷》、《彈珠台》以及《傷心小棧》等等簡單的小遊戲。然而誰也沒有料想到,時序移轉至 2008 年的現在,休閒遊戲竟已迅速成長至不容忽視的市場規模,掀起一波反璞歸真的「遊戲文藝復興運動」。經過數年來的演化,休閒遊戲早已由初始的牌卡與方塊消除類型遊戲,發展出全然不同的嶄新面貌;休閒遊戲,不再只是家庭主婦或者上班族用來殺時間的小玩意兒,而是已經在主流遊戲市場之外開拓出了自己的一片疆土,搖身一變成為極具發展潛力的新興產業。

根據休閒遊戲協會 (Casual Games Association) 去年的一份報告統計,至 2007 為止,休閒遊戲產業的年產值,已經達到了 22 億 5 千萬美元的驚人規模,同時正以每年 20% 的成長速度不斷向上攀升。若以性別區分玩家的族群分佈,其中男性玩家佔了 48.3%,而女性玩家則佔有 51.7% 的比例;更值得注意的是,在付費玩家的比例中,女性玩家則涵蓋了 74% 的壓倒性比例。另外,目前在全世界最受歡迎的休閒遊戲為《Solitaire》、《Tetris》、《Bejeweled》、《QQ Games》集合、《Diner Dash》系列以及《Mystery Case Files》系列。

為了進一步探討這個急遽成長中的產業,在這篇文章裡找來了 PlayFirst 的 John Welch、PopCap 的 Jason Kapalka 以及 Reflexive Arcade 的 Russell Carroll,三位具有豐富經驗的遊戲開發者進行討論,對休閒遊戲產業的現況與未來發展提出了有力且深入的見解。

繼續閱讀 << "《The State of the Casual Games Industry in 2008》:休閒遊戲產業的發展現況與未來展望"


Nov 14 2008

遊戲產業新門派(二):Indie Game

文章分類: 業界觀察
indie

(圖片來源:www.graffiti.org)

幾個月以前,曾在「遊戲產業新門派(一):Casual Game」一文中討論過遊戲產業中的門派分支「休閒遊戲」(Casual Game);在這篇一直想下筆但拖稿很久的續集裡,將繼續向各位介紹遊戲產業中另外一支極具份量的獨特門派——Indie Game

首先必須瞭解的是,究竟何謂「Indie」

Indie games are video games that are created independently of the financial backing of a large video game publisher.

Indie 一詞,源自於 Independent 的簡寫,所以 Indie Game 所指的也就是「獨立遊戲」的意思。在遊戲業界中,「獨立開發者」 (Indie Developers) 的定義,正是指不依賴外部發行者的財務援助,自行研發遊戲的創作者。而除了遊戲領域中的獨立遊戲以外,音樂業界的獨立音樂 (Indie Music) 以及電影產業的獨立電影 (Indie Movie),都是歷史更為悠久的獨立創作形式。

各位讀者或許略有所聞,在歐美的遊戲產業中,財力資源最為雄厚的公司往往不是遊戲開發商,而是遊戲發行商。大多數的遊戲開發商,為了能夠開發以百萬美金預算為最低門檻的遊戲專案,必須先尋求遊戲發行商的資金挹注以及發行合約,才能夠在長達 18 至 30 個月左右,完全沒有任何收入進帳的開發時期裡,付給員工們足夠的薪資以及各項相關的研發費用。

「既然如此,遊戲開發者為什麼要獨立?有人願意捧著大把鈔票請你製作遊戲耶!」

繼續閱讀 << "遊戲產業新門派(二):Indie Game"


Nov 07 2008

Database Hot Loader 最終曲:Tuning and Measuring Performance

文章分類: 進階技術

歷經了漫長的 DHL 系統一二三部曲後,終於來到了這一系列文章的最終曲。

本篇的重點在於對 DHL 系統進行效能的優化以及量測。首先,對於 LuaDatabaseManager 類別提出幾項效能優化的可能性。以資料庫系統的作用來說,一般使用者會期望在索取資料的程序中,得到最佳化的執行效能,才不會因為對於資料庫的頻繁讀取而拖累了遊戲系統的整體效能表現。在二部曲中曾經提過,為了取得資料庫中的數值,使用者需要利用 LuaDatabaseManager 類別中的 GetData() 函式:

void LuaDatabaseManager::GetData(std::string& sheetName, std::string& fieldName, unsigned int id, std::string& value)
{
	int oldTop = lua_gettop(m_DBState);

	lua_getglobal(m_DBState, sheetName.c_str());
	lua_pushstring(m_DBState, fieldName.c_str());
	lua_gettable(m_DBState, LUA_GETTABLE_INDEX);
	lua_pushnumber(m_DBState, id);
	lua_gettable(m_DBState, LUA_GETTABLE_INDEX);
	value = luaL_checkstring(m_DBState, lua_gettop(m_DBState));

	lua_settop(m_DBState, oldTop);
}

在 GetData() 函式中,必須進行三次取出 table 結構的步驟;首先以 lua_getglobal() 函式取得最上層的 table,然後傳入欄位名稱以 lua_gettable() 函式取得第二層 table,最後再傳入資料 ID 以 lua_gettable() 函式以取得使用者要求的資料值。

熟悉 Lua 語言的讀者應該很清楚,除了使用 lua_gettable() 函式取得 table 結構中的數值以外,還有另外一項替代方案:使用 lua_rawget() 函式。預設情形下,在 lua_gettable() 函式中,會喚起 table 的 metamethod,而對於將 table 單純當成陣列結構處理的資料表格來說,其實並不需要這層額外的彈性,所以如果使用 lua_rawget() 函式取代原來的 lua_gettable() 函式,理論上應該能夠獲得某種程度的效能提升。

繼續閱讀 << "Database Hot Loader 最終曲:Tuning and Measuring Performance"


Nov 01 2008

《Good Middleware》:如何選擇遊戲開發的中介軟體

文章分類: 遊戲開發閱讀
cryengine-sandbox

(圖片來源:brianlawler.smugmug.com)

原文出處:Good Middleware

之前在「遊戲引擎的層級架構」以及「商業或自製,引擎大不同!」兩篇文章裡,曾經討論過遊戲引擎的基本概念以及商業引擎與自製引擎的不同之處;而在這篇文章裡,第三人稱射擊遊戲《Fracture》的開發者 Kyle Wilson,對於遊戲開發領域的 Middleware(中介軟體)提出了幾項有力的觀點,非常值得做為使用與選擇遊戲開發中介軟體的參考指南。

身為遊戲軟體的設計者與創造者,為什麼我們需要仰賴別人製作出來的某些東西?為什麼我們要花錢購買所謂的中介軟體?主要來說,中介軟體能夠提供兩大益處,同時也具有相對應的代價。

首先,相較於自己撰寫的程式碼,中介軟體能夠以更少的花費提供給使用者更多的程式碼。因為中介軟體的開發商能夠將研發費用平均分攤在大量的授權客戶上,所以比一般的遊戲開發公司,更能夠維持龐大且具深厚經驗的團隊,專注在特定領域的功能項目之中。然而此項利益的相對代價,在於沒有任何中介軟體的功能,能夠百分百符合遊戲專案的所有需求;中介軟體是寫來支援最常見的使用案例,因此如果開發者擁有不同於一般標準的特別需求,最好還是自行實作這些特殊的功能。

另一項使用中介軟體的益處,是能夠為「你應該擔心的事」與「你無須擔心的事」畫出一條清楚的界線。只要中介軟體具備良好的文件以及穩定的系統,你就不需要浪費心思憂慮那些隱藏在公開介面之下的東西。當遊戲的複雜度增長到了某種程度以上時,如果中介軟體能夠協助開發者劃清各項功能系統的責任界線,將是一項相當具有價值的恩惠。而相對的代價,則是你不能夠去改變界線另一端的東西;如果決定要使用中介軟體,就必須願意接受某種程度上的缺乏靈活性,也必須願意將原本所使用的技術調適到合於中介軟體的程度,否則花錢購買中介軟體將會演變成為一場災難。

繼續閱讀 << "《Good Middleware》:如何選擇遊戲開發的中介軟體"