2008-11-13 106 views

回答

21

這贏得了大多數開放式問題。你可以從字面上寫一本書。但讓我們解決指向正確的方向......

第一步,你將需要良好的調試技能,像這樣的項目。史蒂夫麥康奈爾拿起代碼完成。閱讀整個事情。投入的時間將比其他任何你可以閱讀/試驗的東西都付出代價。

獲得一些遊戲的源代碼。任何遊戲。在你看到一些大而複雜的東西之前,確保你看到了一些簡單的東西,並且記住,當你看到任何遊戲代碼時,他們可能會有一個聯合團隊讓WAY更多的時間投入到遊戲中。這一點是看代碼結構。

獲得3D數學的參考,並不一定要深入,但您需要了解像點積反轉和前進的東西,能夠弄清楚如何在相機中創建矩陣世界等等。(即使你的寫作0渲染代碼的百分比)

(編輯)這是一個偉大的書上的3D數學Mathematics for 3D Game Programming and Computer Graphics, Second Edition (Game Development Series)這不是你在大學裏學習的那種,它更像trig公司之間的交叉和更高級的實用概念:如何爲簡單的物理學創建工具箱,高效的碰撞檢測等。

您需要知道一些ab渲染渲染和管道。 SDL爲您提供了一個支持,但請確保您瞭解它正在做什麼的概念。

閱讀關於實際系統設計。你的各種系統將不得不互鎖。好好想想。你的系統可能只是C或C++中的一個好東西,它的思想是把你的數據/控制流向數據的方式,而不是模擬設計模式的完美程度(儘管這些模式非常有用,也很粗糙)

AI基礎知識,不是「真正的」AI,而是功能性AI;有一個很大的不同。首先,狀態機非常好,而且足以滿足簡單的FPS。

瞭解一些關於估算和計劃。你沒有時間去做任何你想做的事來正確地製造FPS。你將不得不分流和學習如何分流;他們是兩個不同的東西,後者是困難的。經驗是這裏最好的老師。 (雖然傳說中的麥康奈爾也有這方面的書)

有一個系統來插入你的遊戲到你的關卡。如果它只是你作爲一名程序員,那麼你最好的辦法就是爲現有的編輯程序(如3DS Max)編寫一個插件。我會強烈建議Max在Maya上爲程序員。Maya腳本很好,但它更適合聰明的非程序員。我發現3DS Max會更多地思考程序員如何創建和編輯你的世界。

您可以花費YEARS製作工具讓您做到這一點,所以您希望以一種可以快速準確編輯的方式進行操作。 如果您製作自己的編輯器,請將其納入您的遊戲世界。 如果你的世界不是真正的3D,並且你想快速製作很多關卡,你可以將你的關卡數據保存爲這樣的東西,這會爲你節省很多時間 其中X是牆,其他字母是遊戲對象一個污垢簡單的解析器可以翻譯成遊戲對象和世界座標

xxxxxxxxxxxxxxxxxxxxxxxx 
xx..........P..........x 
xxxxxxx...........I....x 
xR....xxx...........E..x 
xx.................0xxxx 
xxxxxxxxxxxxxxxxxxxxxxxx 

但這一切都取決於你的遊戲。我的觀點是,你需要訴諸「貧民窟編碼」,讓你的遊戲數據進入你的世界是非常重要的,你需要想到的是你快速實施並快速與你合作的東西。

它的結果是你的目標是什麼?如果要學習以絕對正確的方式編寫代碼,期望將大部分時間花費在一個月前看起來不錯的代碼上,但是現在您意識到自己的要求是什麼,它可能真的使用另一個傳遞。不要害怕重寫,通過這樣做你可以學到很多東西,但是如果你的目標是功能性的,你可能需要弄清楚在哪裏破解一些東西(比如將遊戲數據和座標嵌入到代碼文件中)它IS只要你知道你被黑客入侵的地方,並且仔細地將它與你的好代碼分開,那麼你就可以進行黑客攻擊,這樣你就可以在有機會的時候返回並正確編寫代碼。底線是,您需要決定您的目標是什麼,學習或功能,並找到介於兩者之間的愉快媒介。

+1

「你可以從字面上寫一本書。」確實,有幾個已經寫成。 – 2008-11-18 01:40:17

0

幾乎所有的東西都說在這個「遊戲編程大師的技巧」將告訴你如何製作一個FPS遊戲。 LeMothe喜歡他們。

編輯:忘了那些標題。

+0

它會告訴你怎麼樣,但我不」不要認爲他們是好的。我多年前閱讀的那篇文章正在推動各種不好的做法。幾乎沒有「大師」的品質。 – rmeador 2008-11-13 22:55:26

+0

我同意你的說法。 – 2008-11-17 23:07:59

0

我發現這個網站而回,當我被玩弄SDL,你會發現你可以下載here

5

下載雷神之錘3個源在fileshack,並從中學到了示例程序。

+1

好點。向大師學習絕不是有害的。 (儘管意識到它可能過時了,甚至主人*可能會犯錯誤或不會爲縮放而建立) – 2010-08-05 23:05:15

1

雖然不是SDL特定的,但OpenGL教程是一個很好的開始學習如何做3D的好地方。

如果這是您的第一款遊戲,那麼您可能需要瞄準低於FPS。使用SDL編寫簡單的2D俄羅斯方塊遊戲將教會您需要了解的關於該庫的一切。

3

儘管從長遠來看很長的文章是有價值的,但我覺得它並沒有給出在屏幕上獲取內容的適當的即時動機。下面是一些事實,我的意見一起

-SDL是2D圖形庫,你不能在2D寫的FPS,因此,你必須去與一個3D庫,無論是DirectX的,或OpenGL

- SDL有能力與openGL「同步」,將它用於圖形,但對於該主題沒有太多的在線幫助

我建議你去Lazyfoo.net,這是一個絕對驚人的初學者的遊戲資源使用SDL進行編程,它會向您展示如何繪製到屏幕上,同時教您如何將其應用於編程遊戲。通過這個之後,你將能夠製作一個俄羅斯方塊克隆,或其他大多數2D類型的遊戲

之後,你將爲3D做好準備(它要複雜得多,需要更好地掌握數學,並且需要更多的代碼來完成更簡單的事情),如果你使用openGL,檢查NeHe的教程,他們目前正在使用SDL和OpenGL開發一套新的工具,因爲較老的教程雖然很有價值,但編碼卻相當糟糕,使用windows(win32)中API

記住,遊戲開發是最苛刻的,和有益的節目,你會遇到的一個,那麼好的運氣