《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于HTML5的3D多人網頁游戲實現方案
基于HTML5的3D多人網頁游戲實現方案
來源:微型機與應用2013年第1期
馮科融,王和興,連加美,劉 偉,賈賀杰
(東北大學秦皇島分校 計算機與通信工程學院,河北 秦皇島 066004)
摘要: HTML5標準增強了網頁在圖形繪制、媒體播放、消息傳送等方面的能力,為提高網頁游戲性能創造了條件?;谠摌藴书_發出一個3D多人網頁游戲。介紹了其實現方案,測試了其相關性能,分析了該技術的可行性。
Abstract:
Key words :

摘  要: HTML5標準增強了網頁在圖形繪制、媒體播放、消息傳送等方面的能力,為提高網頁游戲性能創造了條件?;谠摌藴书_發出一個3D多人網頁游戲。介紹了其實現方案,測試了其相關性能,分析了該技術的可行性。
關鍵詞: HTML5;WebGL;WebSocket;THREE.js;JavaScript

 中國網游產業已走過了11年,文化部發布的《2011中國網絡游戲市場年度報告》顯示,2011年中國網游市場規模為468.5億元[1]。近年來,網頁游戲(頁游)因其方便省時等優點受到玩家青睞,正不斷占領市場。2011年開始,3D頁游的出現又使頁游品質大幅提升。可以預測,高品質頁游將在未來網游市場中占據一席之地。本文以自主研發的基于HTML5的3D多人網頁游戲BillyRun為例,介紹了其實現方案,分析了其程序性能并展望了技術前景。
1 核心技術分析
1.1 以HTML5標準中Canvas元素為載體呈現游戲圖像

 HTML5是最新的網頁標準。廣義論及HTML5實際是指包括HTML、CSS和JavaScript在內的一套技術組合,其目的在于減少瀏覽器對插件的依賴性和豐富網頁的表現形式[2-3]。Canvas元素是HTML5中新增的頁面元素,該元素是一個圖形繪制容器,擁有一個基于JavaScript的API,可由腳本動態繪制圖像[4]。BillyRun中的Canvas元素用于兩個方面:一是呈現和更新3D游戲畫面,二是繪制游戲中的部分2D畫面。目前,IE、FireFox、Chrome、Opera等主流瀏覽器均支持Canvas元素。
1.2 基于WebGL的游戲畫面渲染
 WebGL是一種3D繪圖標準,該標準通過增加OpenGL ES 2.0的一個JavaScript綁定,為網頁中Canvas元素提供硬件3D加速渲染,使網頁3D程序能夠流暢運行[5],無需瀏覽器插件。游戲中場景創建和渲染使用了THREE.js。THREE.js是一個JavaScript開源3D庫,能創建包括攝像機、燈光、材質、模型在內的三維場景,并由WebGLRenderer模塊以WebGL標準渲染[6]。目前FireFox、Chrome、Opera、Safari等主流瀏覽器均支持WebGL標準。
1.3 基于NodeJS的服務端程序
    NodeJS是基于Google V8引擎由JavaScript實現的服務器端可擴展程序,可作為編寫高效網絡服務程序的平臺[7]。NodeJS消除了服務器端程序與客戶端程序的語言差異,使代碼可以復用,方便了頁游開發。BillyRun服務器端由NodeJS搭建,其中定義了游戲信息,并通過Socket.IO模塊與各客戶端實時通信完成更新。服務器端連接了MySQL數據庫,用于保存用戶賬號信息。目前服務器端在Linux、Windows 7和Windows Server 2003下均可運行。
1.4 基于WebSocket技術的網頁實時通信
 WebSocket是HTML5提供的瀏覽器與服務器間全雙工通信技術,主要用于實時通信服務。WebSocket十分高效,只須瀏覽器和服務器進行一次握手,便可雙向傳遞數據。Socket.IO是Node.JS的一個開源模塊,它對WebSocket進行了封裝,提供了建立連接和消息推送的接口。BillyRun中基于此模塊在服務器端建立了Socket服務,與每個客戶端相連,完成信息更新和消息處理工作。目前,IE、FireFox、Chrome、Opera等主流瀏覽器均支持該技術。
