
(圖片來源:people.hofstra.edu)
原文出處:Creative Assembly Lines
你知道何謂「製造組裝線」生產方法嗎?你可能在書籍媒體上看過製造組裝線方法,甚至親身經歷過組裝線式的產品製造流程,然而你可曾想過對於遊戲產業來說,是否也有所謂「創意組裝線」存在的可能性?本文作者 Colin Anderson 將帶領我們一探今日娛樂媒體產業所共同面臨的挑戰與解答。
在十九世紀與二十世紀早期,所有的產品製造商們皆面臨著一項非常巨大且迫切的課題:如何製造出足夠的產品以滿足客戶的需求?這是一個真實的困境。當時多數製造商所從事的都是與農作物息息相關的產業,而隨著時代變遷,如今我們不僅有了更充裕的人口數以及更先進的技術,同時也意味著製造商擁有了一項嶄新的契機,使他們能夠便宜並且大量地製造產品。
這些製造商所想出來的解決方案就是「組裝線」(assembly line) ——由亨利福特 (Henry Ford) 於他的底特律汽車工廠中,首先倡導的生產方法。組裝線方法,相當有效地解決了產品數量不足的問題,直至今日,從製造小玩意兒到噴射客機等等所有你想得到的商品,組裝線方法仍被廣泛地使用中。
如果你是一名製造商,除非你生產的是食物、房屋或醫藥,否則你所生產的東西並不算是所謂的「民生必需品」。回過頭來看看遊戲產業,我們身為創造娛樂價值的遊戲開發者所生產出來的商品,更是難以勝過人們對於民生必需品的需求。
這意味著我們正在製造某些消費者可能會喜歡,但對他們來說並不是基本需求的東西。相較於食物、房屋或醫藥,就目前的情勢來看,消費者不可能出自全然的必需性而去購買我們的遊戲商品。他們只會在真正想要的時候,才會考慮購買遊戲。而此種情境,也描繪出了今日每一個創意媒體產業所面臨的核心問題:身為消費者,我們不知道我們真正想要的是什麼,直到我們見到它為止。而這也使得遊戲,如同書籍、電視劇、電影與音樂一樣,成為一種「熱賣導向」(hit driven) 的產業。
繼續閱讀 < < "《Creative Assembly Lines》:尋找遊戲產業的創意組裝線"

(圖片來源:techcrunch.com)
原文出處:What Has The iPhone Really Changed?
如果有人問我 2009 年遊戲產業最夯最火紅的東西是什麼?我想我會毫不猶豫地回答:iPhone!
iPhone 是什麼?許多人都知道它是手機、具備照相功能、擁有 3G 無線網路功能、還有很多的應用程式,同時也是個操作介面很創新的玩具等等。如果從更廣義地來角度來看,事實上 iPhone 不僅只是一具攜帶式電話,不僅只是一台數位相機,也不僅只是一個酷炫的科技玩意兒,而是一個由蘋果電腦結合硬體裝置與軟體系統建立起來的整合服務。
iPhone 之所以會被許多科技產品愛好者推崇,並不是因為它擁有多麼強大的硬體效能,具備多麼高畫質的螢幕解析度,能夠播放高品質的音樂,或是配備有高畫素的相機。反之,我認為 iPhone 與其他競爭者最大的不同之處,在於它擁有對於應用軟體的高度整合架構。為了達到這個目標,Apple 一開始就建立起了應用程式的下載服務平台——App Store,並張開雙手歡迎全世界程式開發者的到來。
如同 iTunes 之於 iPod 的重要性,App Store 可說是 iPhone 的活力泉源所在。
對於遊戲產業與遊戲開發者來說,iPhone 問世又代表什麼樣的獨特意義?在 App Store 上販售的遊戲,除了可以獲得很高的拆帳比例以外,藉由 App Store 下載服務平台,遊戲開發者能夠很容易地將自己撰寫的遊戲,散佈到全世界擁有網路線路的每個角落中。勢單力薄的小型遊戲開發者們,再也不必望著 Sony、Nintendo 或 Microsoft 遊戲平台的高門檻興嘆,也無須為了 Nokia、Sony Ericsson 或 Samsung 各家手機迥然不同的技術規格捶胸頓足,更不必經過遊戲發行商與代理商的重重關卡與層層剝削。
如果你仍未發現——這股更快速、更簡便、更無遠弗屆的新力量,正熱烈地蓬勃發展中。
自從 iPhone 上市以來,我們時常可聽到或看到許多媒體報導的成功故事:某程式設計者在空閒之餘撰寫的小遊戲,在短短三個月內賺進上百萬美金,於是決定離開大公司全職投入 iPhone 程式撰寫;還有許多設計概念十分簡單並且毫無技術難度的小程式,也使程式作者得以每月收入十萬美金以上。一切看起來全都如此美妙,似乎只要寫出一兩個簡簡單單的小遊戲,就可以準備賺大錢然後一夕成名了!
「iPhone 是新世界的神!是遊戲開發者的救世主!」
你,相信嗎?
繼續閱讀 < < "《What Has The iPhone Really Changed?》:iPhone 究竟改變了什麼?"

