Flash vs HTML5网页游戏开发移动

Flash vs HTML5 game development for web & mobile

本文关键字:开发 移动 游戏 网页 vs HTML5 Flash      更新时间:2023-09-26

我是一名经验丰富的AS3程序员,我在浏览器和移动设备上(通过Adobe AIR,例如Android)做过Flash应用和游戏。

我即将开始开发一款带有像素图像的基本2D平台游戏。想想《超级马里奥世界》(Super Mario World),它同时面向网页和手机平台。因此,我正在寻找易于部署到这两种平台,具有基本相同的源代码。

我在开发这款游戏时选择了ActionScript 3.0 (Flash)还是HTML5/JavaScript。

我的主要问题是,对于那些经历过同样情况的人:

最安全的方法是什么?

换句话说,这些框架是否存在严重的缺点,即不允许我开发多平台2D游戏?

或者我只是在做梦,实际的多平台(网页和手机)游戏开发是不可能的?(有人知道Rovio是如何开发《愤怒的小鸟》的吗?)


以下是我已经知道的一些优点和缺点:

AS3/Flash的优点:

  • 网页游戏的现状

  • 我有经验

  • (几乎)隐藏源代码

  • 在web上,它是独立于浏览器的

  • 可以通过Adobe AIR在iOS和Android上作为"本地"应用运行。这不是最好的表演体验,但我知道你可以得到可玩的表演。

AS3/Flash的缺点:

  • 手机上的AIR性能不是最佳的,所以我可能最终不得不放弃一个非常酷但昂贵的功能(甚至几个功能)。

  • 大家都说HTML5/Javascript会取代它

HTML5/Javascript的优点:
  • 可以使用像ImpactJS或Akihabara这样的引擎制作flash质量的游戏。

  • 似乎更稳定,并在未来的移动设备上得到很好的支持。

  • 可以通过PhoneGap, appMobi等部署为本机应用

HTML5/Javascript的缺点:

  • 源代码是完全公开的。

  • 性能/行为取决于浏览器。

  • 缺乏可靠的框架或引擎,没有co$t$。

我决定忘记跨平台游戏开发的HTML5,特别是手机游戏的部署。

我所指出的Flash的缺点比HTML5的缺点要轻得多。基本上,对于像素游戏来说,手机上的Flash表现得非常好,特别是如果使用像Flixel这样的优秀引擎。

例如,Flixel游戏Robo Run在Android和浏览器中的Flash Player中都具有出色的性能。我没有同样的游戏在iOS上的例子,但我相信它会表现得和Android一样好。

另外,Flash在移动设备上的性能应该不会成为一个日益严重的问题,因为这些设备的硬件会变得越来越好。

在思考HTML5和Flash的问题几个月后,我认为HTML5的跨浏览器兼容性是没有意义的,因为Flash已经被证明是2D游戏的一种Java。

我认为你已经非常有效地概述了利弊。如果跨平台和移动web开发是你的首要任务,Flash是一个不错的选择。您将拥有您已经确定的所有缺点。

如果你使用javascript/HTML,比如impact引擎,你就会遇到不同的问题,而且在web端兼容性要差得多。

然而,如果你的游戏是最好的,你将需要寻找其他地方,因为就目前而言,没有代码一次发布到任何地方的解决方案。

Unity 3D具有良好的3D和2d移动功能。你可能也很喜欢苹果升降器。http://www.appcelerator.com/

但归根结底,没有什么比为不同平台制作不同版本更重要的了。在性能方面,是最适合的设备。一定要评估你所选择的解决方案是否能让你的应用盈利。你可能会建立多个版本,只是为了适应不同的收入模式和广告服务能力。

===更新===2012年3月,Adobe更新了iOS和Android的flash,包括对OpenGL图形的支持,3D和2D图形现在可以使用flash作为iOS和Android的单一代码基础。速度很好,你也可以将同样的游戏植入网页。这是一个很棒的工具。flash的一个缺点是,它依赖于"扩展"来连接本地操作系统功能,如android上的intent或iOS上的Game Center。如果您计划广泛使用本机功能,请注意这是否会成为开发的障碍。

正如ScanPlayGames所说,html5声音是个大问题。不过也有一些简洁的WebGL端口。Impact的多米尼克做了一些很棒的事情。他有最好的框架。

Rovio使用Google Web Toolkit为chrome商店做了一个移植。

我为AppMobi工作。我们有一个名为DirectCanvas的iOS工具(Android也即将推出),它可以提高游戏在webview中的表现。我们的一个合作伙伴正在开发一款带有《愤怒的小鸟》概念的游戏(物体a被推动去摧毁其他物体)。所以Box2d的支持是存在的(这是阻碍我们发行游戏的主要因素)。表现非常棒,一般人都不知道这是一个webview游戏。

相信我,你不会浪费时间先在手机上开发桌面游戏。我们已经有所准备了。

我也是一名Flash游戏开发者,我对如何迁移到HTML5做了一些研究。如果你来自Flash/ActionScript3领域,你会遇到很多障碍。其中之一就是JavaScript本身——我知道很多人喜欢JavaScript,但如果你习惯了AS3,那就很难了。另一个问题是声音问题(如上所述)。最重要的是,我不想从头开始,我想使用我的技能,甚至从过去迁移代码。

长话短说,我最终使用了谷歌的新编程语言Dart。该语言编译成JavaScript,因此可以在所有现代浏览器上运行。最重要的是Dart与ActiontScript3非常相似!然后我做了一个开源库,它提供了游戏所需的所有Flash API (the Display List, bitmap, Sounds,…)——我试图让这个库尽可能与Flash API兼容,以简化移植游戏源代码的过程。最后,它是相当容易的,因为你只需要改变一些东西。

我迁移的游戏:ActionScript到Dart的比较:其他一些示例和源代码链接:

我认为Javascript的一个很大的缺点是它不能检测图片的透明区域,因此当鼠标悬停或点击它时它可以停止反应。自从HTML5发布以来,有什么新的解决方案诞生了吗?

我曾与一些人合作过,他们制作了一个非常密集的HTML5图像应用程序,我记得最糟糕的事情是做声音…每个浏览器的设计都不一样。去寻找一些开源的html5游戏框架,在那里人们已经完成了跨浏览器测试的繁重工作。我觉得有一些很不错。您不想成为跨环境进行qa的人。