遊戲

2017-10-08 92 views
0

我工作的一個遊戲處理多客戶端,遊戲中有服務器和誰連接到房間玩客戶端,每一個房間是一個遊戲,並在線程運行時,遊戲

現在我考慮過它,我知道我需要在比賽中與所有球員交流,我不知道如何做到這一點,我想爲每個球員做一個線程,這意味着我將需要打開一個線程房間和1-3線程的球員!

一個小型項目很細啊,但是從理論上講,如果它是一個遊戲有600萬級+的球員,這意味着像1米最小線程,

有可能是一個服務器來處理這麼多線程?這是對這個問題的正確解決方案嗎?

回答

0

首先是非常難以同步,並且是解決此問題的非常昂貴的方式。最好有一個線程處理所有玩家的處理,這樣你就不必擔心玩家之間的線程同步。說實話,如果你的遊戲不需要大量的處理時間,你可能更擅長使用單線程設計來處理所有的處理,而不必擔心所有的線程都是安全的。顯然,如果您想了解多線程,這不會是一個有利的解決方案。

+0

但是有可能用一個線程處理一個房間(1-3個玩家)?我的意思是我需要爲每個玩家讀一個套接字,但我不知道玩家將數據發送給我的順序,到目前爲止,我只看到套接字以同步方式工作。 – likesLowLevel

+0

@likesLowLevel它當然是可能的,但這取決於一個房間處理多少處理是否是最有利的解決方案。 RuneScape等遊戲也基於單線程設計,而服務器 - 客戶端關係似乎與您嘗試實現的類似。 –