開發一款RPG遊戲需要哪些編程方面的知識?例如暗黑破壞神、博德之門這樣的2D遊戲。


1:會寫AI

2:知道如何在遊戲裡面做GUI

3:熟悉圖形和渲染技巧

4:有能力開發各種周邊工具(一般來說寫RPG之前要先寫一個不是那麼通用的RPG Maker,以便於隨時修改劇情和各種道具屬性什麼的)

5:知道如何操縱聲音

6:會作曲,會畫畫

7:會編故事

8:會開發(包含CPS變換或coroutine或等價功能的)腳本引擎,用來寫AI和劇情等

8:會調試(遊戲這種時序邏輯系統出了bug還有可能是因為腳本裡面的東西寫錯了,調試起來麻煩死了)

我覺得差不多了


主要是要動手。建議是C++學一下,不用學的很深入,然後數據結構看一下,看到樹就可以了,樹和圖可以留到以後看,之前的鏈表堆棧隊列都看掉,爭取自己寫出來。然後學下SDL,這個包很容易學,看網上的教程幾天就學會了,然後接下來就是從最傻逼的遊戲開始寫。我的過程是貪吃蛇--&>乒乓--&>打磚塊,現在忙了沒寫下去了,都快忘記了,之後規劃的路徑是Galaxia--&>警察抓小偷--&>簡單的2d scroll遊戲--&>簡單的2d rpg引擎,最終目標是看懂博德之門的那個開源引擎,自己寫2d RPG,因為我對三維的興趣不大所以就不準備學。

其實這裡頭都是有學習點的:貪吃蛇是練手,順便學習簡單的動畫;乒乓是學最簡單的碰撞檢測+物理;打磚塊是學稍微精細一點的碰撞檢測+第一個商業遊戲(這玩意寫得好的確可以賣,但是我們的目的就是練手);Galaxia是學習簡單的AI和Sprite表,這是第一個Sprite數量比較大的遊戲;警察抓小偷是學習更複雜一點的AI,和簡單的關卡編輯器;2d scroll遊戲就是學習scroll的;簡單的2d rpg引擎,這裡我的規劃是類似創世紀3這樣的引擎就足夠了,這裡能學到的東西就很多了,但是最主要的是,這是第一次我要做一個完整的遊戲引擎,以及所有的工具,包括更複雜的關卡編輯器、試驗一下簡單的腳本(物品掉落,比如說)。

推薦幾個鏈接,我覺得完全足夠了。

Lazy Foo" Productions (SDL + C++的教程,作者連怎麼配置環境都手把手的交給我們了,每天學個兩節很快就下來了,等學完了基本上我上頭那個列表也寫完了)

2D Game Programming Tutorials with SDL (同樣是SDL+C++的教程,但是這裡頭有好幾個遊戲的源代碼,開始寫遊戲的話,C++學好了,然後寫一個月遊戲應該就能看懂這裡所有的源代碼了,好處是他上來就告訴你遊戲引擎要有怎麼樣的架構)

最後看下entity driven engine的知識吧,如果你要寫比較複雜的遊戲的話。當然如果要寫3d的話要看的就更多了,我的建議其實也很簡單,就是比照著遊戲發展史來,比如說你可以先上Wolf3d這樣的遊戲,當然不是比照它的源代碼,而是實現類似的功能。

C++的教程就不給了,其實隨便挑本英文經典的教程,不用看完,看到面向對象,知道繼承大概是個什麼樣子,就成了。細節部分慢慢追究,總體來說我覺得每天花五六個小時(真心不多,寫程序很容易沉浸在裡頭的,五六個小時是為了保證生活質量,我去年夏天自學的時候往往一天十個小時)看一個月絕對就看完了,然後看數據結構。為什麼看數據結構呢,因為第一這是遊戲編程裡頭很重要的一部分,數據結構設計的不好將來你會呵呵呵的,第二,你之前學C++恐怕沒寫過什麼正經的代碼,學數據結構可以大量的練習演算法,而且最主要的,熟悉常用的數據結構。我覺得學到樹就夠了,最多把樹學完就足夠了,這也就是一個月的時間最多了。最後要注意,從一開始就要寫比較專業的代碼,這個你去網上搜索下就好了,包括一些書上可能不會說到的東西,比如說最新版C++裡頭我記得有智能指針。我C++其實都是自學的,所以也不知道是不是有什麼庫要學,蠻多流行的庫但是我不知道遊戲編程是否要用到,你還是去問下比較好。

接下來就是大量的寫遊戲。寫遊戲要注意了,從一開始就要搞明白引擎的構架,否則將來要吃虧。我上頭給的兩個網站都是挺好的,教給你簡單的架構,但是最好找個業內的人問一下,因為內容有些老了,而且如果你志在三維遊戲的話,一開始有人推薦的那本遊戲引擎架構我覺得蠻好的,雖然我看不懂但是翻了下覺得看完應該足夠了。

然後就沒啥了吧,反正就是慢慢寫,也別著急。如果有機會去業內肯定要去的,因為能學到很多。但是怎麼說呢,如果你和我一樣不想寫大型的三維遊戲(二維角色扮演遊戲其實也很大型,不過相對三維來說還是容易點),那麼靠網上問人也差不多了。但是有機會進去肯定要去一下的,還能賺錢。如果去不了公司,就多看看源代碼,網上實在是太多了,看看行家是怎麼寫的,同一個遊戲同一個功能他為什麼這麼寫,想不明白直接發信嘛,搞IT的人一般都挺熱心的。


遊戲開發無非策劃程序美術,做 RPG 亦然,因此你需要的技能有:

  1. 策劃
    1. 劇本。知道暗黑的流程有多長嗎?不是隨便哪個中二少年都寫的出足夠一個 RPG 用的劇本的
    2. 交互系統設計。這個你玩足夠多 RPG 就知道了,「系統」是很麻煩的
  2. 程序。好吧其實程序是最簡單的,因為有大量現成的資源(庫)可用
    1. 圖形。所幸你要做的是 2D RPG 技術不複雜,也沒有性能障礙
    2. 聲音。這塊沒什麼難度,openAL 庫搜幾個就能用
    3. 腳本。你總不能用 C++ 編劇本吧
    4. AI。不能只靠數值來體現難度,不是嗎?
  3. 美術
    1. 人設、立繪。這種也許到 XX 論壇上也能找來能畫的,但是……
    2. 遊戲場景和動畫。這個就沒多少人會畫了
    3. 音樂。會作曲的人更少,最要命的是 RPG 音樂都要求能無限循環……


軟體RPGmaker 圖形化的 不怎麼需要編程知識,簡單的邏輯還是要懂的嘛。

情節的設計才是王道。


我就補充一點,最重要的是,你得懂遊戲,能寫劇本,能做人設,知道規則是什麼,否則,你只能去遊戲公司上班而已


推薦閱讀:

FPS遊戲的「射擊手感」受什麼影響?
Unreal 4 對比 Unreal 3 最大的改進是什麼?
如何評價虛幻4的藍圖系統?
有什麼關於遊戲製作方面的教程好書?
計算機圖形學,GPU,OpenGL,Unity3D什麼關係?

TAG:遊戲開發 | 編程 |