傳統3D遊戲引擎的Web化

鍾超發表於2012-12-22

轉載自:http://blog.csdn.net/xoyojank/article/details/8107373


最近floh大神的blog又復活了, 現在n3的主要發展發向是web化

其實也是跟PC和主機平臺的衰落有關, 各種移動裝置正在逐漸取代PC的地位
而做為一個3D遊戲引擎, 想要適應這個潮流卻不是很容易
先不考慮其它, 光技術上面臨的問題就很棘手:
  • C++目前無法直接用於web開發, 必然要面臨老程式碼轉換/移植的問題
  • 3D硬體加速的渲染在瀏覽器這邊, 沒有一個統一的標準
  • 多執行緒, web瀏覽器裡對於執行緒的使用有很多限制
  • 輸入裝置, 比如右鍵的功能很多時候會跟瀏覽器衝突
  • IO, 通過網路傳輸的資源在傳輸, 訪問許可權等上也有限制
  • 效能問題, 指令碼語言的速度雖說已經很快的, 但還是沒有Native快
就目前來說, C++的3D引擎勉強能用的解決方案大概有5種:
  • Microsoft IE ActiveX
    • 平臺支援: IE(Win). 本身設計有問題, 不被其它平臺支援
    • 優勢: 相當於把現有的引擎換個視窗, 程式碼改動最小, 效能幾乎沒損失
    • 缺點: 需要安裝外掛, 沒認證過的會被大多數安全軟體攔截, 不如直接做成微端
    • 代表: Unity3D, 山寨(或叫自研)3D引擎開發的遊戲
  • Sun Java JNI
    • 平臺支援: Win/Mac/Linux. 不過需要每個平臺都做一個Native版本
    • 優勢: 瀏覽器相容性好, 相當於一個通用的ActiveX
    • 缺點: 作業系統跨平臺需要額外工作. 需要安裝Java, 並且開啟瀏覽器支援
    • 代表: Drakensang Online
  • Adobe FlasCC
    • 平臺支援: Win/Mac/Linux. 需要Flash11+, 把C++編譯成AS能用的庫
    • 優勢: 平臺相容性目前最好
    • 缺點: 渲染器需要重寫, 而且是Adobe自己的一套標準. 另外, 想要效能高? 買license!
    • 代表:Epic Citadel(只是demo而已)
  • Google Native Client
    • 平臺支援: Chrome(Win/Mac/Linux). 瀏覽器限制住了...
    • 優勢: 與Native的效能差距不大, 而且IDE與Debugger目前也有了(VS2010)
    • 缺點: 雖然看上去很完美, 但不被其它勢力所支援
    • 代表: OGRE, Bullet, Unity3D...Google Web Store上有不少移植好的遊戲了
  • Mozilla Emscripten
    • 平臺支援: FireFox/Chrome(Win/Mac/Linux). 把C++編譯成JS
    • 優勢: HTML5符合未來的發展趨勢
    • 缺點: WebGL不被Microsoft支援. 效能目前損失比較大, SDK也不是非常成熟
    • 代表:BananaBread
值得注意的是, Adobe/Google/Mozilla這些都是基於LLVM搞的, 看來這也是一個好玩的玩意兒
暫時總結這麼多, 很多觀點是具有時效性的, 明年說不定就大變樣了
做為遊戲開發者, 還是要做好準備, 免得out了, HOHO~

注: 本文僅限於C++開發的3D遊戲引擎, 不包括各種XNA/Sliverlight的3D遊戲或是Flash/HTML5的2D遊戲

相關文章