2011-03-31 40 views
4

我不知道有没有人想过这个,但是像魔兽世界,Lineage II或者Aion这样的游戏在WebGL的浏览器前端是否可行?如果我想用这些新技术做一个完整的游戏,我将不得不考虑哪些事情?另外,什么是一个好地方开始?HTML5/WebGL上的MMO 3D游戏的可行性

+5

这似乎是对HTTP一个很好的问题://gamedev.stackexchange。 COM /。 – DuckMaestro 2011-03-31 00:29:02

回答

4

这可能太开放了,但我会采取刺。

首先,没有建模程序会输出你所期望的,据我所知,因为你需要输出javascript。

某些浏览器会使用硬件来加速图形,但这不是一个保证,你只能得到一点cpu,与其他选项卡共享,所以它可能不会像你喜欢的那样流畅。

如果您必须下载大量数据才能运行您的程序,这对用户来说是个问题。

我认为建模程序是真正的挑战,因为基本上你必须手工完成所有的事情,事实上它不会非常流畅将是一个问题,除非你为此设计。

但是,对于一些游戏设计,WebGL应该是一个很棒的选择。

+0

如果您可以找到一种方法来最大限度地减少运输大量(可能是演出)资源的成本,那么在浏览器中运行游戏应该可以正常工作。不过,游戏附带的支持文件往往会成为杀手锏。如果它很容易成为一个伟大的系统,那么WebGL绝对是一件很有趣的事情。 – ssube 2011-03-31 03:09:26

+0

@peachykeen - WebGL是一项梦幻般的技术,但想出一款适合它的游戏需要创造力。 – 2011-03-31 09:27:47

+0

好吧,HTML5支持缓存,但我不认为它是运行一个巨大的MMO所需的演出规模。虽然小游戏虽然! – tjameson 2011-04-08 10:07:12

2

我不相信这是可能的,如果你的游戏必须超越一些立方体heigtmaps。

  • 大量JS编码乘以浏览器怪癖。 (是的,我知道的jQuery,但它不是万能的)
  • 大量的资源挂在浏览器缓存中的微小螺纹
  • 准备,待黑客接触到了很多的浏览器工具,如萤火虫
  • 客户端代码

这样的游戏在Flash上​​更加逼真,特别是即将推出的11版硬件3D播放器。

+1

目前支持WebGL的浏览器很少,所以浏览器的怪癖问题不大。如果IE能够支持它,那么这将成为一个更大的问题。 – 2011-03-31 09:25:22

+0

呃,Chrome,FF 4和Safari都支持WebGL。那些是我书中的大玩家。基本上,唯一不是IE ... – tjameson 2011-04-08 10:03:22

+0

@tjameson - 最后我看到让Chrome浏览器使用WebGL不仅仅是运行程序,我将不得不传递一个参数来使用(所以我使用Chromium for测试)。我没有意识到Safari使用WebGL,但这很好。 – 2011-04-08 12:25:34

2

其实这是完全有可能的,我们将这样的游戏。

我们可以期待像O3D这样的图书馆来照顾浏览器的怪癖。我们已经在桌面平台上遇到了这些问题,图书馆在那里处理了多平台的可移植性问题。

浏览器缓存可能是一个小问题,但不是一个大问题。有可能为游戏分配更多缓存,并且我们也有像squid这样的代理服务器可以缓存非常大的资源。如果局域网上的一组玩家共享一个代理服务器,他们也将共享大型资源对象,如果游戏设计得很好的话(即资源不能有多个生成的名字,但是所有玩家都有一个共同的URL。)

也有关于为Web应用程序添加本地存储可能性的讨论。 “准备被黑客入侵”不是市长问题。没有什么能够阻止黑客操纵Flash或C++应用程序,反作弊工具已经变得毫无用处。暴雪已经依靠发现“机器人般的行为”而不是尝试更多的反黑客措施。

但是,我不认为魔兽将会成为第一款基于Flash的游戏。事实上,它会是Quake(http://playwebgl.com/games/quake-2-webgl/),因为已经有WebGL的Quake端口了......将会有使用WebGL的网页游戏,但是不指望暴雪在不久的将来支持它。

IE是唯一不支持WebGL的浏览器,说实话无所谓。所有其他浏览器都可以,用户不会介意运行Chrome或Firefox。或者同时运行并选择速度更快的游戏。

谁在乎边缘化的浏览器,如IE和Opera。它们同样不重要。除非你指望IE6永远不会支持我们正在讨论的任何东西,因为它已停产并且不受支持。

-1

“如果您能找到一种方法来最大限度地减少运输大量(可能是演出)资源的成本” 实际上http已经具有运输静态资源演出的最低成本。凭借其原生资源分配方案,URL,它具有最终的缓存功能。浏览器不仅知道如何通过URL来缓存静态资源,而且存在能够处理terrabyte数据的快速高效的代理服务器。

这是HTTP HEAD requeset的主要秘诀,代理服务器的浏览器可以有效地检查它是否具有最新版本的资源并重新同步它。也可以通过HTTP头将资源标记为永久或非常长寿(不可变)。那么重新同步化将不可能,相反,更新将通过用新名称创建新资源来完成。

有一个神话,即HTTP作为资源传输系统效率低下,事实上它被设计为非常有效。

与基于HTTP的客户端相比,使用专有协议的WoW和其他客户端的效率非常低。这些客户端无法使用代理服务器加速。 Windows更新,Apt和Yum的共同之处在于他们使用HTTP更新操作系统资源,并且能够利用Akamai广泛的全球代理服务器网络以及其他类似资源,以便以每GB数千兆字节客户。

1

对于缓存本地文件,您应该查看现在在Chrome中的文件系统API。这使您可以通过程序访问虚拟文件系统,从而可以控制本地存储的资源。

应用程序缓存可以帮助您使用游戏所需的HTML,CSS和JavaScript等静态资源。但是,您需要以“已安装的网络应用程序”(例如,通过Chrome网上应用店)的形式运行以获得无限存储空间。浏览器正在构建配额管理系统,以帮助简化这一过程。

WebGL是伟大的,图书馆正在出现,以帮助更容易。没有明确的“胜利者”,但有很多选择。

现在JavaScript非常快,这要归功于像CrankShaft这样的改进。为了获得更好的性能,您可以使用Native Client运行您的C/C++代码并将消息来回发送到JavaScript。

我可以看到两个大问题。一个是帮助中间件公司将他们的工作移植到JavaScript或Native Client。第二个是提高我们可以将数据从JavaScript移动到WebGL的速度。

1

在RuneScape的播放次数最多的网页游戏多年的一个重写他们的引擎与WebGL的......(他们目前使用的Java小应用程序)