天天看點

DirectX 9.0c遊戲開發手記之RPG程式設計自學日志之1 : 開場白

        本文由哈利_蜘蛛俠原創,轉載請注明出處!有問題請聯系[email protected]

        RPG,一個響亮的名字!從古至今,有多少英雄兒女為之競折腰!

        “什麼?!你要學習RPG程式設計?别開玩笑了好吧!你玩過幾款RPG呀?”

        好吧,我确實沒玩過幾款RPG,但是RPG是我最喜歡的遊戲類型之一(另外的是ACT,不過我也玩得不多)。

        RPG,全稱RP Game,就是說這款遊戲你能不能夠通關完全靠你的RP……

        哦哦,不好意思,剛才轉錯台了。現在說正事!

        RPG,全稱RolePlaying Game,中文翻譯為“角色扮演遊戲”。其實這個翻譯還是很中肯的,但是這個名字,不論是原文還是譯文,都沒有講到這種遊戲的精髓:那就是角色的建立和成長。角色的建立俗稱“捏臉”,這是很多現代RPG的必備要素之一——《哥特王朝4》(Gothic 4)和《神鬼寓言3》(Fable III)沒有捏臉的要素,這也是二者人氣不高的一個重要原因(另一個原因是配置要求比較高),盡管二者都是很不錯的、制作精良的遊戲。而角色的成長呢,就是俗稱的“打怪更新”,這也是RPG最吸引人的地方(盡管玩到一定程度人們的興趣會發生改變,比如說玩各種各樣的MOD):從一個手無縛雞之力的新手成為天下無敵的大英雄,這怎麼能不讓人興奮呢?(當然也有不少RPG主角一開始就很逆天。)

        RPG可以說是最好玩的電子遊戲類型之一了,但是它的制作難度大、開發周期長、開發成本高、還不一定賺錢,是以其實作在市面上的大型RPG并不多。但是為何我還要研究RPG程式設計呢?有以下幾個原因:

1、  RPG太好玩了,從RPG入手進行遊戲程式設計必然樂趣多多!

2、  做一個小型的、不追求各種細節的RPG其實還是比較簡單的。

3、  市面上已經找不到我喜歡玩的RPG了……

        既然要進行RPG程式設計,那麼首先得玩過RPG才行啊!下面本蜘蛛就來推薦幾款自己玩過的RPG。由于本人閱曆有限,是以難免諸多不妥之處,望各位多多擔待!

        Kingdoms of Amalur: Reckoning (民間漢化為《阿瑪拉王國:懲罰》,其實不對,翻譯成《阿瑪拉諸王國:清算》好一些)。這是一款動作元素非常棒的RPG,動作絢麗、技能逆天,場景美麗,NPC有愛,任務衆多,劇情豐富。可惜的是有一些bug,而且制作組早已解散,也沒能指望這些bug被修複了。

DirectX 9.0c遊戲開發手記之RPG程式設計自學日志之1 : 開場白

        Fable III(《神鬼寓言III》)。這是一款以“互動”為賣點的遊戲,可以與遊戲中的角色産生各種你能夠想得到的以及想不到的互動。相比之下戰鬥部分就不是那麼令人滿意了,主線部分的打鬥基本都是戰役了,要持續很長時間才能結束。此外武器種類太少。不過有一些技能很炫,還有就是武器的終結技也很帥。另外這一款遊戲令人印象深刻的地方就是界面非常地幹淨,沒有血條、魔法槽、小地圖、經驗條等等。

DirectX 9.0c遊戲開發手記之RPG程式設計自學日志之1 : 開場白

        Divinity 2: The Dragon Knight Saga (《神界2:龍騎士傳奇》)。這也是一款不錯的遊戲,畫風類似《上古卷軸》。這個遊戲還是比較傳統的,就是不會在地圖上告訴你任務地點,是以玩起來有些費勁。另外這遊戲裡的敵人不會重新整理,是以經常出現到處搜尋敵人的情況;而且敵人的等級固定,你提前進入後面的地圖的話,可能會碰到比你高幾級的敵人。不過這個遊戲的最大特色就是主角在後期可以變身成為一頭Dragon,用于消滅各種炮塔和飛行敵人。可惜的是,龍形态的主角沒法攻擊地面上的敵人……

