2011-03-31 46 views
4

我不知道有沒有人想過這個,但是像魔獸世界,Lineage II或者Aion這樣的遊戲在WebGL的瀏覽器前端是否可行?如果我想用這些新技術做一個完整的遊戲,我將不得不考慮哪些事情?另外,什麼是一個好地方開始?HTML5/WebGL上的MMO 3D遊戲的可行性

+5

這似乎是對HTTP一個很好的問題://gamedev.stackexchange。 COM /。 – DuckMaestro 2011-03-31 00:29:02

回答

4

這可能太開放了,但我會採取刺。

首先,沒有建模程序會輸出你所期望的,據我所知,因爲你需要輸出javascript。

某些瀏覽器會使用硬件來加速圖形,但這不是一個保證,你只能得到一點cpu,與其他選項卡共享,所以它可能不會像你喜歡的那樣流暢。

如果您必須下載大量數據才能運行您的程序,這對用戶來說是個問題。

我認爲建模程序是真正的挑戰,因爲基本上你必須手工完成所有的事情,事實上它不會非常流暢將是一個問題,除非你爲此設計。

但是,對於一些遊戲設計,WebGL應該是一個很棒的選擇。

+0

如果您可以找到一種方法來最大限度地減少運輸大量(可能是演出)資源的成本,那麼在瀏覽器中運行遊戲應該可以正常工作。不過,遊戲附帶的支持文件往往會成爲殺手鐗。如果它很容易成爲一個偉大的系統,那麼WebGL絕對是一件很有趣的事情。 – ssube 2011-03-31 03:09:26

+0

@peachykeen - WebGL是一項夢幻般的技術,但想出一款適合它的遊戲需要創造力。 – 2011-03-31 09:27:47

+0

好吧,HTML5支持緩存,但我不認爲它是運行一個巨大的MMO所需的演出規模。雖然小遊戲雖然! – tjameson 2011-04-08 10:07:12

2

我不相信這是可能的,如果你的遊戲必須超越一些立方體heigtmaps。

  • 大量JS編碼乘以瀏覽器怪癖。 (是的,我知道的jQuery,但它不是萬能的)
  • 大量的資源掛在瀏覽器緩存中的微小螺紋
  • 準備,待黑客接觸到了很多的瀏覽器工具,如螢火蟲
  • 客戶端代碼

這樣的遊戲在Flash上​​更加逼真,特別是即將推出的11版硬件3D播放器。

+1

目前支持WebGL的瀏覽器很少,所以瀏覽器的怪癖問題不大。如果IE能夠支持它,那麼這將成爲一個更大的問題。 – 2011-03-31 09:25:22

+0

呃,Chrome,FF 4和Safari都支持WebGL。那些是我書中的大玩家。基本上,唯一不是IE ... – tjameson 2011-04-08 10:03:22

+0

@tjameson - 最後我看到讓Chrome瀏覽器使用WebGL不僅僅是運行程序,我將不得不傳遞一個參數來使用(所以我使用Chromium for測試)。我沒有意識到Safari使用WebGL,但這很好。 – 2011-04-08 12:25:34

2

其實這是完全有可能的,我們將這樣的遊戲。

我們可以期待像O3D這樣的圖書館來照顧瀏覽器的怪癖。我們已經在桌面平臺上遇到了這些問題,圖書館在那裏處理了多平臺的可移植性問題。

瀏覽器緩存可能是一個小問題,但不是一個大問題。有可能爲遊戲分配更多緩存,並且我們也有像squid這樣的代理服務器可以緩存非常大的資源。如果局域網上的一組玩家共享一個代理服務器,他們也將共享大型資源對象,如果遊戲設計得很好的話(即資源不能有多個生成的名字,但是所有玩家都有一個共同的URL。)

也有關於爲Web應用程序添加本地存儲可能性的討論。 「準備被黑客入侵」不是市長問題。沒有什麼能夠阻止黑客操縱Flash或C++應用程序,反作弊工具已經變得毫無用處。暴雪已經依靠發現「機器人般的行爲」而不是嘗試更多的反黑客措施。

但是,我不認爲魔獸將會成爲第一款基於Flash的遊戲。事實上,它會是Quake(http://playwebgl.com/games/quake-2-webgl/),因爲已經有WebGL的Quake端口了......將會有使用WebGL的網頁遊戲,但是不指望暴雪在不久的將來支持它。

IE是唯一不支持WebGL的瀏覽器,說實話無所謂。所有其他瀏覽器都可以,用戶不會介意運行Chrome或Firefox。或者同時運行並選擇速度更快的遊戲。

誰在乎邊緣化的瀏覽器,如IE和Opera。它們同樣不重要。除非你指望IE6永遠不會支持我們正在討論的任何東西,因爲它已停產並且不受支持。

-1

「如果您能找到一種方法來最大限度地減少運輸大量(可能是演出)資源的成本」 實際上http已經具有運輸靜態資源演出的最低成本。憑藉其原生資源分配方案,URL,它具有最終的緩存功能。瀏覽器不僅知道如何通過URL來緩存靜態資源,而且存在能夠處理terrabyte數據的快速高效的代理服務器。

這是HTTP HEAD requeset的主要祕訣,代理服務器的瀏覽器可以有效地檢查它是否具有最新版本的資源並重新同步它。也可以通過HTTP頭將資源標記爲永久或非常長壽(不可變)。那麼重新同步化將不可能,相反,更新將通過用新名稱創建新資源來完成。

有一個神話,即HTTP作爲資源傳輸系統效率低下,事實上它被設計爲非常有效。

與基於HTTP的客戶端相比,使用專有協議的WoW和其他客戶端的效率非常低。這些客戶端無法使用代理服務器加速。 Windows更新,Apt和Yum的共同之處在於他們使用HTTP更新操作系統資源,並且能夠利用Akamai廣泛的全球代理服務器網絡以及其他類似資源,以便以每GB數千兆字節客戶。

1

對於緩存本地文件,您應該查看現在在Chrome中的文件系統API。這使您可以通過程序訪問虛擬文件系統,從而可以控制本地存儲的資源。

應用程序緩存可以幫助您使用遊戲所需的HTML,CSS和JavaScript等靜態資源。但是,您需要以「已安裝的網絡應用程序」(例如,通過Chrome網上應用店)的形式運行以獲得無限存儲空間。瀏覽器正在構建配額管理系統,以幫助簡化這一過程。

WebGL是偉大的,圖書館正在出現,以幫助更容易。沒有明確的「勝利者」,但有很多選擇。

現在JavaScript非常快,這要歸功於像CrankShaft這樣的改進。爲了獲得更好的性能,您可以使用Native Client運行您的C/C++代碼並將消息來回發送到JavaScript。

我可以看到兩個大問題。一個是幫助中間件公司將他們的工作移植到JavaScript或Native Client。第二個是提高我們可以將數據從JavaScript移動到WebGL的速度。

1

在RuneScape的播放次數最多的網頁遊戲多年的一個重寫他們的引擎與WebGL的......(他們目前使用的Java小應用程序)