2011-07-30 34 views
3

我的一位朋友正在從平面設計師跳到遊戲開發人員,我決定在空閒時間與他一起工作。我們都沒有太多的開發經驗,但我對學習Python非常感興趣,而我的朋友想學習C++。面向Linux,OSX和Windows的2D遊戲編程 - C++/Python/OpenGL?

我已經讀過C++是遊戲編程中的常見分母,但是SO上的相關問題建議新用戶避免使用更復雜的C++語言。我的第一個擔憂是創建可在操作系統之間移植的遊戲。我將使用Linux開發和測試遊戲,但我們希望它可以在OSX和Windows上運行。我們對3D遊戲開發沒有興趣,因爲我們對3D圖形沒有任何經驗。對於像VVVVVV這樣的遊戲,我會非常高興 - 非常簡單的2D,只有最小(或零)紋理。

另外,是否有必要使用OpenGL的二維圖形,或者C + +/Python有一些圖形庫能夠產生遊戲值得的圖形?請記住,通過遊戲值得我的意思是像Minecraft或VVVVVV這樣簡單,像素化的圖形。

我們有一些關於Python,C++和OpenGL的書籍,如果這是正確的入門方法,可以深入到這些書籍中。大家推薦什麼?

+0

無論您使用哪種語言。 Python有一個很棒的C綁定,允許你調用C/C++可以使用的相同的opengl函數。你想學習低級圖形還是隻使用預製圖書館來完成2D圖形? – flumpb

+0

如果您希望它具有可移植性並盡最大努力實現這一目標,請使用Java(Minecraft正在使用Java)。但是,如果性能是您開發中的關鍵,請使用C++。我想說的一個好的二維圖書館是Allegro。你可以使用Boost.Python很容易地將Python綁定到C++ – Gasim

回答

5

實際上有一套方便的Python庫和模塊,pygame,這是非常有用的,有據可查,並有大量的社區支持,並與它一起構建了很多有趣的遊戲。最好的部分,回答你的問題的一部分,是OpenGL不是必需的。

而且,因爲它基於Python,所以非常便攜。當然,這類項目會帶來很多挑戰,但要耐心並堅持下去,你可以學到很多東西,也有很多樂趣。

C++是一門功能強大的語言,你可以用它做很多事情,而熟悉C++的人會說你應該學習它,而且他們是對的,因爲它不會很快消失,但你堅持一點點就是對的。如果你真的喜歡用Python進行開發,那麼沒有什麼能夠阻止你在之後選擇C++並且一起享受它們。

首先是閱讀,練習和享受你所做的事情。

1

我同意newmintedcocoaguy諸如Pygame之類的東西是你的處境。但是爲了避免第二個問題,您可以在不使用OpenGL/DirectX的情況下使用C++製作2D遊戲。過去我使用Windows庫來完成位圖,RECTS等工作。我認爲Linux將具有類似的功能。雖然如果你希望你的遊戲是跨平臺的,那麼OpenGL很可能是一條可行的路。

2

我已經用C++和Python編寫了幾個小規模的遊戲和遊戲,對於初學者,我可以推薦使用Python,直到您瞭解了遊戲的構建方式。

當然,我不知道你想要創建什麼類型的遊戲,但是對於很多小型2D遊戲來說,Python的效率就足夠了,所以你不必處理C++的複雜性。

我可以爲Python推薦的庫是Pygame(正如我們已經聽說過的)和(更好,在我看來)pyglet,這是2D圖形(它在後臺使用OpenGL)的更復雜的工具。

對於用C++編寫的2D遊戲,我可以強烈推薦ClanLib,這是一個開源遊戲引擎,擁有龐大而活躍的社區,巨大的代碼庫和衆多示例。我支持Software和OpenGL渲染,可編譯爲Windows/Linux/MacOSX。你一定要試一試!

祝你好運:)

0

正如有人誰熟悉的「我是新的,我想要做X,我應該怎麼學?」事情,最近做了它,我現在說堅持Python。正如其他人所說的,有一些像PyGame這樣的像樣的庫,C++很好,有點複雜。

如果您正在學習如何將零件組裝在一起,以使遊戲與語言糾纏在一起,開始很難解開哪一個實際上會導致您的特定問題。它總是可能的,一旦你對你正在做的事有一個很好的感覺,通過撿起C++來學習一種新的方式來做到這一點。

0

對於初學者的便攜式C++遊戲,我會選擇SDL。它可以訪問OpenGL,請檢查tutorials! 你甚至可能甚至可以用python和前面提到的Python-to-C綁定庫來使用它。

1

我會推薦C++。很多人都說它的難度在某種程度上是真的,但是你可以用C++來製作一個好的2D遊戲,而不會陷入「困難」的部分。爲此,您需要一個類似SDL,SFML等的庫。 如果您學習C++,那麼它至少值得您花時間,至少您不會遇到性能問題。