DirectX 9.0c遊戲開發手記之RPG程式設計自學日志之1 : 開場白

        Gothic 4 (《哥特王朝4》)。這是一款配置要求比較高的遊戲,當然制作得确實很精良,比如說有天氣系統,可以下雨,盡管這讓人感覺沒有必要。另外這也是一款比較傳統的RPG,任務沒有訓示,甚至地圖上都沒有标名字。這遊戲有一些亮點:主角竟然會開口說話;有一些敵人會有格擋動作;主角可以和很多物品進行互動,做出例如坐闆凳、烤乳豬、磨刀、配藥等等動作,盡管這些行為毫無實際用處。不過這遊戲有一個令人不爽的地方,就是技能太少了,三個職業加起來還不到10個技能。另外由于配置要求比較高,會越玩越卡。

DirectX 9.0c遊戲開發手記之RPG程式設計自學日志之1 : 開場白

        另外還有不少其他類型的遊戲帶有RPG元素,主要集中在動作遊戲上,比如Darksiders 2(《暗黑血統2》)。在此略過不提。

DirectX 9.0c遊戲開發手記之RPG程式設計自學日志之1 : 開場白

        好啦,玩過了一些RPG之後,應該怎麼樣進行RPG程式設計呢?當然需要參考書啦!我現在用的是Jim Adams編寫的《Programming Role Playing Games with DirectX》第二版這本書。實際上,本系列部落格基本上就是對這書的不成熟的翻譯了。當然,有一些地方我會略過不提。此外,由于這本書用的是比較老的DirectX 9,是以現在我們用DirectX June 2010版來編寫的會發現一些代碼不管用了。是以我會進行适當的改造。當然參考資料是Frank D. Luna的“龍書”第二版。

        那麼閱讀此系列部落格需要什麼條件呢?其實要求很低,隻需要滿足以下條件就行了:

1、 精通漢語閱讀(能夠看到這裡說明你已經精通了);英語的閱讀能力的要求很低,在偶爾查閱詞典的情況下能夠看懂聯考英語閱讀就OK了。

2、 具有一定的高中的立體幾何知識(不需要學會證明;能夠看懂坐标系就行了)和一點點線性代數知識(知道矩陣的基礎知識;求行列式、求逆、求特征值等等不需要掌握)。

3、 具有一定的C++基礎;沒有C++基礎的至少學過C語言。

4、 自己有一台不是太過時的電腦。你不會期望使用公共電腦或者借用别人的電腦來練手吧?

5、 安裝了Visual Studio的2008或以後的版本,并且安裝了DirectXJune 2010版本(早一些的版本也行,但是要保證你的機器能用)。

6、 最後一點也是最重要的:對于RPG程式設計有強烈的願望!因為這系列部落格會持續很長時間,保守估計是半年。

        行文規範的說明:兩條藍色橫線之間的部分表示原文的翻譯部分,在這一部分内部,藍色加粗字型表示提出的重要概念,而括号中的綠色或紅色非加粗字型表示我自己補充的話(使用哪種顔色取決于重要程度:紅色>綠色)。其他的,紅色加粗字型表示小标題或者我認為非常重要的話。

        後記:

        這是“DirectX 9.0c遊戲開發手記”的第二部分,叫做“RPG程式設計自學日志”。第一部分叫做“‘龍書’第二版學習筆記”,參見以下位址:

點選打開連結

        附:Jim Adams的RPG程式設計書籍分享。包含第一版和第二版,以及第一版的代碼。

點選打開連結

繼續閱讀