2008-08-21 60 views
24

Project Darkstar是每月JavaSIG昨晚在紐約市Google辦公室舉行會議的主題。對於那些不認識的人(可能是所有人),Project Darkstar是一個大型多人在線遊戲框架,它試圖處理所有「困難的東西」。基本的想法是你編寫你的遊戲服務器邏輯的方式是所有的操作都被分解成小任務。您將這些任務傳遞給Project Darkstar框架,該框架將它們分發到羣集中的特定節點,發生任何併發問題,並最終保留數據。項目Darkstar現實?

顯然,對於視頻遊戲來說,做這種事情是一個非常不同的問題,而不是企業應用程序。演講嘉賓Jim Waldo聲稱MMO遊戲的數據庫讀寫比例爲50/50,而企業應用程序更像是90%讀取,10%寫入。他還聲稱,大多數現有的MMO都將所有內容都保存在內存中,並且每隔6小時將其轉儲到數據庫。這意味着,如果服務器出現故障,您將失去自上次數據庫轉儲以來的所有工作。

現在,這個項目本身聽起來很酷,但我不認爲這個行業會接受它。首先,你必須用Java編寫你的服務器代碼。客戶端代碼可以用任何東西編寫(Jim聲稱ActionScript 3是最流行的,後面跟着C++),但是服務器的東西必須是Java。聽起來對我來說很好,但我確實感到遊戲行業的每個人都討厭Java。其次,與開發人員更喜歡使用現有框架和庫的其他行業不同,遊戲行業的人似乎喜歡自己寫一切。不僅如此,他們喜歡爲他們生產的每款新遊戲重寫所有內容。事情正在開始改變,開發人員正在使用Havok進行物理,虛幻引擎3作爲他們的平臺等,但大多數情況下,它看起來像所有東西都是專有的。

那麼,Darkstar Project項目的員工是不是浪費了他們的時間?像這樣的一般框架是否真的可以用於需要性能的複雜遊戲?即使它確實有效,遊戲公司是否願意使用它?

回答

24

編輯:這是在Oracle收購Sun之前編寫的,並開始橫衝直撞殺死所有不會讓他們每天損失10億美元的東西。請參閱OSS分叉的評論。我仍然堅持我的觀點,那些東西(MMO中間件)是現實的,你只需要一個公司不會背後。

市場可能會以少數大型遊戲爲主,但這並不意味着沒有太多的空間可供更多利基遊戲使用。讓我們面對現實吧:如果你想要達到100,000玩家,那麼你最終會建立自己的技術堆棧,至少對於關鍵核心來說。這就是中共爲EVE Online所做的事情(StacklessIO),這就是暴雪爲魔獸世界所做的(雖然他們使用了很多第三方庫),這就是Mythic在Warhammer Online上所做的(儘管它們是基於Gamebryo的)。然而,如果你的目標是成爲一個小型的,小衆的MMO(比如數十個Free-to-Play/Itemshop MMO),那麼正確地獲得網絡資源是非常困難的,數據一致性更難,可擴展性更強最大的b * tch。

但是遊戲技術並不是您唯一的問題 - 您還需要解決賬單問題。信用卡只?在德國玩得開心,那裏的人想要ELV。這就是您需要一個可靠的計費提供商的地方,但您仍然需要在計費應用程序中連接您的賬戶,以確保賬戶在計費失敗時被阻止/重新激活。