1.5 Audio以及基于Web Audio API的3D音效
 Audio元素是HTML5中新增的元素,可實現音頻文件播放等基本功能,支持HTML5的瀏覽器都能良好實現。Web Audio API由谷歌提出,是一套用于網頁音頻處理的JavaScript API[8],其功能強大,尤其是3D定位和音錐技術,可根據聲源與玩家的位置關系,控制左右聲道實現立體音效。該技術能大大提高游戲品質,但目前只有Chrome瀏覽器能夠支持。BillyRun中分別實現了這兩套音效方案,兼顧了游戲品質和兼容性問題。
2 具體實現方案
2.1 游戲內容設計
BillyRun是一個空中對戰射擊游戲,游戲場景包括地面、天空和建筑物,每個玩家操作一架直升機在場景中飛行,可與其他玩家展開攻擊或防御,已有多種游戲模式判定勝負。
2.2 程序整體結構
 BillyRun由服務器端程序和客戶端程序兩部分組成。服務器端程序實現了數據庫交互、玩家事件處理、界面跳轉等功能;客戶端程序實現了界面顯示、音效播放、游戲主循環等功能,運行在客戶瀏覽器上。BillyRun功能結構圖如圖1所示。

2.3 程序執行流程
2.3.1 程序整體流程

 程序由客戶端和服務器端組成,兩端通過通信保持同步,其整體流程圖如圖2所示。

2.3.2 客戶端程序流程
 客戶端包含界面、加載、主循環、消息處理和輸入系統5部分。
?。?)游戲有5個div元素封裝的界面。玩家先后進入登錄界面、游戲大廳界面、游戲房間界面、加載界面和最后的游戲界面,每局游戲結束時返回游戲大廳界面。
?。?)游戲的加載系統包括4部分:①場景模型和音頻文件。為固定游戲資源,加載后保存在程序中,僅進行一次;②游戲信息。加載在每局游戲開始前執行,更新客戶端信息;③玩家模型。加載在每局開始前執行;④加載本局游戲所需的玩家模型,使用如圖3所示的動態加載方法,避免了重復加載,提高了程序效率。

 

 

 (3)主循環由requestAnimationFrame構建。循環首先檢測玩家所處界面,若處于游戲界面,程序會獲取與上次循環的時間間隔,完成信息更新、碰撞檢測、畫面重繪等工作;若處于其他界面(如加載界面),表示游戲未進行,程序將等待下次循環。客戶端更新頻率為45 F/s,主循環每幀執行,以保證游戲的流暢性。
?。?)消息處理模塊核心是一個socket對象,與服務器端連接,向服務器端發送自身玩家信息,并接收服務器端發送的其他玩家信息和系統命令。
    (5)輸入系統由文檔對象document.addEventListener方法監聽鼠鍵事件。游戲輸入信息將緩存在程序中,由主循環處理;非游戲輸入將即時處理。
2.3.3 服務器端程序流程
 服務器端程序啟動后監聽端口,為登錄玩家建立服務。對每個玩家,程序先訪問數據庫驗證登錄信息,驗證通過后為其建立玩家對象和socket連接,加入玩家列表。當玩家所處房間可進入游戲時,程序命令該房間所有玩家進入游戲,開啟該房間消息循環。游戲中重要邏輯處理如勝負判定都由服務器端完成。一局游戲結束后,服務器端命令玩家返回大廳房間準備下輪游戲。當玩家退出時,服務器端訪問數據庫更新信息,在程序中將該玩家刪除。
3 程序性能測試
 本文選擇了不同配置的4個客戶端和2個服務器端測試程序性能,機器配置如表1所示。

3.2 服務器端程序性能測試
 如表3所示,服務器端程序對內存和CPU的占用較低,能較輕松地支持2~8人游戲,并有增加玩家負載的潛力(但負載上限還需要進一步測試)。

