文档章节

WebRTC在多姿多彩的游戏领域,是否还有一席之地呢?

肉伯特
 肉伯特
发布于 2015/11/13 11:11
字数 2008
阅读 82
收藏 0

引子

     最近,肉伯特君啃了一些资料,在一些游戏案例中找到了WebRTC应用的影子。

        回想当年,WebRTC首度现身之时,每个人都无比兴奋,可谓无不奔走相告、喜大普奔。几乎每个程序猿和开发者都跃跃欲试、摩拳擦掌,恨不得在一些垂直领域中找出WebRTC技术的最终表现形式。

        终于,肉伯特君发现,在某一个神奇的垂直领域,总是以“昙花一现”的方式应用了WebRTC,但是始终无法长久地维持下去,这个垂直领域就是游戏


1      社交游戏

       还记得Cube Slam吗?这是谷歌关于WebRTC的首个Demo啦,在这里你和某个人玩一个游戏的同时,还能看见在另一头的他。


        那也仅仅只是一个demo而已啦。


       Jocly游戏是我见过的最佳案例。在你的对手作为游戏的一个玩家在其他地方时,Jocly游戏能够支持一种轮流玩法桌游模式。如果你希冀,你可以通过WebRTC的帮助在游戏过程中看到双方。


        图为Jocly游戏:WebGL (一种3D绘图标准)设备(支持Chrome,火狐等)的3D临境桌游游戏界面;支持在线/离线状态下,和朋友或者计算机对决的一种轮流模式的游戏



      图为Jocly游戏:支持所有浏览器、移动设备,具有友好交互(采用纯Web技术、视频聊天#WebRTC、HTML5/WebGL)



         图为Jocly游戏:针对开发者和Web大师,通过导入Jocly的API,可以创建/嵌入你的个性化游戏



                 图为Jocly游戏的支持玩法



   Roll20作为一种多玩家的角色扮演(RPG)游戏也正在类似的实时通信方面作文章。



2    运动传感游戏

       老实讲,我还没有看到过任何能将WebRTC技术运用得如鱼得水的运动传感游戏。

 

       一旦某个游戏应用了WebRTC技术,也就是说,这个游戏的应用程序通过获取摄像头来捕捉到玩家的各种动作。一旦游戏的应用程序可以捕捉到玩家的动作了——游戏的程序系统就可以应用WebRTC来控制一些事情了。

 

       来,发挥你的奇思妙想吧,贪吃蛇的游戏是不是也能做成这样呢?


3    多人游戏

 

       多人游戏要求在玩家之间的响应时间同步连接性越好,在游戏中的响应将会越棒。而这个连接通道中尚有一些技术无法达到,因而会造成延迟,此时,就将是WebRTC data channel大放异彩之地了。

 

       大约两年半前,Mozilla发布了各种可行性报告(证明这些产品和技术在财务运行上是可行的并且健康的)。包括针对于data channel的WebRTC demo。其中有一个游戏叫做BananaBread(香蕉面包)。这是一个第一人称射击游戏,玩家可以通过data channel对他们所处的位置和采取的行动直接与其他玩家进行沟通。

 

       我又翻阅了一些有关多人游戏在HTML5方面发展的书籍。WebRTC在这方面的应用真的是少得可怜,书中就提到了一些功能点。

 

        放眼望去,我是真没看到很多在多人游戏方面应用WebRTC的案例。假设,这可能是因为落实WebRTC技术的相关方面的复杂性所致,也可能是要处理一些复杂的情况,比如一些玩家无法调用data channel而不得不将游戏过程中的数据交付给通过TURN服务器的渠道。


4   关于控制和展示的游戏

 

       至今,我还没看到过应用WebRTC技术的这类游戏出现过。但神奇的是,我却在同一个月中看到过这样的实例不下几次了。

 

       AirConsole应用了这项技术。从某种意义上说,爱立信的远程Excavation demo也是采用了相同的技术。

 

        这个应用的具体理念是一台设备可以控制另一台设备。在一些案例中,一个游戏控制杆(台)和一台PC机/或是一个console理所当然地可以在浏览器上运行游戏。一旦两组人集结起来之后,通过调用WebRTC data channel,在从控制器项设备传输命令过程中产生的延迟将被缩减至最小。

 

      4个不同的典型应用案例。没有一个是应用在任何一款爆款的游戏中。目前,貌似也没有人思索过在游戏开发上的WebRTC的“最佳体验”亦或是一些常规的解决方案哎,嗯,目前的情况是这样的。

 

      还有没有更多的应用WebRTC技术的游戏了?

 

      还有没有一些肉伯特君尚未关注到的,正在大刀阔斧发展的商业化游戏了?


 

      最后,肉伯特君,不禁要问,在这些游戏中为什么没有一个是在WebRTC应用领域能赶上趟的呢?

 


~接下来,肉伯特君对本期提到的两个游戏进行科普~

 

第一人称射击游戏(FPS)


第一人称射击游戏(FPS):第一人称射击游戏(First-Person Shooter)与即时战略的结合首见于1997年发行的(起义)/(旭日东升)(Uprising)(玩家在游戏中不仅要操作坦克,还必须建设基地并对部队下命令)另外相似的游戏还有1998年发行的(终极战区))


