2009-12-02 34 views
6

與幾位朋友一起,我們開始了這個業餘平臺無關的基於java的太空作戰模擬器遊戲項目(類似於機長指揮官的長期傳奇故事)。我們都不是3D程序員,所以這條路將會很長。用於太空模擬器的OpenGL

我的問題是:在我們的地方,你會開始學習OpenGL(也許通過GLUT)或今天有更好的可能性嗎?那麼Direct3D呢?你可能會建議任何書籍?我們點了一對夫婦,特別是

  • 戴夫·施賴的OpenGL編程指南
  • 盧克Benstead年代開始的OpenGL遊戲編程

感謝:-)

+1

如果你之前從未做過3D編程,那麼你可能會希望將自己的景點設置得比空間模擬器低一些。至少在一開始。也許是一個紡紗立方體如果你開始制定下一任聯隊指揮官的目標,那麼你會爲失敗而設置自己。 – Breton 2009-12-02 12:28:16

+1

你是對的,一開始就會像「魔方戰爭」一樣 – 2009-12-02 12:50:27

+1

請務必獲得'Luke Benstead開始OpenGL遊戲編程'的更新源代碼。 cd上的代碼不能「開箱即用」。你可以在這裏得到更新的代碼: http://www.kazade.co.uk/downloads/boglgp/ – 2009-12-07 22:35:04

回答

5

考慮使用開源3d引擎,如Ogre3DIrrlicht。這樣你可以專注於製作遊戲:內容,遊戲。

這兩個引擎都定義了一個可以映射到Direct3D或OpenGL後端的抽象層。

編輯:起初我沒有注意到你提到的Java,反正這兩個引擎都支持Java綁定。

+1

太棒了,我不知道Irrlicht。它似乎針對fps遊戲進行了優化,但我認爲這是一個好的開始。 – 2009-12-02 12:54:32

+0

還有一個建立在Ogre之上的Yake(http://www.yake.org/)遊戲引擎。 – 2009-12-06 10:49:58

0

如果你想保持獨立於平臺的DirectX贏得不要這樣做,因爲它只限於微軟Windows平臺

1

那麼,如果你以前從未做過3D圖形編程,那就去簡單化並且隨時隨地學習。 曾經有一套NeHe(Neon Helium)爲OpenGL編寫的非常漂亮的教程,這是我採用的路線。

2

你可以選擇一個開源的3D引擎,如Ogre3D

但是,如果你真的想自己寫圖形引擎(相當有趣),首先學習線性代數。不是相當先進的東西,但你應該很自在地表達自己的翻譯向量,旋轉矩陣等。

如果您已經熟悉這些概念,請選擇Direct3D或OpenGL - 這更多地取決於可用的平臺。如果您想在Mircosoft環境中編寫代碼,請選擇Direct3D,其他的選擇OpenGL。

其他庫的選擇取決於編程語言。比GLUT更好的替代品可能是SDL(C)或Qt(C++)。

1

我發現OpenGL更容易開始,因爲學習曲線並不那麼陡峭。你可以得到快速的結果,這對最初的挫折/動機有很大的幫助。噸的幫助等字的警告雖然 - 3D編程本身就很複雜,你會花費更多的精力建設圖形技術比遊戲本身。考慮採用Ogre3D,如果你真的想看到遊戲完成:o)(免責聲明:我知道也有其他引擎,但Ogre是穩定的,經過驗證並附帶良好的文檔)

3

如果您決定學習低級圖形編程而不是使用Ogre3D或Irrlicht等更高級別的3D引擎,我建議從OpenGL ES 2.X開始,OpenGL ES 2.X是OpenGL的子集。

OpenGL ES 2.X是OpenGL的簡化子集,適用於帶有諸如手機等可編程硬件的嵌入式系統。例如,在OpenGL中可能有多種方式來完成任務,但在Open GL ES 2.X中,只有一種方法。由於OpenGL ES 2.X中的選擇較少,因此學習掌握OpenGL ES 2.X的可能性非常小。 OpenGL ES 2.0編程指南是480頁,而第七版的OpenGL編程指南是936頁。

此外,使用OpenGL ES 2.X將爲您的遊戲帶來更廣泛的硬件受衆。因爲它是OpenGL的一個子集,所以爲OpenGL ES 2.X編寫的代碼可以在完全OpenGL系統上運行,而且幾乎不需要修改。您的遊戲圖形可用於從臺式機到智能手機的各種目標機器。

+0

謝謝,實際上我認爲OpenGL ES正是我正在尋找的OpenGL子集。 – 2009-12-02 15:19:21

+0

非常非常好的建議! (並且WebGL也基於ES 2) – 2012-12-23 19:52:24