2010-03-28 71 views
4

過去幾年來,我一直關注JavaScript的使用,並且隨着極速腳本引擎(V8,SquirrelFish Extrene,TraceMonkey等)的發佈, JavaScript大幅增加。然而,Internet Explorer的使用份額加上它完全缺乏對最新標準的支持,使得我想要在微軟總部丟掉一顆炸彈,因爲它爲任何網站創造了大量的問題。AJAX與基於瀏覽器的遊戲的ActiveX/Flash

遊戲將需要非常動態的客戶端,有動畫和其他視覺上的東西,但不是像使用DirectX或OpenGL直接在操作系統中運行的完整遊戲。但是,這可能會對JavaScript有點延伸,並且在Internet Explorer中肯定會感覺非常慢(因爲當前的IE引擎可能比SFX慢上百倍;要看看IE9會帶來什麼),是不是更好?整個事情在Flash?我知道這意味着需要插件,並且我對Flash沒有任何經驗(除了瀏覽YouTube:P)。這也意味着我不能直接從PHP輸出,我不得不使用XML或其他格式將數據傳遞給它(JSON直接集成在JS中,PHP可以輕鬆處理它)。

另一個想法是爲IE提供一個替代接口,但我不知道如何(ActiveX可能?或使用Flash,那麼爲什麼不把它提供給所有瀏覽器)或完全不支持它,並要求使用其他瀏覽器,儘管從商業角度來看這很愚蠢。

所以,我在這裏,想知道採取什麼方法,並因此要求您的建議。我應該如何構建客戶端?所有瀏覽器中的AJAX,所有瀏覽器中的Flash或混合(「現代」瀏覽器的AJAX以及「祖父」的其他內容:IE)。

+0

Internet Explorer越來越好。 「完全缺乏對最近標準的支持」並不是一個準確的陳述,你很可能會跳上bash-IE的潮流。我並不是說它沒有它的問題和異常,但IE8甚至IE7幾乎沒有IE6那麼差,並且如果你遵循良好的編碼標準,它會有所幫助:使用DOCTYPE,使用重置CSS等這兩種做法都解決了很多問題。 – Ricket 2010-03-29 01:19:15

+1

@Ricket,我想指出SVG和的首發。我還想指出的是,它在特殊模式下的HTML兼容性下處理XHTML。 IE 7,特別是8比IE6好得多,但與其他瀏覽器相比仍然缺乏很多。 – CMircea 2010-03-29 03:29:37

+0

IE9計劃修復SVG和HTML5支持(這應該意味着,但它似乎未經證實),並通過Acid3測試(據說,哈希,Firefox甚至沒有通過它,Chrome達到100,但與參考圖像不匹配)。儘管如此,我同意這不是完美的,我希望微軟確實正在對他們的IE團隊進行改造,並且認真對待它。我只是想確保雙方都有代表。我想我更喜歡玩惡魔的倡導者,因爲我專門使用Chrome和FF。 – Ricket 2010-03-29 20:25:41

回答

1

我推薦使用AJAX插件平臺(Flash,Silverlight或Java)。在遊戲和客戶端瀏覽器之間有一個乾淨的抽象層是一個很大的優勢。在任何非平凡的AJAX遊戲中,都會期待瀏覽器在性能或實現方面存在差異的漫長角落。

就我個人而言,如果您來自AJAX體驗,我認爲Flash很容易學習。 Flash是目前瀏覽器遊戲安裝和驗證最爲廣泛的插件。不過,Silverlight和Java都在建設勢頭。此外,Unity引擎已成爲商業瀏覽器遊戲的熱門選擇。

+0

有了JS庫(jQuery,也許是Dojo),我希望能夠消除大部分的差異。除IE以外,我認爲與圖書館沒有任何區別。 – CMircea 2010-03-29 22:31:33

+0