何为 Roll20?

       Roll20:在线视频桌面游戏平台是一个基于虚拟桌面游戏和提供视频、语音聊天的虚拟桌面游戏平台,由网页开发员Riley Dutton及其同事构建的桌面游戏平台。该网站除文字和语音视频聊天功能以外还有内置指令可以用于完成掷骰等动作。除此之外还带有背景音乐,地图和指示物功能。

 

        Roll20游戏是基于HTML5技术开发可以完美运行于浏览器上使用,无需安装任何工具和插件,简单易操作的可控界面,只需一个链接即可邀请你的好友共同游戏,该虚拟游戏试图强大讲故事的游戏模式,通过文字、视频聊天、背景音乐、实时图形桌面的方式来增强人与人之间的游戏互动。

 

       Roll20的初步开发的经费通过Kickstarter众筹平台筹集资金,因此会用户免费开放使用,不收取任何费用,Roll20支持各种操作系统和浏览器,官方称如果你想要获取最佳的用户体验就需要使用Firefox或者Chrome浏览器了。

 

       国内的网页游戏都是通过鼠标和键盘来完成操作的,目前似乎还没有这类支持文字、视频、语音的虚拟桌面游戏,如果有公司去开发此类互动性比较强的虚拟桌面游戏的话,对于国内的游戏玩家来说也是一个不错的选择,比单调的页游有趣的多。


———————————————

   敢问各位大虾,本期肉伯特君为各位提供的实时通信小酒还满意否?抚摸一下,肉伯特君需要你的关怀。

    

© 著作权归作者所有

肉伯特
粉丝 1
博文 2
码字总数 4087
作品 0
黄浦
项目经理
私信 提问
Mozilla 停止对 Firefox Hello 的支持(采访)

Mozilla停止支持Firefox Hello,并将其从旗下主流浏览器中移除。 InfoQ采访了Firefox的副总裁Nick Nguyen有关公司停止在其浏览器中支持WebRTC这一决定的相关内容。 InfoQ: Nick,是否可以向不...

局长
2016/09/25
2K
5
学习多媒体开发的正确姿势?陈功:看书 啃代码 搞插件

陈功说,要想学好多媒体开发,首先需要兴趣,接下来还需要好的方法。LiveVideoStack邮件采访了声网Agora首席WebRTC架构师,畅聊了自己的成长经历,WebRTC的演进趋势等。陈功表示,WebRTC的未...

vn9plgzvnps1522s82g
2018/04/13
0
0
WebRTCon 2018 Day One精彩回顾

第一天的WebRTCon 2018有哪些高光时刻?更多精彩瞬间,演讲资料和视频将会逐步整理并在LiveVideoStack公众号发布。 5月20日,由LiveVideoStack音视频技术社区出品的WebRTCon 2018进入第二天。...

livevideostack
2018/05/20
0
0
WebRTC技术大会将于5月19日在上海举行

一场WebRTC技术大会即将在上海上演,这是一次面向全球的WebRTC技术的技术实践和应用案例的梳理与展示,预计将有超过250名的多媒体开发工程师、技术负责人、产品负责人及高端行业用户出席本次...

LiveVideoStack
2018/05/02
0
0
黄开宁:搞多媒体开发要掌握好信号处理、统计和数理分析

尽管有WebRTC和FFmpeg这样的超级工具,但多媒体开发的核心难点的难度并没有因此降低,这需要开发者掌握牢固的基础知识。LiveVideoStack专访了即构科技音视频技术资深架构师黄开宁,他对学习多...

livevideostack
2018/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

链表中环的入口节点

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: public ListNode EntryNodeOfLoop(ListNode pHead) { if (pHead == null || pHead.next == null) ...

Garphy
9分钟前
2
0
Spring5 源码分析-容器刷新-invokeBeanFactoryPostProcessors()方法

上一篇:Spring5 源码分析-容器刷新-prepareBeanFactory()方法 该方法主要完成以下功能: 1.实例化ConfigurationClassPostProcessor,并调用ConfigurationClassPostProcessor.postProcessBe...

特拉仔
9分钟前
3
0
为什么MySQL用B+树做索引

索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。...

小致Daddy
34分钟前
4
0
网站前台的三级联动数据封装

我在进行项目时候遇到了一个进行数据封装的一个功能,进行数据的封装的功能也挺复杂,来回试了好几十种方法.最后使用的是这种方法. 使用一个pojo进行封装两个数据,一个是list一个是实体类. 具体...

小天丶羽
37分钟前
4
0
创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA的SPI FLASH、硬件加密芯片

TL437xF-EVM是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA设计的开发板,底板采用沉金无铅工艺的4层板设计,尺寸为240mm*130mm,它为用户提供了SOM-TL437xF核心板的测...

Tronlong创龙
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部