遊戲平台
- Microsoft Windows:Windows XP
- Apple Macintosh:Mac OS X 10.5 以上
遊戲連結
遊戲概述
考驗你對色彩的記憶能力!
請記憶「色彩方塊」出現的順序,然後依此順序一一點選畫面上的「色彩機器人」。每次遊戲共有三次機會,結束後會對你的記憶體能力值做出綜合評比。
繼續閱讀 < < "色彩記憶:Color Memory"
從以前到現在,陸續有一些朋友及讀者向我反應這個問題,所以我想我必須好好地解釋並提出聲明。
「閱讀選錄是什麼鬼?」
關於猴子靈藥的「閱讀選錄」分類下的文章,目前總共包括「遊戲業界閱讀」、「遊戲程式閱讀」、「遊戲設計閱讀」、「遊戲美術閱讀」與「遊戲開發閱讀」五類。請注意,在這個分類底下的文章,全部都不是由我自己原創撰寫的內容,而是來自國外遊戲開發網站的優質專業文章。
繼續閱讀 < < "關於「閱讀選錄」的二三事"

(圖片來源:www.cals.ncsu.edu)
原文出處:Game Artists: The Three Cardinal Rules
這是一篇專為遊戲美術設計者所寫的文章,同時也是一篇對所有遊戲業界從業者很有幫助的文章。
在這篇文章裡,作者提出了三項最基本也最重要的準則:自我意識管理、專業面向的溝通,以及接受多樣化任務。其中,佔最多篇幅的內容在於專業溝通的議題上。多數人都知道「溝通」非常具有重要性,但是在現實生活與每天的工作中,到底該怎麼做才能達到良好的溝通成效?該用什麼樣的態度與主管溝通?該用什麼樣的方式與同儕溝通?要如何說話提問,那些該死的企畫設計者與程式設計者才聽得進去?本文為遊戲美術設計者,提出幾項實用而懇切的溝通要領。
本文作者 Keith Self-Ballard 從普渡大學 (Purdue University) 的電腦繪圖技術系畢業後,旋即進入遊戲產業工作。目前他在遊戲公司裡擔任美術部門主管的職務,也同時兼任母校的業界諮詢委員。去年,電腦繪圖技術系的教授向他詢問,是否能夠提供一些給美術設計者的小提示,讓學生們能夠瞭解什麼是他們必須學習與追求的東西。
這是個令 Keith 十分感興趣的議題。十年多以前,當他剛進入遊戲業界時,對於如何成為專業的遊戲美術設計者,他只有非常非常稀少而有限的認識。當他學習到新的工具與技術之後,同時也發展了自己的知識,瞭解該如何與同儕以及領導者協同合作,在製作過程中解決問題,並與各種不同類型且擁有獨一無二特質的人共同工作。
在那個時候,Keith 也在自己專業工作上犯了一些錯誤。我們每個人都會犯錯,幸運的是,他犯的錯並沒有糟糕到使他的業界生涯終止的程度;其中大多數的錯誤,應該都是剛進入業界的新血員工容易犯的那種錯誤。這些年來,不論是對於自己或者他人所犯的錯,Keith 繼續以這些錯誤行為做為自己的警惕,並持續地觀察這些錯誤所造成的衝擊與影響。
當他在兩年多前成為管理階層的一員時,他開始面對關於美術設計者的成員管理、人才招募,以及個人績效評量等各種事務。正因如此,他熱切地想要識別出對專業美術設計者的共通期望。於是,他開始研究遊戲業界對於美術設計者,究竟保持著什麼樣的期望。最終他想要獲得某些具體的東西,使他能夠與美術設計者分享,並對於那些直接從教育機構進入業界的新血,或者從其他業界進來而不夠清楚瞭解準則的員工,能夠用來做為一項訓練輔導工具。
繼續閱讀 < < "《Game Artists: The Three Cardinal Rules》:給遊戲美術設計者的三大基本準則"

