2011-08-04 114 views
9

快速摘要: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方法變得冗餘?無論如何,任何有關這個問題的建議非常感謝。

+5

我們已經着手建立一個全新的服務器架構,使其不受Node.js的Flash影響。對於那些想要探索這條路線的人來說,獲取在Flash和Node.js之間工作的套接字的關鍵是:來自flash套接字類的原始二進制套接字,並且使用Node.js中的緩衝區全局或來自閃存的XML套接字進行處理,作爲Node.js上的UTF8編碼進行處理,終止/ 0處理每條消息,或者將Flash中的原始二進制套接字編碼爲base64,然後在Node.js端接收爲base64。祝你好運! – DnisT

+1

[Electro server](http://www.electrotank.com/es5.html)是最好的閃存服務器之一。 – Enkuushka

回答

0

我已經使用Flash Media Server來開發大量的多用戶應用程序(包括遊戲)。就我個人而言,我認爲它對你來說太貴了。

我從來沒有用過的Red5Node.js的,但是從Node.js的插座連接聽起來前途。

我還建造使用PHP其作品,以及一個簡單的永不ending- 插座(但不是那麼好,這是一個有點神經質)我敢打賭,你可以找到關於它的更多信息,並可能開發的東西你自己看到你不需要在用戶之間傳輸太多數據。在網絡上有一些使用PHP 插座與* SWF * S這樣chat room example on kirupa.com

祝您好運的例子。

1

我已經與SmartFoxServer取得了一些成功。對於不超過100位併發用戶是免費的,但如果你有更多,你需要購買許可證。

仍然很容易編寫服務器端邏輯,並且易於管理和部署。

3

完全披露:我是聯盟平臺的共同創始人。

如果您想快速啓動並運行,我會建議使用現有的多用戶服務器和客戶端框架,例如已建議的或聯合平臺(www.unionplatform.com,免費用於1000個同時連接)。

人們傾向於低估使用可靠的大堂系統和匹配製作全功能多人遊戲所需的基礎設施工作量。如果您正在從頭開始構建,那麼您可能會像在覈心遊戲物理學上那樣花費很長時間,例如連接故障轉移和重新連接代碼。

在多人俄羅斯方塊的遊戲中,我將在服務器上實現權威的遊戲/世界邏輯(在聯合中,您將使用房間模塊),並在客戶端鏡像服務器端模擬。客戶端顯示輸出,內插服務器端世界,並提供播放器輸入。下面是一個使用這種方法的例子多人乒乓球比賽:

http://www.unionplatform.com/?page_id=1229

一個適合自己情況的工會的潛在有用的功能是它除了傳統的HTTP通信的JavaScript的WebSocket支持。

http://www.unionplatform.com/?page_id=1587

的JavaScript支持,使您能夠創建HTML5全面的遊戲客戶端,或顯示出統計或出席觀看比賽閃光燈正在播放增加了原生的Web瀏覽器客戶端的選項。 union的協議也公開記錄(http://www.unionplatform.com/?page_id=86),因此您可以使用任何語言構建自定義客戶端功能。

出於好奇,你有你的遊戲的公共鏈接?

玩得開心!

colin

+0

披露在一開始看起來不錯。仍然積極爲該話題提供見解。 –

+0

@SamyakBhuta同意,謝謝。披露向上移動。 –