2009-07-11 66 views
4

我是一個愛好者控制檯C++開發人員。我曾經使用過指針,數組,std :: vectors,std :: strings,classes和幾個數據結構,包括棧和二叉樹。我有一些線性代數和幾何的經驗,並且知道物理的基礎知識。我沒有使用win32,QT,openGL,DX9,OGRE等的經驗。我仍然在學習OOP中更有價值的部分,比如多態。什麼時候應該進入GUI /遊戲開發?

我開始使用C++作爲第一語言,並且沒有其他語言的使用經驗。我可能可以使用C,但我需要習慣操作char *和常規數組(而不是啓動變量)。

我的問題是,根據我的經驗,我應該什麼時候進入GUI應用程序/遊戲應用程序的開發?我是否需要在數學的某些領域更加堅定自己,對win32感到舒服,適應SDK?

如果這個問題對你來說過於主觀而不能很好地給出建議,那麼你是什麼時候進入GUI /遊戲開發的,你採取了哪些步驟讓自己適應它?

編輯此,所以它會被碰撞。有其他人有任何意見嗎?

+0

請在投票結束前仔細閱讀整篇文章,並將其稱爲主觀。我給了你一個替代答案,請做到這一點。 – jkeys 2009-07-11 18:10:40

回答

5

警告:我是一個非常「邊做邊學」的人,所以請帶上一粒鹽。

聽起來像你知道足夠的編程基礎知識,以跳到更現實的東西,並有足夠的背景來證明這個現實項目是一個遊戲。

我推薦下載Visual C# ExpressMicrosoft's XNA Game Studio 3.0

XNA是一個遊戲框架,它爲專業品質的C#平臺搭建了很多功能(聲音,精靈,3D支持等),這將是一個很好的起點。創建一個新的XNA項目並玩耍。獲取一些東西出現在屏幕上,然後學習如何用用戶輸入來操作它。如果您對3D感興趣,可以製作三維形狀,如三角形。然後,讓它旋轉。然後,根據用戶輸入進行旋轉。然後,添加其他對象和碰撞。

當然,框架中會存在一些你不明白的東西。在他們出現時解決它們 - 使用Google並在這裏提問,直到您理解它們。一次只要一步,你應該會很好。

1

我個人建議你從Win32開始;嘗試創建一個基本的窗口&從這一點移動。嘗試製作一個簡單的2D遊戲引擎,您可以在其中製作象棋等遊戲。這也可以作爲你寫AI的項目;這是遊戲開發的另一部分!

完成後,下一步應該是3D。您可以使用之前編寫的引擎,並將其從2D修改爲3D。選擇一個3D API; OpenGL或DirectX。一旦你有一個基本的引擎,開始寫一個遊戲。需要額外的功能?然後將其添加到引擎!

數學方面,你應該知道矩陣是什麼。三角法也可以派上用場。

我不會浪費我與Xna的時間,這只是一個炒作。 :P

1

看來你已經掌握了編程語言的基本知識來開始遊戲編程。我和你一起建立在你已經獲得的東西上,比如學習面向對象,以及用指針練習更多。我建議你繼續前進,不要轉而學習另一種工具「編程語言」來實現你的目標。因此,如果您對遊戲編程感興趣,我建議您選擇一個C++框架並在其上進行工作,您一定會通過使用它來學習更高級的編程。

我推薦Gosu。它沒有充滿高級功能,這可能是一個優勢,但它有一個非常乾淨的設計,並以優雅和現代的方式使用C++。這對初學者來說非常友好。

另外HGE是另一個很好的二維引擎。

總結一下,通過實際上「現在就做」來進一步深入編程。這就是你的進步,你會驚訝於結果。當「這樣做」不會受到其他語言和工具的干擾時,您已經知道類似的東西,並且在學習可以幫助您構建當前知識的工具的同時,就您的情況而言,我的意思是C++引擎,不要選擇非常複雜的(IMO,就像OpenGL,DirectX,Win32等),因爲你最終會花費時間學習不使用它的工具,並且很有可能會感到沮喪。你以後總是可以學習低層次的東西,那麼它會變得更有意義。

1

由於這個問題有點主觀,因爲每個程序員都有一個最喜歡的庫,所以我會推薦SDL,因爲它很簡單,結構良好,而且非常完整,有很多教程可以指導你從一個簡單的窗口逐步到複雜的3D操作。一切都可以輕鬆實現。作爲一個方面說明,如果你想開始編程遊戲,我還會建議你閱讀一些有關遊戲基礎(初始化,遊戲循環,更新週期)的內容或書籍,以便你知道如何把你的知識放在好的工作上。