我正在設計一個遊戲,玩家在程序設計比賽中爲機器人蔘賽進行編程。機器人可以用任何語言編程 - Java,Ruby,Python,C#。我正在尋找通過網絡傳輸遊戲數據的方式,或者某種方式讓遊戲服務器與機器人通話。什麼會是更好的選擇呢?我應該使用XMPP還是其他形式的遠程方法調用?跨網絡遊戲數據
跨網絡遊戲數據
回答
你所descibing不是RMI的問題,而是一個消息之一。我確信有幾種解決方案可以使用,並且基於您的應用程序的有限知識,我會說XMPP就是其中之一。它是語言不可知的,並且在大多數支持良好的語言中提供了庫(和服務器)。
無論是最好的解決辦法,我不能說,但我認爲這是一個可行的。它爲您提供點對點傳輸,指向多點的選項,以及讓您的遊戲服務器向所有客戶端廣播的方法。
基於REST的Web服務可能會更容易,如果你需要大量的語言能夠調用它用。
與許多遠程處理基礎設施的問題是,他們通常不框架之間進行移植。 儘管XMPP可能適用於您 - 但您可能發現的主要問題是數據傳輸過程中所有標頭/存在內容過多的數據都會通過網絡。另外,由於XMPP是基於XML的,因此任何二進制數據都必須作爲Base64字符串發送。
一個更好的選擇可能是一個比較低的水平套接字接口 - 有自由做位壓縮,以減少數據的大小將可能是有益的兩種方式。
您的建議是建立自己的消息傳遞或支持多種語言的RMI基礎結構?!? – Robin 2010-03-03 21:43:10
他正在構建一款遊戲,而不是一款商業應用程序 - 可能會有相當多的網絡流量 - 我的觀點是較低級別的框架/通信機制會有所幫助 - 對於擁有遊戲服務器的遊戲,將網絡服務暴露給通信具有很多的開銷和與RMI,你需要警惕的非便攜機制 - JAVA可以使用.Net遠程.... 如果他選擇去了郵件傳遞路由我不會推薦他使用構建他自己的中間件 - 這會很瘋狂,但是爲遊戲通信使用持久消息傳遞也可能是瘋狂的 – saret 2010-03-04 06:55:38
另外他的問題不僅僅是他應該使用什麼框架,如果你閱讀它(「我應該使用XMPP還是其他形式遠程方法調用?「) - 他還問是否XMPP或遠程過程調用(RPC)機制之一,如RMI/DCOM/Corba/.Net Remoting內置於某些列出的f rameworks /語言(Java,Ruby,Python,C#)會起作用,我說這不一定是一個便攜式路線 - 除此之外還有其他問題也可以沿着這條路線 – saret 2010-03-04 07:20:21
我總是發現重新發明輪子很乏味。試試看看你是否可以使用OpenTNL。
- 1. 網絡遊戲?
- 2. Android遊戲網絡
- 3. iPhone網絡遊戲
- 4. Python遊戲網絡
- 5. C#XNA無遊戲網絡遊戲
- 6. HTML5 + Javascript:網絡遊戲
- 7. SOCKETS(網絡) - TicTacToe遊戲
- 8. 網絡圖書館遊戲
- 9. 開發網絡遊戲
- 10. iPhone網絡遊戲編程
- 11. C#遊戲網絡庫
- 12. 多人遊戲網絡
- 13. 如何創建一個跨網絡的P2P遊戲?
- 14. 驗證網絡遊戲益智遊戲的算法
- 15. 填字遊戲拼圖數據庫或網絡服務
- 16. 實時網絡遊戲環境中的遲到數據包
- 17. 遊戲網絡延遲補償
- 18. Java多人遊戲網絡概念
- 19. 網絡遊戲 - SpriteKit插值/外推
- 20. 當網絡遊戲狀態改變
- 21. 井字遊戲的神經網絡
- 22. Python遊戲服務器 - 優化網絡
- 23. 通過網絡比較遊戲狀態?
- 24. 遊戲網絡編程同步圖形
- 25. 用socketIO開發的網絡遊戲
- 26. 實時網絡遊戲,插值問題
- 27. 用於棋盤遊戲的Libgdx網絡
- 28. Java多人遊戲 - 網絡概念
- 29. 網絡遊戲的最佳平臺
- 30. Java網絡遊戲(可能使用NIO)
這不是一個web應用程序。它是一個用QtRuby編寫的桌面應用程序。但REST仍然不能回答我如何使用PUSH從機器人發送/接收消息。 – Sathish 2010-03-02 15:18:16