2012-01-14 40 views
0

這是關於最新劍聖寶石(https://github.com/maccman/juggernaut)劍聖寶石遊戲服務器

我想建築的,因爲,讓我們說,「點遊戲」。這個元遊戲非常簡單:每個登錄用戶(根據Juggernaut訂閱頻道)都是JS畫布上隨機顏色的點。用戶可以將他的點移動到任何方向。而已。

劍聖應運輸和推送連接客戶的所有數據。

目前我IMMAGINE架構:

1)客戶端(一個或多個)推點和遊戲者的ID([1,[10299]])作爲AJAX到的座標,例如,導軌。

2)Rails的這個數據推送到劍聖

3)劍聖推座標退給誰聽這個頻道的所有客戶。

Juggernaut.publish("coordinates_channel", [1, [10,299]]) 

問題:

1)當我需要逐像素對JS畫布「點」對象移動,我需要發送太多的AJAX請求。例如,如果我的點每秒移動20個像素,則需要每秒發送20個請求。不能接受的。

2)我應該包裝Juggernaut.publish到異步循環(例如使用EventMachine)?因爲,只是immagine客戶端(1000點,數據與更新的座標流量不變)... ...

或者也許我得到錯誤的客戶端服務器使用劍聖寶石?你對這個實現有什麼看法?

謝謝。

回答

3

WebSockets /長輪詢/其他彗星技術具有低延遲,您的遊戲將滯後。我已經看到通過websockets實現實時遊戲的實現,它們要麼滯後,要麼是使遊戲機制具體化,就像使得玩家移動速度非常緩慢以說明低延遲。經典的AJAX絕對不存在這個問題。

下面是關於改善滯後
Valve Source Multiplayer Networking
Unreal Source Multiplayer Networking

+0

由於一些資源。鏈接真的很有趣,幾年前我讀到了Quake3的相同內容。 – 2012-01-14 13:41:30