2011-04-04 36 views
3

我是一個偉大的蟒蛇迷。最近我有一個想法來編寫RTS引擎和/或基於此引擎的簡單RTS遊戲。有幾件事我需要考慮,也許你可以給我一些建議:Python中的2D RTS?

  1. 表現。大多數遊戲都是用C++編寫的。遊戲引擎是不是太慢?我只瞄準二維,但仍然可能太過分了。
  2. 圖形。有沒有好的圖形庫爲Python? SDL/OpenGL綁定或者更適合python的東西?
  3. 遊戲引擎。你知道用python編寫的任何現有的RTS引擎嗎?
  4. 任何工具/庫蟒蛇,在發展中RTS可能有助於提前

謝謝!

+0

http://pyopengl.sourceforge.net/ – Andrey 2011-04-04 21:38:20

+4

在線前夕是在Python主要寫入(實際上的Python的變體稱爲無堆棧的Python)中,用C++編寫的性能敏感組件(例如圖形引擎)。如果Python能夠處理全球最大的未分割的MMORPG(它也恰好擁有大多數併發在線播放器的世界紀錄),而所有的實體跟蹤和網絡I/O都需要它,我認爲它可以處理RTS ... – Kromey 2011-04-04 21:47:18

+0

謝謝大家的答案! – pajton 2011-04-09 20:38:26

回答

7
  1. 性能可以與繁重的圖形處理/數學處理的問題。如果是這樣,請參閱Panda3D,NumPy,Cython和PyPy。
  2. 使用Pyglet,PyOpenGL與Pyglet,Panda3D(雖然你在2D中編寫,你仍然可以使用3D引擎),或者可能使用其他庫。
  3. 似乎沒有現有的RTS庫,但肯定存在預先存在的通用引擎。
  4. 嘗試搜索一般的RTS相關庫:您需要AI,路徑搜索,網絡等。因此,您可能對Twisted感興趣,例如,因爲它有助於網絡。
+0

+1對Twisted來說是做網絡的 - 它的快速和可擴展性,並且不會太低,難以處理。 – 2011-04-05 13:40:46

3

我可以回答你的第一個兩個。

  1. Python對於遊戲來說不算太慢。所有的遊戲都必須用C++編寫是一個神話。當然C++(或C)可能會給你最好的性能,但這並不意味着你無法用另一種語言編寫遊戲。
  2. 嘗試PyGame:Python的SDL綁定。
+2

重要的注意事項(並且經常被遺忘)是python中大多數性能密集的代碼調用C庫的方式。很顯然,數學和圖形處理應該在純Python中進行,但是有一些庫是由C庫的python綁定組成的。 – marr75 2011-04-04 22:00:05

+0

這就是要點。我想在純Python中做到這一點!即我不想最終用一些外部API調用替換高級漂亮的代碼python代碼,因爲性能太差 – pajton 2011-04-04 22:13:45

+0

不要試圖讓你脫離你的目標,但是「純粹的」python是一個錯誤的名詞,考慮到python本身是用C語言編寫的。至少考慮你的代碼中數量密集的區域的numpy。 – 2011-04-04 23:30:47