2012-05-17 57 views
0

目標平臺:的Windows XP高中計算機這個項目需要多線程嗎?

庫要求: SFML,GLEW,ODE,巨蟒(嵌入)

計劃的功能,導致我相信我可能需要多線程:

  1. 多達一百個機器人實時解釋python腳本。
  2. 所有機器人及其組件都在與其環境進行物理仿真。
  3. 在玩家周圍的大部分區域會生成詳細的環境。
  4. 遊戲運行時可能需要將文件寫入硬盤。
  5. (除了這些功能,目標平臺我擔心)

我需要多線程這個項目?

回答

5

我是否需要此項目的多線程?

如果你的項目需要你的獨立任務執行很多同時那麼多線程是一個不錯的選擇。
註上獨立 & 應力同時,基座規則是:

更多同步更少的需要是具有多線程的點。

+1

所以,如果物理學直接影響邏輯,我可能不應該將邏輯與物理邏輯分開嗎?兩者都會操縱幾何數據,所以我可能遇到問題。我的圖形編程朋友建議我應該將邏輯和物理圖形分開嗎? – Miles

+2

@ MilesRufat-Latre:是的,的確,您應該將邏輯和物理圖形分開,建議使用鬆散耦合的模塊,這會給您更多的靈活性。您可以使用一種整潔的設計模式,如[MVC] en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)。另外,如果在不同線程中執行的不同任務之間需要大量同步(例如:需要採取相同的全局數據等),那麼您應該考慮將這些減少到最低程度,請遵守我提到的基本規則以上。 –

+1

好的。我不需要與其他任何東西同步的唯一東西就是圖形。將機器人的邏輯與遊戲邏輯分開是可能的。我會更多地考慮它。感謝您的建議,這有助於很多!編輯:該死!它不會讓我接受你的答案!剩餘3分鐘。 – Miles

1

相信我,當你的應用程序需要多線程時,你會知道它;)GUI將凍結,應用程序不會響應。但是就像阿爾斯說的那樣,如果你需要同時執行很多任務,這是一個不錯的選擇。

+0

該項目是一個遊戲,所以它會或者多線程或者使用一個簡單的遊戲循環。所有任務必須連續執行,但有些任務必須在某個時間相對於其他任務執行。 – Miles