我沒有經驗可以肯定地知道,但JQuery和Dojo還沒有在遊戲中經過嚴格的使用測試,所以我不希望他們能夠很好地處理遊戲相關的東西。如果你走這條路線,我建議gameQuery。 http://gamequery.onaluf.org/。演示中的結果令人印象深刻,但這是迄今爲止最不被證實的方法,作爲一個經驗法則,這意味着更多的問題給你。 – 2010-03-30 14:56:23

+0

考慮到目前瀏覽器技術的狀況,我相信這個答案已不再有效。如果今天再次提出這個問題,那麼接受的答案將與此處給出的建議相反。 – Mishax 2016-05-06 13:15:24

0

我認爲你不應該把Java排除在等式之外。它是一種功能強大,速度快的語言,使用Java小程序,幾乎可以做任何事情。如果你想通過OpenGL獲得硬件加速的圖形,即使在一個小程序中,JOGL也可以做到。

另一方面,它可能不適合你。但是在這個早期階段,我認爲你應該評估你的所有選擇,因爲你沒有使用Flash的經驗,但聽起來你有一些編程經驗,你可能會感覺Java更多。

+1

事情是我個人完全憎恨Java,並且因爲許多原因(作爲編程語言)而不會觸及Java。此外,它還需要Java運行時,這是小而快的加載。 – CMircea 2010-03-29 03:30:48

+0

對於他們自己,我甚至不會試圖說服你,否則。 – Ricket 2010-03-29 20:26:32

+0

另外,一個客觀的觀點:就像用火箭筒射擊一隻蒼蠅,這對真正的需求來說太過於誇張。 – CMircea 2010-03-29 22:27:09

0

我相信目前的答案是Flash遊戲。

替代方案:

Java小程序:越來越少共同的天,這是不常用的許多計算機上的插件安裝。

SilverLight:太新了,可能會隨時間變化和變化。通常不會安裝在許多計算機上,它是微軟(每兩年更換一次技術......))

JavaScript/AJAX:它仍然是一個新的小孩,它有很多不錯的功能,但是IE瀏覽器甚至IE8仍然缺乏良好的跨瀏覽器,不能在內部播放聲音,仍然比其他人,你不知道它會在哪裏演變。

最終可能現在最好的解決方案是Flash開發: 跨平臺。快速運作。很長一段時間已經活着,並有很多支持。

我希望這個答案在下一年會改變。快樂的Peasach。

+0

你可以說Java的唯一方法是越來越少見,就是如果你在談論微軟的那種糟糕的Java VM,那麼幸好不是默認安裝的。對於Java而言,瀏覽器行業的IE是什麼,但可能更糟糕。 – Ricket 2010-03-29 20:32:13

+0

我認爲他意味着它不太常見,因爲Flash正在趕上所有的理由(它也有更高的安裝基礎),現代瀏覽器可以用JS創造奇蹟。 Java是BIG,運行時是BIGGER,但是當需要高性能的可移植應用程序時,它在這一點上勝過Flash和Silverlight。 – CMircea 2010-03-29 22:29:55

0

查看Jmonkey。如果您的計算機上有Java,則會加載「插件」。緩存後,下次訪問者訪問該頁面時,您的遊戲加載非常快。看看他們的網站的演示,看看我的意思:http://www.jmonkeyengine.com/

哦,我忘了說,這是一個3D場景圖Java引擎。我只是試了一遍,並在linux中加載。看起來他們已經投入了一些好的工作。

不要在瀏覽器中使用javascript來完成。而閃存真的可能是一個痛苦,因爲它是封閉的源代碼,你不知道你是否犯了錯誤或發現了一個錯誤 - 從經驗說起。我再也不想再製作Flash遊戲了。

0

如何使用RaphaelJs,它是一個使用SVG製作dinamyc圖像的Javascript庫,對於IE,它嘗試使用IE替代品VML創建這些圖像。我使用它在我自己的WebGame,但我真的不在其中製作複雜的圖形。在RapahelJs上完成的最複雜的事情是使用dinamyc不透明度滑塊的荒地(20 * 20瓦)。它與jquery一起工作,沒有任何問題或配置!