基于浏览器的MMO(WebGL,WebSocket)


29

您认为使用浏览器JavaScript(用于图形的WebGL和用于网络的WebSocket)编写成熟的3D MMO客户端在技术上是否可行?

  • 您是否认为将来的MMO(以及一般游戏)将使用WebGL编写?
  • 当今的JavaScript性能是否可以做到这一点?
  • 假设您的开发团队是您作为开发人员,并且是另一个模型创建者(艺术家)。您将使用诸如SceneJS之类的库进行游戏,还是直接编写WebGL?如果要使用库而不是SceneJS,请指定哪个。

更新(2012年9月): RuneScape是一种非常流行的基于3D浏览器的MMORPG,迄今为止已使用Java Applets宣布已将HTML5用作其客户端()。

Runescape HTML5

Java(左)和HTML5(右)

更新(2013年6月):我编写了基于WebGL / WebSocket的MMO的原型:https : //github.com/alongubkin/xylose


3
Mozilla Firefox和Opera出于安全原因刚刚放弃了websocket支持:heise.de/security/meldung / ... 有关网络内容的跨浏览器抽象,请参阅gamedev.stackexchange.com/q/6524/450
亨德里克·布鲁默曼

2
我认为所有这三个问题都很有趣,但我宁愿将它们分为三个问题。在我看来,它们几乎没有关系。

2
从技术上讲,这是可能的。现实是另一回事。
共产党鸭子

附带说明:Google在WebGL上制作了一个非常酷的JavaScript库:code.google.com/p/o3d
Alex Beardsley