(圖片來源:diplomaguide.com)
原文出處:So You Want To Be A Producer
「遊戲製作人」(Game Producer),或許你曾聽過這個高貴的職稱,或許你心中有幾位崇拜的業界典範,或許你從小就立下志向想成為一位遊戲製作人。但是,你真的知道什麼是「遊戲製作人」嗎?
製作,是個有點過於廣泛而籠統的詞彙,也使得「製作人」職位蒙上了一種神秘的色彩。在遊戲開發過程中,程式設計者不斷製作程式碼,美術設計者不斷製作圖片與模型,企畫設計者則不斷製作規則、數值與文件。在這樣分工明確、三足鼎立的研發團隊中,製作人究竟扮演著什麼樣的角色?是肉盾坦克、控場輔助、看護療癒、傷害輸出者,或者只是個可有可無的尷尬角色?
讓我們先回頭想想,遊戲界裡的幾位大師級遊戲製作人,像是製作《模擬城市》系列的 Will Wright,製作《潛龍諜影》系列的小島秀夫,以及製作許多任天堂經典作品的宮本茂,他們是不是成天坐在自己舒適寬敞的辦公室裡,憑空想像出遊戲的各種設計與創意玩法,然後豪爽地說聲「去吧!」就把自己天馬行空想出來的好主意交給底下的人,進而製作出一款又一款經典遊戲作品的那種人?
到底應該如何定義「遊戲製作人」?更進一步來說,遊戲製作人的職責與任務為何?如果你是嚮往遊戲業界的學生,你可能想瞭解要成為遊戲製作人必須具備哪些專業技能與個人特質;如果你是身處遊戲業界的遊戲人,心裡可能已經有一套對於遊戲製作人角色的定見。不論你對遊戲製作人的認識有多少,藉由這篇文章,作者將帶領我們一窺遊戲製作人在開發過程中所需承擔的各項職責與任務。
Producer 〈名詞〉
- 能夠成為遊戲發行商與遊戲開發團隊之間的聯繫橋樑的人
- 製造煤氣的熔礦爐
英文的 Producer 具有兩種截然不同的意義,如果你想要知道熔礦爐是怎麼製造出煤氣的話,你肯定是走錯地方了。而如果你想要學習成為遊戲製作人的各種基礎概念的話,請繼續往下讀吧!
繼續閱讀 < < "《So You Want To Be A Producer》:你想成為遊戲製作人嗎?"

