基于Web的游戏引擎-征求意见

13

我正在创建一个基于Web的在线游戏,试图找到最适合游戏前端的框架。游戏后端目前正在使用asp.net mvc 2。鉴于我可以将控制器操作转换为WCF服务操作,因此后端的选择不应影响我的前端选项。

有一件事是确定的,它需要在浏览器中运行。作为这个过程的一部分,我已经对仅限HTML5的前端进行了一些研究,可能倾向于这个方向,但我有一些担忧:

  1. 假设明年此时完成这款游戏,当前HTML5的采用率会遇到什么样的困难?具体来说,我担心Firefox 3.6和IE 7/8仍然有大量安装基础。我已经看过Chrome Frame以解决IE问题,但我也不确定是否存在我不知道的缺点(除了安装要求)。

  2. 我习惯于使用带有即时信息的漂亮IDE进行C#编程,以及智能提示提醒符号名称。我会遇到Javascript问题吗,其中我的代码变得庞大且难以管理?对于用户而言,仅使用Javascript引擎解决的可访问性问题比方便更重要,但它当然也不能难以管理。

  3. 目前市场上的HTML5引擎是否已足够成熟,可以信任我的时间投资?我采用的框架是否面临在一年后放弃维护的高风险?在我查看过的引擎中,似乎没有一个具有真正良好的社区支持,我错了吗?还有其他更好的选择吗?