我的假设是您的问题隐含着3D MMO。3D并不是这种类型的要求,事实上,许多MMO在网络上已经存在多年了,而HTML形式却不多(请参见urbandead.com),更不用说Gameforge(en.gameforge.com)或更奇特的AJAX / Javascript之类的东西,例如Ultima勋爵(lordofultima.com
wkerslake 2011年

Answers:


7

您认为使用浏览器JavaScript(用于图形的WebGL和用于网络的WebSocket)编写成熟的3D MMO客户端在技术上是否可行?

是的,一点没错。WebGL或WebSocket技术没有理由阻止您制作3D MMOG客户端或任何游戏客户端。

您是否认为WebGL会破坏未来的MMO(以及游戏)?

是。我相信在未来五年内,大多数3D浏览器游戏都将使用WebGL编写。原因很简单-WebGL是唯一的标准化3D技术,将在每个主要的网络浏览器(Chrome 9,Firefox 4,Safari 6和通过Chrome浏览器内嵌框架的Internet Explorer)中提供实现。

当今的JavaScript性能是否可以做到这一点?

是。现代浏览器中的JavaScript性能已经提高到可以进行3D游戏开发的程度。例如,请参见Three.js项目

假设您的开发团队是您作为开发人员,并且是另一个模型创建者(艺术家)。您将使用诸如SceneJS之类的库进行游戏,还是直接编写WebGL?如果要使用库而不是SceneJS,请指定哪个。谢谢!

使用图书馆可以节省时间。除非现有库缺少所需的功能,否则没有理由编写自己的WebGL图形代码。即使在这种情况下,扩展现有库可能也会更省时。

对于我的项目,我正在使用GLGE,因为它支持许多不同的图形效果,并且会不断用新的图形效果进行更新。


2
问题“您认为未来的MMO(以及一般而言的游戏)会因WebGL而变得混乱吗?” 答案是“是的。我相信在未来五年内,大多数3D浏览器游戏都将使用WebGL编写。” 彼此不是精确匹配...
Kylotan

5

已经有一些基于浏览器的MMO。他们通常不使用3D图形。

对于WebGL,我有点怀疑。当前的浏览器在其正常发行版中不支持WebGL。您必须获得特殊的构建或配置文件混乱,对于普通用户而言,这比下载插件要复杂得多。

说到插件:几个人提到了Unity,但不要忘记Flash。即将发布的Flash Player版本(代号molehill)将具有GPU加速的3D。我的猜测是,在WebGL起飞之前,闪光灯将在浏览器中提供硬件加速的3D图形。


1
具有webgl支持的稳定浏览器的问题不应在2010年1月左右后发生。Firefox 4和Chrome 9大约在那个时候发布。Chrome 9 Beta的安装非常简单,不需要搞乱任何东西就能启用webgl。Beta版的链接下面是chrome的常规下载链接。
Nicolas K. 2010年

@Nicolas K.-您的意思是2011年 1
DMan 2011年

1
@Nicolas K-浏览器的可用性和浏览器的安装基础是完全不同的东西。互联网流量的13%仍是IE6。来源:marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake

@DMan:可能吧,因为它已经出来了。我等不及了,直到有人弄清楚如何使用WebGL对蓝屏(或内核恐慌,或者Mac所做的一切)进行

1
@wkerslake:这些统计数据令人震惊。我维护了一个针对普通互联网用户的网站,每天有50万次独立访问,其中不到1%的用户使用Internet Explorer 6(约1/3的用户使用Internet Explorer 7/8/9)。Firefox和Chrome代表了50%的流量,并且它们是自我更新的浏览器,这意味着大多数人将在几个月内安装WebGL支持。由于开发游戏可能需要6个月的时间,因此我认为没有理由阻止人们使用WebGL。
Blixt

3

技术上可行吗?是。但是,当有像Unity这样的网络解决方案可用时,为什么还要打扰呢?

未来使用WebGL编写的MMO?可以,但是有些基于Web的插件(例如Unity)现在可以正常运行。

今天的JavaScript性能允许吗?不,是的,如果您保持游戏简单。

您将使用诸如SceneJS [...]之类的库还是直接编写WebGL?都不行 我会使用第三方应用程序,例如Unity。


4
您的答案是错误,矛盾和格式错误的。对不起,太苛刻了。如果您认为op应该使用团结,请在对他的问题的评论中这样说。
oberhamsi 2011年

具有讽刺意味的是,我的原始答案只是说“使用Unity”,但被告知我需要更直接地回答这个问题。
蒂姆·霍尔特

1
好吧,很公平 我认为统一是一种与尝试在浏览器中本地实现的野兽完全不同的野兽。当然,您可以使用插件执行任何操作,但是在我看来,问题是:本机浏览器技术的局限性是什么。
oberhamsi 2011年

2

目前(2011年初)这是不可行的。您无法使用本机浏览器技术(即没有插件)创建实时3D MMO。

我不会猜测未来。这就是现在的样子。假设您仅定位到现代浏览器(IE9,FF4等)。如果您打算支持IE7,那么您会发疯。那永远都行不通。

缺少的东西:

  • 完全控制键盘和鼠标(能够设置鼠标位置,按键拦截)
  • 全屏
  • 3D

存在严重问题的领域/解决方案:

  • WebSockets现在在少数支持它的浏览器中被停用
    • 没有它:现在低延迟,双向客户端-服务器通信
  • 音频问题
    • 编解码器混乱,您需要ogg和mp3
    • 不支持常见频率
    • 并发
    • 延迟
  • 画布性能(在某些情况下,进行div和CSS转换会更快)

1

是的,但有一些重大警告。

您将没有完整的键盘控制,而且对于许多控制怪胎来说,这可能是一个大问题。例如,F键可能会在相当长的一段时间内无法触及。

您也将无法使用大多数浏览器。WebGL尚未真正得到很好的支持,如今,Websocket支持屡见不鲜,一些浏览器供应商为一个版本启用了它,然后为下一个版本禁用了它。

但是,您可以放心,简单一些。投入一些引人入胜的游戏玩法,并且图形有点低调也没关系。Runescape最初非常简单,后来发展成为一个复杂,有趣,令人难以置信的流行MMO,当时每个人都说在浏览器插件中创建的MMO真是梦dream以求。

在浏览器足够支持“ AAA” MMO的时候,根据浏览器的当前限制而构建的MMO会随着情况的变化而适应。


1
几乎所有现代浏览器都支持功能键(quirksmode.org/js/keys.html#link6)。实际上,该页面至少已有几年历史,现代浏览器对它们的支持可能更好。
Ricket

1

绝对没错。

WebKit(Chrome / Safari)和Gecko(Firefox)的夜间版本均包含WebGL。WebSockets目前由于安全问题而被禁用,但是没有任何理由解决问题后就不应该重新启用它。同时,始终有HTTP。

所有的游戏都会这样写吗?不,但是会有很多。一旦将WebGL安装在Chrome和Firefox的最终版本中,其普及率将已经高于Unity等原生插件。

JavaScript的性能绝对取决于编写游戏。您可能会暂时看不到Crysis级别的图形,但是请记住,使用WebGL,数字运算已转移到GPU。

对于一个由2人组成的小型团队,您将需要准备进行很多编码,无论使用哪种引擎。当前还没有任何WebGL / JavaScript引擎真正涵盖大部分游戏代码。SceneJS,Three.js和类似的东西是图形层的包装器,但是对于构成虚幻引擎或Unity之类的大部分产品的碰撞,物理,音频,资源加载,网络或工具均不提供任何帮助。

目前尚处于起步阶段,我预计明年会出现更多中间件。


0

我认为未来的MMO不会使用任何客户端浏览器技术编写,因为大多数MMO开发人员都希望在客户端和服务器上使用相同的语言,并且大多数游戏开发人员都精通非Web语言,例如C ++。除了非常琐碎的模拟之外,涉及太多的客户端代码以使其在Javascript中变得非常实用。在浏览器中运行还带来了其他限制,这些限制对于典型的游戏开发人员来说是不利的。

我敢肯定,会有一些像这样的游戏。他们只是暂时不会接手《魔兽世界》或类似游戏。网络开发者进入游戏而不是游戏开发者进入网络可能会带来更多收益。


拒绝投票的人是否要添加评论,以说明他们如何不同意我的回答?就是想。:)
Kylotan

0

您应该问自己的问题是,为什么游戏开发者会希望依靠他们不掌握且无法控制的网络技术,当前的语言甚至可以使您在网络浏览器中制作出色的游戏?



-3

团结是好的。另请参阅Shiva和Prime Engine。


1
不过,Unity和Prime Engine与所提到的技术无关。它们是本机代码插件。
Kylotan

1
从我们说的意义上来说,它们是答案:“不,这样做不是一个好主意,但是这里有替代方法。” 回答说,说:“没有,但这里是一个另类”不只是“不”了很多,更优选
蒂姆·霍尔特

3
有时我会同意,但很少。当实际上原始问题本身完全合法时,就有可能试图读懂某人的想法并猜测他们“真正”想要做什么。如果有人问X的适用性,我们不应该总是回答“只使用Y”。至少应该对两者的适用性进行比较,这样我们才能更多地了解
X。– Kylotan 2010

我将改写我的答案,然后回答他有关要使用哪个库的问题。我会自己使用Unity“图书馆”:P
Tim Holt 2010年

最精彩的回答说基本上是相同的事情..
错误454
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.