有一些公司已經提供「MMO基礎設施服務」(即Arvato's EEIS),但底線是:像黑暗之星這樣的東西是現實的,但假設您可以完全在第三方上構建一個數十億的MMO Stack很樂觀,可能很理想。但是,再次,完全發明所有的技術更愚蠢 - 使用你需要的第三方東西(即計費,字體渲染,音頻輸出...),但是write the stuff that really makes or breaks your business(即網絡堆棧,用戶界面等等)。 (注:傑夫的帖子可能是a bit flawed,但整體方向是正確的恕我直言。)

附錄:另外,遊戲行業確實許可和重用引擎很多。最顯着的遊戲引擎是Unreal Engine,Source Engineid Tech,即使不是數百遊戲,它也可以燃燒幾十個。但是還有一些鮮爲人知的(行業之外的)引擎。有Gamebryo,像文明4和輻射3遊戲背後的中間件,有RenderWare,現在只有EA-in-House,但用於像「戰地2」或「模擬人生3」這樣的遊戲。有開放源碼Ogre3d,在some商業titles。如果你只是在尋找聲音,有東西像FMOD,或者如果你想要做的字體渲染,爲什麼不給FreeType自旋?我想說的是:第三方引擎/中間件確實存在,並且自從十多年以來它們被成功地使用了(我確信id的Wolfenstein引擎被許可給其他公司,並且那是1992年),甚至包括數百萬美元頭銜的大公司。最重要的是支持,因爲一個好的發動機中的問題的情況下,沒有幫助是非常不值錢,或者至少,如果開發者度過他們的遊戲開發時間與發動機的不必要的調試非常昂貴。

如果暗星人設法得到支持側右2或3個知名度較高的片頭,我相信它可以在開放的MMO市場多了很多小的開發商和獨立開發成功。

+1

感謝您的努力! – 2009-01-30 22:14:55

-1

我不是在遊戲行業工作,但在我看來,這對於視頻遊戲和Quake和Half-Life引擎所做的一樣。那就是他們會促使年輕開發者對這個行業感興趣,並促進獨立遊戲的發展。

從我所知道的看,電子遊戲公司不會重複使用他們的大部分代碼,因爲如果他們這麼做的話,這意味着他們的新遊戲只是舊遊戲的重新散佈。每個人都想要一個很酷的新物理引擎,更好的圖形和新的遊戲方式。大多數視頻遊戲引擎和框架都是針對特定場景製作的,因此對其他情況不太適用。

也許Darkstar會明白它的道理,但我有點懷疑它,因爲泛化只適用於這麼多。

+1

但暗星即將後端代碼,而不是客戶端代碼 - 播放器(一般)不關心後端技術時,他們談論希望更大,更好。 – 2008-10-01 23:35:18

2

從我所知道的情況來看,電子遊戲公司不會重複使用他們的大部分代碼,因爲如果他們這樣做的話,那意味着他們的新遊戲只是舊遊戲的重新散佈。

呃......如果你指的是電子遊戲公司的長尾巴,也許。在一個擁有一系列成功遊戲的公司中,通常會有一些重複使用。主要的硬件變更可能會導致很多工作開始,但這取決於公司。

3

聽起來像沒用的技術給我。 MMO世界是由一些已經擁有自己技術的大型遊戲公司控制的。獨立遊戲開發者喜歡嘗試構建MMO,有時他們也這樣做,但這些遊戲很少獲得牽引力。闖入MMO世界的大公司可能會許可「已證實」的技術,或者擴展自己的技術。

遊戲公司重複使用大量的代碼從遊戲到遊戲。大多數/許多遊戲公司都在內部開發自己的技術,並將其用於他們生產的每一款遊戲。偶爾,他們會做一些事情,比如用第三方物理引擎替換他們的物理代碼。如果他們的內部代碼庫(遊戲引擎,設計工具,內部管道)開始老化或變得笨拙,他們可能會切換到像Unreal這樣的大型遊戲引擎。即便如此,主要的代碼塊將繼續在遊戲之間重複使用。

1

設計和編碼聽起來很有趣,但我認爲它最終歸結爲useless abstractions(從Joel竊取)。

1

遊戲重複使用「遊戲引擎」,甚至是來自第三方的遊戲引擎都很常見。這聽起來是朝着這個方向邁出的又一步。

1

我認爲這是一個偉大的事情。 開發人員無需擔心darkstar負責的所有項目,而且使用起來非常簡單。但它並不僅僅是讓它工作,而不是學習有關互聯網通信的一切,它也關乎性能。 Darkstar項目已經開發了2年多,並且一直在變得更好,更快,更強勁。

我認爲這將是很難,也許不值得針對特定遊戲的時候,當這樣的技術可以用來代替寫這些東西的時間。在運行期間,您還可以獲得很好的信息,告訴您應用程序中的哪些位置存在放緩或死鎖的原因,以便您可以改進。