以下是我迄今为止发现的:

  • PropulsionJS (http://www.propulsionjs.com/)
  • The Render Engine (http://www.renderengine.com/demos.php)
  • RPG JS (http://rpgjs.com/)
  • EaselJS (http://easeljs.com/)
  • 有人对这些框架的社区情况了解吗? 他们中是否有任何一个能够得到很好的维护并在未来几年内持续提供服务? 还有其他的框架吗? ImpatJS 的演示是最令人印象深刻的,但它也是唯一一个需要付费的。

    感谢任何帮助/建议。 我只是担心会选择一个后悔的前端框架,而我不想必须从头开始4-5个月后。

    这是一个2D浏览器游戏。 目前它并不针对移动设备,但首次启动后将立即移植到移动平台。希望使用HTML 5可以保证其在移动设备上正常运行,如果需要调整显示大小,我可以进行调整,但如果不需要移植到移动设备上,那将是一个确定的优点。


    2
    这是一个非常广泛的问题...我不确定是否能够令人满意地回答。 - Alastair Pitts
    为什么不设计您的API,以便您可以切换框架并且需要更改的代码量很少?这是什么类型的游戏,2D、3D、第一人称射击、基于瓷砖的游戏?有许多不同类型的游戏,您越精确,答案就越好。 - James Black
    @James - 理论上听起来不错。问题通常在于,为了使游戏运行良好,您需要进行特定于平台的优化,这些优化会影响架构。 - rboarman
    你可以发布更多关于游戏类型和要求(3D、Twitch、移动等)的信息,这将有助于我们提供更好的帮助。 - rboarman
    @rboarman - 在JavaScript中,你的优化只能做到一定程度,因此如果你从一个良好的API开始,允许切换框架,然后确定哪个框架真正满足你的需求,然后标准化它,这样你就可以将重新编写适配器对象的工作限制在最小范围内。一旦你标准化了一个框架,那么再进行优化。 - James Black
    7个回答

    4

    我刚为我的公司经历了同样的决策过程,以下是我个人观点。

    我们的目标是创建一个尽可能广泛的游戏,这意味着它需要在尽可能多的浏览器上运行。我立即排除了html5,因为采用情况并不普遍,似乎至少还需要几年时间才能达到60%以上的渗透率。

    这使我面临Flash和Silverlight两个选择。Flash的已安装基数庞大,而且有许多可用于其上的游戏引擎。除非您对视频或3D有特殊要求,否则Flash是一个很好的选择。

    我选择Silverlight是因为我想要一个良好的已安装基数(60%),并且我想利用公司内部的.Net专业知识。我还想使用WCF作为后端,并且不想混合使用不同的环境。

    请记住,SL5将支持大部分XNA,这是一件大事。有很多可以用来开始的XNA引擎和源代码。

    以下是一个查看html5浏览器支持情况的好网站:

    http://caniuse.com/


    你对今天的情况有什么看法?谢谢。 - johnny
    1
    Html5一路走来... :) - rboarman

    1

    我对HTML5和Canvas的细节不太熟悉,但是...

    关于支持方面,你还会遇到许多IE7-8用户。IE与其他浏览器有所不同,因为你必须采取一些措施来安装更新。(例如,在“控制面板”中安装更新或访问ie.microsoft.com)。其他浏览器(如Firefox)只需告诉你并简化更新过程。因此,你的FF 3.6用户应该已经消失了,但IE仍然可能是一个问题。但要记住,旧版IE浏览器的大部分份额归因于IT部门保留其用户使用旧版本 - 这是你无需担心的事情。
    这可能是个问题。但是,在Visual Studio或类似IDE中开发JS并不那么糟糕-仍然有IntelliSense和其他有用的工具,以及实时调试功能。与C#相比,这肯定会更加困难,特别是许多新的JS API尚未实现到许多IDE的自动完成中。
    我认为你不需要担心这个问题。在此时,HTML5和Canvas已经足够成熟,不会被取消,只会得到改进。API和其他方面可能会有一些修改,但不足以阻止你使用它们。

    @rboarman 实际上,它确实可以。在IE9中,这很好地运作:http://ie.microsoft.com/testdrive/Graphics/CanvasPinball/Default.html 另外,请参见此处:http://msdn.microsoft.com/en-us/ie/ff468705.aspx#_HTML5_canvas - Thomas Shields
    太好了!我弄错了。 - rboarman

    1

    HTML5会取代Flash吗?不会,因为需要更多JavaScript的游戏和RIA在全球使用IE 15(大约5到10年)之前无法完成。Safari、Chrome、FF(也许)很快就会达到这个水平,但它们的js引擎将需要良好的硬件支持,而这并不总是可行的。

    Silverlight是一个不错的选择,但它的支持程度不如Flash。这就是为什么Flash仍然存在的原因。下一个版本将支持视频控制器。它被称为Project Mole hill,你可以在我的SO问题这里中查看。

    如果你想制作没有好图形的超级简单的游戏,请尝试其中一个你提出的服务。impact.js售价100美元,其他看起来是免费的。在未来,我们将能够使用node.js处理服务器请求,但在此期间,Flash肯定是最好的选择!

    我非常非常非常想使用JavaScript,但是当你开始编码并意识到与Flash相比的限制时,Flash将使你的应用程序脱颖而出。

    对于移动设备,如iPad、iPhone、Android等,如果你真的认为你的受众在那里,就用他们的语言构建游戏。这样做更昂贵、更困难,但Objective C、Java比HTML、JS、CSS等更快。


    2
    我知道你的回答可能是两年前的,但我刚看到它,读起来真的很有趣。现在JavaScript正在完全取代Flash,用JavaScript制作的游戏与Flash游戏一样复杂,甚至更加复杂。 - user1372494

    1
    1. 确实,您将失去大量用户。但是这些用户对您的相关性取决于您的目标是什么。每天玩RPG游戏的玩家比周日早晨数独玩家更有可能拥有最新的浏览器。

    2. 试试Eclipse + Web Tools + Aptana。我用起来非常好。

    3. 没有经验。


    1

    我用YUI3、Burst引擎和Raphael进行了一些试验,用于SVG动画 - 一切似乎都运行良好;甚至YUI的拖放模块在移动设备上也能检测到相同的拖放操作,而无需添加任何代码。

    我只能想象,如果我有时间,在Node.js服务器上使用YUI3实例和Raphael SVG动画将是我的选择。您可以放弃SVG方面,使用更标准的图形技术,或者为那些具有较少测试功能的用户代理提供替代品质的图形。也许您的替代品质版本只是游戏引擎的另一种实现方式 - 而且您可能选择使用非SVG来开发游戏。

    这只是一些想法,对于您的实时IDE调试并没有帮助...


    1

    impact.js拥有一个伟大的社区文档。它非常值得一试。我相信iosimpact.js是该软件包的一部分(尽管是beta版本???),允许开发原生的iPhone/iPad游戏。


    我大约8个月前购买了Impact,并且已经深入研究了这个框架,可以担保,它是一个好的框架。 - omatase

    0

    肯定有人认为HTML5将取代在线游戏中的Flash。这是一个基于HTML/Javascript的引擎,我几天前听说过。

    http://www.youtube.com/watch?v=_RRnyChxijA

    我实际上没有使用过它,但它看起来非常有前途,并且它是为您提出的类似要求而设计的。它可以让您设计2D / 2.5D(等距投影)游戏。它看起来很有前途。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接