(圖片來源:potq.cl)
標題壞掉了?沒壞,就是 12345。
從 2004 年 4 月踏入遊戲業界開始,到現在 2009 年 4 月為止,已經滿 5 年整了。說起來就像是算算數一樣,用完一隻手的五根指頭 12345 剛剛好,但卻又不是像算算數一樣簡單的 12345。
五年,代表著什麼樣的意義?有人說,在一個行業裡持續工作滿五年的時間,表示你正式從菜鳥的行列中畢業了,雖然還稱不上是功力深厚的老手,但至少也是個具有一定裝備等級的「中手」。最近這段時間以來,幾次試著動筆想為自己的五年下些註解,卻不知從何開始。回首來時路,在這五年的光陰裡,雖然經歷過大大中中小小數個不同的遊戲專案,但竟沒半個能夠稍微拿來說嘴,或者能夠引以為傲的遊戲作品,想來真是有些令人沮喪。
所以我害怕,也不害怕。
繼續閱讀 < < "12345"
這是我在近期內對於 Threading 主題的學習整理文。如果你對於多執行緒程式設計沒有半點概念的話,建議可以先從我之前寫的「多核多緒多樂趣」開始閱讀,然後再視個人需求取用以下各項資源。
所謂的「多執行緒」程式設計,或者可簡稱為「多緒」程式設計,在英文中有許多相關的專業技術名詞,例如 Threading、Multithread、Concurrency、Parallel、Multicore 與 Multiprocessor 等等,在搜尋資料時可以嘗試不同的關鍵字,往往可以找到不少意料之外的好東西。而其中最常見的總括性簡稱,應該就是 Threading 了。
基礎定義
既然要學習 Threading 程式設計的知識,首先要瞭解的當然是 Threading 的基礎概念:
- Thread:看看 Wikipedia 裡的定義,至少把最前頭那段 Thread 的基本定義,以及 Thread 與 Process 的不同之處搞懂。簡單來說,執行緒是用來執行電腦程式的執行環境;而多執行緒,就是能夠使程式系統同時執行多個不同程式碼區段的一種技術。
- Thread Safety:雖然使用 Threading 技術能夠提升程式系統的執行效能,但伴隨而來的則是麻煩又難解的 Thread Safety 議題。大致上,我們可以使用 Re-entrancy、Mutual exclusion、Thread-local storage 以及 Atomic operations 這四種方法來達成安全使用多執行緒技術的目標。
繼續閱讀 < < "快快樂樂學遊戲Threading程式設計"

