久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

通過HTML5和WebGL來制作2D游戲

Istrolid是一款采用諸多web新技術的HTML5游戲。游戲的作者treeform分別使用webGL、WebSocket、AudioContext和作者自制的響應式HTML框架來渲染圖形、創建網絡連接、播放音頻和設計UI。 ... ... ... .

  Istrolid是一款采用諸多web新技術的HTML5游戲。游戲的作者treeform分別使用webGL、WebSocket、AudioContext和作者自制的響應式HTML框架來渲染圖形、創建網絡連接、播放音頻和設計UI。另外,他還使用了Electron來將游戲打包成Windows和Mac的桌面應用程序。筆者這次給大家分享一下 Istrolid作者的游戲開發心得。


  2D WebGL

  在使用openGL和WebGL引擎時,開發者通常會創建多個網格和紋理對象。但是Istrolid的 作者卻有著自己獨特的建構方法。他 通過一個網格和紋理對象 來繪畫所有的游戲內容。游戲中的飛船有非常簡單的多邊形構成,有的甚至是由若干個三角形構成的。因此作者認為沒有必為每一個要繪制的物體都新建一個網格對象。取而代之的是創建一個動態的網格并在每一幀畫面中通過代碼來調整這個網格。這樣會大大加快繪制的速度。這種方法和通常被開發者們棄用的openGL的immediate模式比較類似。同時,作者不推薦使用 3D ModelView的矩陣。在編寫 Istrolid時, 他僅僅將一個視點的矩形傳遞給了著色器。因此這款游戲是完全基于2D引擎的。


  

  圖1 游戲中的飛船均由簡單的多邊形構成

  紋理對象也很簡單,而且和網格對象一樣是動態的。在一個區域或者地形上繪制圖片時,游戲程序會加載這個紋理對象并將它放到一個實時打包的紋理地圖集中。之后程序會根據新的UI坐標系來創建網格對象。


  

  圖2 2048px*2048px的地圖集

  作者對著色器的操作也很簡單。他將所有的顏色都轉換到了HSV顏色空間中以便于進行顏色的調整。


  

  圖3 HSV顏色空間


  Coffee Script

  JavaScript快得難以置信。作者原本利用Panda3d和Python來編寫卻發現Python并不能滿足他對速度的需求。他認為不斷發展壯大的JavaScript在滿足他對速度的追求的同時還能實現更多的功能。他使用CoffeeScript來編寫整個游戲并非常喜愛它的縮進排版和箭頭標識符。特別令他印象深刻的一點是箭頭標識符可以非常快速的創建內聯函數。

  他利用自己三年前編寫的基于HTML的編輯器在服務器上編寫代碼。這樣的好處是他可以通過訪問編輯器的URL來在任意一臺電腦上開始他的開發工作。他用過Windows、Mac和ChromeOS并非常支持ChromeOS的云理念。


  

  圖4 作者自制的基于網絡的編輯器


  WebSocket和服務器

  作者利用CoffeeScript來編寫服務器端程序并用Node.js來運行。他希望這款游戲能夠同時支持單人模式和多人模式。當玩家進行單人模式游戲時會開啟一個本地服務器。程序通過一個偽WebSocket來連接到本地服務器。這樣的好處是可以在一個真實的網絡環境中來測試代碼,從而簡化調試的過程。所有的調試和單步調試都在一個進程中完成。另外,他還可以在這個偽WebSocket中設置網絡延時和抖動來模擬復雜的網絡環境。

  在開發即時戰略類游戲時,開發者通常會選擇鎖步(Lock Step)方法。但是 Istrolid得作者并沒有這么做。他認為鎖步已經過時,不易于編寫(尤其是用JavaScript編寫時)。而且在這個個人電腦普遍擁有高帶寬的時代,鎖步的優勢已不再明顯。他采用delta編碼方式,并僅將變動的數據從服務器傳給每個玩家的服務器上。


  

  圖5 Istrolid的網絡結構


  AudioContext

  瀏覽器的音頻播放能力已經改善許多。作者通過過程生成技術來創建背景音樂,并創建一個隨著游戲的進行動態響應的鼓。當一個單位被集中或者爆炸時他會提高這個鼓的音量。他將每一個武器開火時的聲音的音量設定成一個隨機數以保證每一個武器的聲音都有差別,盡管這個差別很細微。除非要開發一個音樂游戲否則作者不推薦在這方面花太多時間。


  HTML UI

  如果游戲中的UI非常多的話,那么完全靠自己用代碼來實現就會非常困難。這時就需要一些些復雜的UI框架來進行輔助。對于HTML5游戲來說,無需使用復雜的工具包即可實現復雜的UI效果。作者還利用HTML5的特性自己設計了一個響應式框架從而簡化UI的編寫過程。


  Electorn “Shell”

  如今將HTML5游戲編譯成適合于Windows、Mac或Linux的桌面應用程序非常容易。Istrolid的作者非常推薦那些因為插件拓展、瀏覽器過時或者驅動故障等問題頭疼的開發者嘗試一下Electron。同時這也為把你的游戲發布到類似Steam這樣需要提供可下載文件的游戲平臺創造了可能。


  

  圖6 Electron


來源:http://www.gbtags.com/gb/share/10213.htm

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
這篇文章通過HTML5規范給大家介紹了i、em、b與strong元素的區別,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
主站蜘蛛池模板: 久久伊人精品一区二区三区 | 午夜国产羞羞视频免费网站 | 免费精品 | 亚洲一区二区免费视频 | 99久久精品免费看国产小宝寻花 | 好姑娘影视在线观看高清 | 午夜黄色| 精品国模一区二区三区欧美 | 免费九九视频 | 亚洲网在线 | 日韩一二三区 | 国产精品美女久久久久 | 宅女噜噜66国产精品观看免费 | 亚洲成人福利 | 国产精品久久久乱弄 | 亚洲欧美日韩精品久久亚洲区 | 精品一区二区三区在线视频 | 小川阿佐美pgd-606在线 | 玖玖爱365| 日日日干干干 | 色综合桃花网 | 亚洲一区二区免费电影 | 亚洲人成一区二区三区性色 | 国产午夜三级一区二区三 | 波多野结衣亚洲 | 99reav | 国产乱码精品一区二三赶尸艳谈 | 在线不卡| 国产高清一区二区 | 国产精品视频一区二区三 | 国产一区二区三区网站 | 久久久久国产精品午夜一区 | 国产剧情一区 | 天天躁日日躁xxxxaaaa | 99精品视频在线观看 | www.亚洲视频| 欧美日韩精品影院 | 久久亚洲免费 | 欧美一区二区三区在线看 | 91精品一区二区三区久久久久久 | 一区在线观看 |