我正在嘗試製作多人網絡遊戲。每個玩家在屏幕上用矩形表示。我使用的OpenGL的圖形和用戶輸入(MOVE-LEFT,MOVE-RIGHT等命令)將由它處理(或GLUT或sumthing)。對等通信線程
我有以下的遊戲架構。
遊戲中有4名玩家(節點)。每個玩家都使用UDP發送和接收數據。每個玩家可以發送數據給其他玩家。
如果來自相應用戶的任何輸入,數據需要由玩家發送。 (例如MOVE-LEFT命令等)。 只要玩家(比如p1)從任何其他玩家(比如p2)接收到任何數據(比如玩家p2在屏幕上的新位置),玩家p1的屏幕應該立即更新。
我在想以下幾行: 創建一個處理圖形的線程。 使用UDP創建另外2個線程,每個線程用於接收和發送數據。
每當圖形線程從用戶獲取'myposition'的輸入時,它就會更新共享全局變量'myposition'。正在等待這個變量的網絡發送線程被激活,並且告訴其他玩家關於它的新位置。
類似地,每當從任何其他玩家'i'收到'位置'更新時,網絡接收線程更新全局變量player [i] .position。圖形線程現在將使用更新後的位置重新繪製場景。
此設計是否正確。如果是的話,這個設計有多好,我該如何改進它