(圖片來源:www.codinghorror.com)
原文出處:Physics in Games: A New Gameplay Frontier
截至目前為止,在猴子靈藥中從未探討過與遊戲物理學相關的課題,主要原因是我以前從未接觸過任何物理引擎或物理面向的應用程式,所以相當缺乏對於遊戲物理學的概念與知識。讀完這篇文章以後,我總算是開了眼界,對物理學有了一番新的體悟,也開始能夠想像如何在遊戲中的運用各種物理學的觀念。所以我希望藉由分享原作者所寫的這篇文章,讓大家都能認識並且開始思考遊戲物理學的設計應用。
如許多老玩家所知,在遊戲中使用物理學,並不是什麼新鮮的事情。事實上在許多年代久遠的老遊戲,譬如《Lunar Lander》與《Marble Madness》中,已經充滿許多與「重力」這項物理特性互動的遊戲性。隨著時代的推移演進,今日我們所擁有的嶄新技術方案,使遊戲開發者能夠將更進階而且更新穎的物理學特性運用於遊戲之中。
物理學處理程序對電腦運算能力的要求非常高,所幸拜核心數目越來越多的中央處理器,以及專門的硬體加速卡誕生所賜,身為遊戲開發者,現在我們可以真正深入考量如何在遊戲中緊密結合物理學的使用。而真正的問題所在,是我們該利用這些新的資源來做些什麼事情?直到目前為止,遊戲中所使用的物理學大多侷限於裝飾性的效果,雖然這些效果能帶給玩家很重要的沈浸感受,但卻無法真正改變現有的遊戲性。
當我們瞭解物理學在遊戲性中各種應用的可能性以後,我們又該如何提供給玩家與物理學相關的全新體驗?本文的目的就是為了回答這些問題,同時作者也分享了他從設計多人連線地圖模組 CTF-Tornado 中所學習到的經驗。(CTF-Tornado 是在《Unreal Tournament 3》中,被設計來充分發揮 Ageia 物理加速卡優勢的地圖。)
首先讓我們從一些物理學的基礎定義開始吧。物理學的範疇並非僅侷限於模擬重力或者物體與物體間的碰撞行為,實際上物理學也包含了以下這些應用:
- 流體力學,包括液態與氣態。
- 扭曲形變,包括柔軟物體或者剛硬物體。
- 摩擦力與黏力的行為模擬。
- 改變物質的狀態,例如水由液態變成固態的過程。
- 材質的破壞。
由此可知,物理學涵蓋了相當廣泛的內容,而其中有些理論仍未實際被應用於遊戲之中。因此我們可以預期,物理學的發展潛力非常龐大,但遊戲開發者所面臨的各項議題也十分具有挑戰性。隨著開發者在遊戲中使用物理學而產生出來的難題,主要可以分為以下四個項目:
- 對電腦運算能力的需求。
- 更多物理學以外的處理程序。
- 多人連線遊戲中的挑戰。
- 在既存劇本與物理學混沌本質間的不相容性。
讓我們更進一步仔細地檢視每一個項目。
繼續閱讀 < < "《Physics in Games: A New Gameplay Frontier》:遊戲中的物理學,遊戲性的新疆界"
很久沒有寫程式設計入門知識的相關文章了,這篇文章要來談談程式庫 (Library) 連結,以及關於 MSVC 與 CRT 之間的種種恩怨情仇。
如果你使用的作業系統是 Linux、Mac 或其他非 Windows 平台,你可以忽略這篇文章;如果你使用的作業系統是 Windows 平台,但沒有用 Microsoft Visual Studio C++(以下簡稱為 MSVC)軟體撰寫 C++ 程式的話,這篇文章對你的幫助可能很有限;但如果你的作業系統是 Windows,而且你使用的程式整合開發環境是 MSVC 軟體撰寫 C++ 程式的話,這篇文章應該能夠幫助你釐清一些重要的基礎觀念。
身為程式設計者,在學習程式設計的過程中,你是否曾經遇過某些看起來不知所云的錯誤訊息,卻不知該如何解決?例如當你快快樂樂地寫完程式,並且確認所有的程式碼都能成功通過編譯之後,接著執行「建置方案」(Build Solution) 的步驟,結果卻跑出一堆莫名其妙的錯誤:
LIBCMTD.lib(mlock.obj) : error LNK2005: __lock 已在 MSVCRTD.lib(MSVCR80D.dll) 中定義過了
LIBCMTD.lib(mlock.obj) : error LNK2005: __unlock 已在 MSVCRTD.lib(MSVCR80D.dll) 中定義過了
LIBCMTD.lib(crt0.obj) : error LNK2005: _mainCRTStartup 已在 MSVCRTD.lib(crtexe.obj) 中定義過了
…………
LINK : warning LNK4098: 預設的程式庫 ‘MSVCRTD’ 與其他使用的程式庫衝突,請使用 /NODEFAULTLIB:library
LINK : warning LNK4098: 預設的程式庫 ‘LIBCMTD’ 與其他使用的程式庫衝突,請使用 /NODEFAULTLIB:library
D:\Workspace\CrtLibTest\Debug\CrtLibTest.exe : fatal error LNK1169: 找到有一或多個已定義的符號
以一般的情況來說,如果在你的程式專案中有使用某些由他人所撰寫的第三方程式庫或是開源專案的程式庫,比較容易會發生上述的錯誤狀況。從上述這些看似離奇而令人摸不著頭緒的錯誤訊息中,我們大概可以猜測問題點應該在於 LIBCMTD.lib 與 MSVCRTD.lib 這兩個程式庫身上。但到底什麼是 LIBCMTD.lib 和 MSVCRTD.lib?在我們的程式碼中有使用這些程式庫嗎?
繼續閱讀 < < "MSVC與CRT的恩怨情仇"