3.3 網絡傳輸性能測試
 網絡傳輸性能測試結果如表4所示。由表4可以看出,受網絡情況影響,加載用時差異較大。而動態加載技術避免了重復加載模型。因此當首次加載完后,再次進入游戲時用時大大減小,也即減少了玩家的等待時間。

 HTML5的出現為頁游提供了新的實現方案,通過對BillyRun的分析測試,證實了該方案的可行性。目前HTML5標準還不夠成熟,部分瀏覽器尚不能全面支持,基于該技術的頁游也相對較少。但隨著HTML5標準的推廣,尤其是PC端和移動端瀏覽器的不斷支持,其跨平臺的優勢將得以充分體現。在不遠的將來,基于HTML5的頁游將有機會成為市場的主導。
參考文獻
[1] 新華社.文化部發布《2011中國網絡游戲市場年度報告》[EB/OL].(2012-03-30)[2012-08-06].http://www.gov.cn/jrzg/2012-03/30/content_2103576.htm.
[2] 劉杰.淺談HTML5技術[J].科技創新導報,2012(10):29-35.
[3] CHEN B J, XU Z Q. A Framework for browser-based multiplayer online games using WebGL and WebSocket [C]. Multimedia Technology(ICMT), 2011 International Conference,2011:471-474.
[4] YANG J P, ZHANG J. Towards HTML 5 and interactive 3D graphics[C]. Educational and Information Technology (ICEIT), 2010 International Conference,2010:522-527
[5] Khronos Group.WebGL 1.0—2011 WebGL[S].2011.
[6] Mrdoob. JavaScript 3D library[EB/OL].(2012-04-22)[2012-08-06]. https://github.com/mrdoob/three.js/.
[7] KIESSLING M. The node beginner book[EB/OL].(2012-02-12)[2012-08-06]. http://www.nodebeginner.org/.
[8] ROGERS C. Web audio API W3C working Draft 02 august 2012—2012 Web Audio API[S]. 2012.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          日韩小视频在线观看| 99在线精品视频在线观看| 亚洲国产小视频| 欧美日本一区二区视频在线观看| 暖暖成人免费视频| 亚洲午夜黄色| 国产精品福利久久久| 欧美影片第一页| 欧美一区二区三区在线看| 国产麻豆精品theporn| 国产美女精品人人做人人爽| 欧美xx视频| 欧美日韩国产成人在线免费| 亚洲欧美日韩一区二区三区在线观看| 久久久av水蜜桃| 有码中文亚洲精品| 欧美精品自拍| 欧美视频一区二区三区…| 在线看国产日韩| 亚洲色图在线视频| 一区在线免费观看| 欧美精品久久久久久久久老牛影院| 欧美精品成人| 伊人精品久久久久7777| 国产主播精品| 亚洲一区二区三区四区中文| 欧美视频在线观看 亚洲欧| 午夜精品一区二区三区在线视| 这里只有视频精品| 欧美精品一区二区三区一线天视频| 亚洲三级视频在线观看| 国产亚洲精品福利| 亚洲国产欧美一区二区三区同亚洲| 欧美日韩欧美一区二区| 中日韩在线视频| 国产日韩欧美一区二区| 欧美日韩在线直播| 嫩草伊人久久精品少妇av杨幂| 欧美激情第二页| 欧美专区亚洲专区| 亚洲国产一区在线观看| 日韩天堂在线观看| 欧美日韩综合在线| 欧美成人一区二区三区片免费| 亚洲女人天堂av| 欧美精品一区三区在线观看| 亚洲大片一区二区三区| 欧美区国产区| 欧美日韩亚洲另类| 国内精品久久久久国产盗摄免费观看完整版| 有码中文亚洲精品| 国产欧美一二三区| 国内外成人免费激情在线视频网站| 国产美女一区| 国产三级欧美三级日产三级99| 欧美精品一卡| 欧美一区二区在线免费观看| 欧美日韩国产黄| 亚洲第一视频网站| 亚洲欧美视频在线观看| 国产精品极品美女粉嫩高清在线| 美女日韩在线中文字幕| 国产一级一区二区| 亚洲一区www| 久久精品综合网| 亚洲午夜高清视频| 亚洲电影网站| 99视频热这里只有精品免费| 欧美日韩国产一级| 欧美日韩国产成人在线| 亚洲午夜免费视频| 欧美视频二区36p| 在线不卡亚洲| 午夜精品视频在线| 母乳一区在线观看| 欧美国产欧美综合| 尤物视频一区二区| 国产拍揄自揄精品视频麻豆| 免费高清在线视频一区·| 亚洲一区二区精品视频| 欧美日本一道本在线视频| 欧美久久综合| 国产模特精品视频久久久久| 欧美激情日韩| 亚洲欧美日韩一区| 亚洲精品乱码久久久久久蜜桃91| 久热精品视频在线免费观看| 99精品福利视频| 亚洲精品中文在线| 亚洲综合日韩在线| 欧美中文字幕在线播放| 免费观看在线综合色| 欧美性做爰毛片| 欧美日韩亚洲精品内裤| 亚洲欧美电影院| 国产日韩在线播放| 久久99在线观看| 亚洲激情一区| 亚洲免费成人| 欧美在线观看一区二区三区| 一区二区亚洲精品国产| 国产精品一区二区三区成人| 欧美日韩精品一区视频| 中文精品99久久国产香蕉| 麻豆精品视频在线观看| 欧美日韩裸体免费视频| 国模一区二区三区| 久久免费视频这里只有精品| 欧美精品国产精品日韩精品| 亚洲国产精品v| 欧美精品一区二区三区在线播放| 欧美日韩另类综合| 尤物九九久久国产精品的特点| 午夜久久久久久久久久一区二区| 欧美私人网站| 欧美日韩视频第一区| 久久综合久久综合久久| 亚洲视频在线观看三级| 午夜日韩激情| 国产精品亚洲成人| 亚洲精品永久免费精品| 你懂的网址国产 欧美| 欧美在线观看日本一区| 午夜日韩视频| 欧美aa国产视频| 91久久久亚洲精品| 久久精品网址| 午夜精品美女久久久久av福利| 日韩视频欧美视频| 一本久久综合亚洲鲁鲁| 国产一区 二区 三区一级| 亚洲日本成人在线观看| 国产精品一区二区女厕厕| 国产情人综合久久777777| 免费亚洲婷婷| 国产色综合久久| 久久人人九九| 蜜臀久久久99精品久久久久久| 午夜在线观看欧美| 欧美激情中文字幕乱码免费| 永久免费视频成人| 欧美色综合天天久久综合精品| 国产一区视频观看| 国产精品久久国产精麻豆99网站| 久久精品中文字幕一区| 欧美在线亚洲综合一区| 先锋影院在线亚洲| 精品88久久久久88久久久| 欧美日韩三级一区二区| 亚洲欧美日韩一区二区在线| 久久国产主播| 国产精品v欧美精品v日韩精品| 9色porny自拍视频一区二区| 亚洲成人在线视频播放| 女生裸体视频一区二区三区| 永久免费视频成人| 国产精品亚洲产品| 亚洲一区精品在线| 欧美激情2020午夜免费观看| 久久日韩精品| 在线日韩欧美| 亚洲国产另类精品专区| 亚洲欧美区自拍先锋| 久久精品国产99精品国产亚洲性色| 99riav国产精品| 国产精品播放| 久久久久久久综合色一本| 一区二区在线视频播放| 欧美视频中文字幕| 国产精品国产福利国产秒拍| 久久久久久久激情视频| 蜜月aⅴ免费一区二区三区| 国产精品v欧美精品∨日韩| 国产欧美日韩综合一区在线观看| 好看的日韩视频| 亚洲毛片在线观看| 亚洲女女做受ⅹxx高潮| 欧美乱妇高清无乱码| 欧美中文字幕第一页| 国产精品日韩久久久| 狠狠色狠狠色综合| 国产精品一二三视频| 久久精品视频免费观看| 一区二区三区 在线观看视| 国产精品腿扒开做爽爽爽挤奶网站| 国产主播一区二区三区四区| 欧美另类亚洲| 1024国产精品| 亚洲五月婷婷| 国产亚洲日本欧美韩国| 亚洲激情专区| 99成人在线| 久久一区二区三区国产精品| 国产伦精品一区二区三区在线观看| 韩日精品在线| 欧美一区91| 一区二区三区视频观看| 亚洲激情成人网| 在线欧美视频| 亚洲日本乱码在线观看| 国产亚洲福利一区| 1024成人网色www| 亚洲日本成人女熟在线观看| 99在线热播精品免费99热| 国产亚洲观看| 午夜精品网站| 先锋影院在线亚洲| 99热精品在线观看| 久久美女艺术照精彩视频福利播放| 欧美精品一区二区三区视频| 欧美日韩一区二区视频在线观看| 久久亚洲综合色| 欧美日韩不卡视频| 国产日本欧美一区二区三区在线| 国内精品久久久久国产盗摄免费观看完整版| 欧美日韩午夜在线| 篠田优中文在线播放第一区| 国产日产高清欧美一区二区三区| 久久久综合网站| 欧美日韩在线播放一区| 欧美美女视频| 欧美激情欧美激情在线五月| 亚洲精品乱码久久久久| 亚洲午夜精品久久| 国产精品久久久久久影院8一贰佰| 国产精品久久久久久久久久久久久| 久久久久久网| 亚洲国产一区在线观看| 欧美日本在线视频| 亚洲影院色无极综合| 欧美一区二区网站| 国产精品va在线| 国产日韩精品视频一区二区三区| 亚洲激情视频网站| 久久岛国电影| 欧美激情1区2区3区| 中文精品一区二区三区| 亚洲曰本av电影| 久久久久一本一区二区青青蜜月| 中文精品一区二区三区| 亚洲人成网站在线观看播放| 国产亚洲精品bt天堂精选| 欧美国产一区视频在线观看| 国产精品视频免费一区| 欧美激情视频网站| 蘑菇福利视频一区播放| 日韩小视频在线观看| 国内精品久久久久久久影视蜜臀| 亚洲网站在线观看| 欧美日韩精品一区二区三区四区| 在线欧美视频| 欧美三区在线观看| 在线播放日韩| 一区二区视频免费完整版观看| 国产精品高潮呻吟久久av无限| 欧美成人精精品一区二区频| 国内精品伊人久久久久av一坑| 欧美伦理在线观看| 亚洲三级国产| 一区二区三区导航| 国一区二区在线观看| 伊人婷婷欧美激情| 欧美日本在线一区| 久久午夜av| 亚洲福利在线看| 欧美三日本三级三级在线播放| 亚洲精选国产| av成人老司机| 一区二区三区在线视频播放| 免费不卡视频| 最新国产成人av网站网址麻豆| 亚洲免费在线电影| 久久精品2019中文字幕| 国产日韩欧美一区二区三区在线观看| 在线日韩成人| 久久一二三区| 国产专区欧美专区| 国产精品久久久久999| 免播放器亚洲一区| 国产精品一二三视频| 99re6这里只有精品视频在线观看| 国产精品久久久久久久久久三级| 久久久综合视频| 影音先锋成人资源站| 欧美日韩一区在线| 国内精品久久久久久| 亚洲精品网站在线播放gif| 欧美日韩午夜精品| 久久久久国色av免费观看性色| 国产精品永久免费视频| 欧美日韩亚洲一区二区三区| 亚洲国产精品va在线看黑人动漫| 久久精品2019中文字幕| 欧美福利视频| 国产一区二区按摩在线观看| 一区二区三区.www| 国产精品国产三级国产aⅴ浪潮| 亚洲精品男同| 国产精品网站在线观看| 136国产福利精品导航| 欧美精品日韩| 久久一区激情| 伊人久久综合| 亚洲国产高清自拍| 国产精品日韩在线一区| 美日韩精品免费| 国产精品毛片大码女人| 久久亚洲色图| 亚洲国产欧美另类丝袜| 国产精品对白刺激久久久| 在线观看视频欧美| 亚洲一区二区三区高清不卡| 欧美激情网友自拍| 欧美日韩国产在线播放网站| 欧美一区二区三区视频在线| 欧美一区二区三区在线观看| 久久久精品动漫| 亚洲精品人人| 国产区精品视频| 国产欧美日韩精品在线| 亚洲综合日韩中文字幕v在线| 久久人人97超碰国产公开结果| 欧美成人黑人xx视频免费观看| 韩国成人精品a∨在线观看| 欧美在线视频二区| 美女啪啪无遮挡免费久久网站| 国产精品国色综合久久| 激情欧美一区二区|