2012-02-05 73 views
1

我正在計劃爲iPhone開發MMORPG策略遊戲。我想構建的一個很好的例子是Master Of Magic,但不是基於回合。設備和服務器之間不會有很多數據。服務器需要處理:聊天(私人,公共,聯盟)和事件。當用戶在瀏覽世界時,還需要管理玩家和城堡位置。玩家通過設定目的地來控制他們的軍隊,他們需要時間移動。例如,在您的城堡之間旅行時,可能需要10分鐘或更長時間,具體取決於距離。所以職位每分鐘都不需要大量更新。有人建議使用python扭曲。我想確保我用一種語言來創建它,並且如果它成爲一種流行的遊戲,它可以很容易地進行擴展。所以我所要求的是建議使用什麼語言,如果有任何已經構建的資源(例如:twisted),以及關於確保它可以擴展到大量用戶的想法。創建MMO遊戲服務器,我應該使用什麼語言?

+5

不屬於這裏,因爲它基本上可以用任何圖靈語言來回答。所以,這隻會讓臭名昭着的「哪種語言更好的討論」。 – Jasper 2012-02-05 02:19:42

+4

「我應該爲X使用哪種語言」的問題不適合SO--它們最好是主觀的,因此無法提供「正確」的答案。 – Jason 2012-02-05 02:19:49

回答

2

它不會幫助您擴展或縮小其系統架構的語言。它必須是事件驅動或異步處理實時遊戲產生的更新量,但這本身並不能保證可伸縮性。所以我的建議是堅持你最擅長的語言,並確保你的系統架構和優化。儘管如此,扭曲是一個不錯的選擇,C/C++速度很快,但該死的編寫服務器將會很困難。 Java可以非常快速地與NIO,但Java有限制,如果你想要原始速度。 Erlang對於基於事件的服務器來說可以非常快,但語法有點粗糙。

+1

對於Erlang來說,+1是遊戲服務器的不錯選擇。 – Jonas 2012-02-05 12:50:44

+0

我傾向於使用C++方法:它的速度很快,如果編碼的權利將是高效和模塊化的,就可伸縮性而言,我必須同意,可伸縮性實際上不是語言級別的屬性,它必須取決於由編碼人員實施。 – GMasucci 2013-04-03 07:32:09

0

沒有「可伸縮語言」這樣的東西有可伸縮性是您設計服務器的方式的屬性,並且有語言可以很好地適應這種可伸縮性。

其次,所有的可擴展性通常只針對您需要訪問數據庫的網站。遊戲通常將所有數據保存在內存中,以將滯後時間縮短到毫秒。當你把所有東西都放在記憶中時,你不可能真正縮放,因爲保持同步的所有東西都會對慢慢的屁股造成巨大的痛苦。

最後。不要擔心「如果你受歡迎,擴大規模」會擔心首先受歡迎。縮放通常只是裝載新服務器並將其鏈接到負載平衡器。

至於回答你的問題。任何C baced將工作。 Java是一個不錯的選擇,因爲它的併發庫和簡單的套接字。另外Java線程也很不錯。由於速度,C++是另一個不錯的選擇。

相關問題