快速摘要:Flash遊戲服務器建議(Node.js的,Red5的,等等)
我們有類似俄羅斯方塊完成的Flash遊戲,並已準備好「拉上」多人。在做了一些研究之後,我們在這裏詢問:Flash Sockets, Peer-to-Peer Capabilities,我們得出的結論是,如果沒有昂貴的/可疑的adobe軟件/服務(FMS/Cirrus)在Flash平臺上使用xbox/ps3遊戲處理在線遊戲的方式完成的P2P網絡是不可能的在這個時候。基本上,不允許Flash客戶端成爲在沒有RTMFP協議的套接字上監聽的「主機」。
需要建議的問題:
隨着該總結,問題是......什麼是實現像俄羅斯方塊遊戲的網絡基礎設施的最佳方式,其中有相當多的小I/O的從用戶到用戶(例如,一次最多4名玩家)。既然我們不能指定單個播放機作爲主機的P2P風格,我們的選擇是:
1)脂肪服務器與遊戲邏輯,輕客戶端更新顯示/內插基於服務器的更新(丙氨酸雷神之錘)
2.)Light服務器處理胖客戶端之間的通信(Ala並行仿真像RTS遊戲)
問題是,我們對網絡遊戲沒有經驗,因此真的會喜歡關於這些利弊的一些建議解決方案(甚至其他解決方案)。我們的俄羅斯方塊遊戲並不像發送「攻擊線」那樣微不足道,因爲當客戶清除了線條以添加到當前正在戰鬥的其他玩家。我們需要更多的實時同步。例如,下一個tetriminos的列表是一個單一的共享源,每個人都在爲「理想的作品」而戰。
最後,根據所選的實現,我想知道是否有人在遊戲服務器上使用Node.js。我假設如果服務器是一個輕量級服務器只處理客戶端之間的數據傳輸,節點將是一個很好的完美契合。但是,如果遊戲邏輯放在node.js服務器上,我會假設計算的阻塞性質會使Node.js的單線程無阻塞I/O方法變得冗餘?無論如何,任何有關這個問題的建議非常感謝。
我們已經着手建立一個全新的服務器架構,使其不受Node.js的Flash影響。對於那些想要探索這條路線的人來說,獲取在Flash和Node.js之間工作的套接字的關鍵是:來自flash套接字類的原始二進制套接字,並且使用Node.js中的緩衝區全局或來自閃存的XML套接字進行處理,作爲Node.js上的UTF8編碼進行處理,終止/ 0處理每條消息,或者將Flash中的原始二進制套接字編碼爲base64,然後在Node.js端接收爲base64。祝你好運! – DnisT
[Electro server](http://www.electrotank.com/es5.html)是最好的閃存服務器之一。 – Enkuushka