一、為什么自己寫一個游戲
如果你對玩游戲有足夠的熱情,這個問題可以不用回答了。我知道你認為游戲是一項融合了美術、音樂和故事的藝術。在你鑒賞他人藝術的同時,你自己也會有創造藝術的沖動。
我們玩了許多游戲,或者有這樣那樣的遺憾,或者某個游戲激發了我們的靈感。這時我們都有一種沖動,想做一款自己的游戲。就算它不能成為很受歡迎的游戲,也會讓自己很開心,很有成就感。
做游戲的過程中充滿樂趣。即使你做的游戲不入流,你也會得到比玩一流游戲還大的樂趣。一邊娛樂,一邊還能提高自己的編程技術,何樂而不為呢。
還有,一直以來,我們都是玩Windows下的游戲?,F在越來越多的人投入了Mac OS和Linux的懷抱,可是Linux和Mac上的中文RPG并不多見。有時不禁懷念起Windows下角色扮演游戲的味道。為了玩游戲,要重返糟糕的Windows嗎?絕不。作為一個程序設計師,我們可以自己動手,豐衣足食。
二、要一個什么樣的游戲
我這里將邊寫教程邊做一個角色扮演游戲。初步的設想是這樣,這是一個第一視角的武俠游戲,每一個關卡會有數量不等的敵人向我們沖來。他們會攻擊我們,我們也要攻擊他們。或者我們利用手頭的道具和技能干翻他們;或者被他們干掉,Game Over。
盡管我做的是一個RPG,你也可以使用從中學到的技術,做其他類型的游戲:比如休閑游戲,如Zuma,連連看等;射擊游戲,如飛機大戰等。
三、如何去做
我們首要的目標是做跨平臺的游戲,可以在Windows下玩,更可以在Linux和Mac OS上玩。因此我們需要跨平臺的多媒體庫。SDL(Simple DirectMedia Layer) 正是我們需要的,它開源高效、使用簡單。
我們可以通過很多編程語言使用SDL, 如c, c++, java, python, ruby等。
在本書中,我將在Linux上使用C語言和SDL庫開發一個簡單的2D角色扮演游戲。Mac OS的環境和Linux相似。
至于Windows上,你可以用VC++開發C程序,也可以使用編輯器 + MinGW進行開發。我建議后者,因為我們將使用Makefile管理項目,如果你使用MinGW,我在Linux下寫的代碼可以直接拿到Windows上make,一點也不用修改。
四、說明
這一系列教程可能會在修改過程中不斷地更新。希望朋友們多多糾錯、多提寶貴意見。