2012-07-09 183 views
1

我想建立一個簡單的跨瀏覽器的多人遊戲(如國際象棋或紙牌遊戲),它將使用套接字與服務器進行通信。基於在線多人遊戲的遊戲服務器技術?

我有一些Ruby語言的中間知識,但我不太確信它是多客戶端服務器的一個很好的解決方案,所以認爲Node.js或Socket.io可能是更好的解決方案。我知道Java或C++對於這項工作可能非常棒,但我對它們都不太滿意,所以這就是我向服務器端JavaScript方向發展的原因。

我的問題是,你認爲什麼是像這樣的項目的最佳解決方案?什麼可能是我將在其上構建整個遊戲和通信邏輯的最佳服務器端技術?也許他們的一些組合?對於每種技術的速度,服務器負載,託管解決方案和開發速度的任何評論將不勝感激。

回答

1

如果您對JavaScript感到滿意,通過給node.js一個指引,你就沒有任何損失:學習曲線將會溫和。這是一個非常酷的服務器技術。

節點js的唯一缺點當然不會像java一樣縮放。完全一樣。對於網絡應用來說,這通常很好,因爲你可以在前面放置一個緩存層(反向代理),這大大減輕了這一點。我想這對你的應用來說不合理,因爲遊戲狀態會變得太頻繁。

雖然節點js可以「縮放」,但可以通過旋轉更多的實例。如果一個服務器可以容易地適應多個「遊戲世界」,那麼這很簡單。如果你需要在多臺服務器上分割一個遊戲世界,那麼服務器必須合作。但是,請注意這種情況,它並不像看起來那麼簡單:它被稱爲「多主」問題,是飢餓的互聯網怪物之一。

+0

可伸縮性不會是一個問題,因爲這將是一個小項目,主要是探索性的,並提高我的憑據,所以我現在只是擔心不會產生一些內存泄漏,可能會阻塞我的服務器,因爲我有一些內存問題在Java之前,我正在使用線程。感謝您的回答,我會再檢查一下Node.js並做出決定。 – 2012-07-09 23:45:22

+0

聽起來很棒,然後!如果你想主持一項公共服務,我認爲亞馬遜會在一年前免費提供底層虛擬機。也許這筆交易還在繼續。 – aaaidan 2012-07-10 04:18:28

+1

是的,如果你是一個新客戶,你可以在「免費套餐」上獲得一個虛擬主機:http://aws.amazon.com/ec2/#pricing – aaaidan 2012-07-10 04:26:00