Flash vs HTML5网页游戏开发移动
Flash vs HTML5 game development for web & mobile
我是一名经验丰富的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会取代它
可以使用像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的人。
- 开发离线MathJax Android移动应用程序
- GWT开发模式或移动设备上的超级开发模式
- 相位器游戏开发 - 菜单中箭头移动太快
- 是否可以使用构造 2 为移动设备开发多平台游戏
- 如何通过移动 Web 开发有效利用资源
- 轻量级UI框架,用于基于JS/HTML5 Webkit的移动开发,具有不错的列表性能
- 用于移动开发的性能最佳的JavaScriptMVC框架
- CreateJS可以用于移动应用程序开发吗
- 在开发移动web应用程序时测量内存使用情况
- Jquery移动web应用程序开发(需要帮助)
- 您使用哪个移动设备模拟器来测试移动开发
- 基于html5的移动开发的最佳框架是什么?
- Node.js和Socket.IO从本地开发服务器移动到活动服务器,而不是连接
- Flash vs HTML5网页游戏开发移动
- 流星移动开发
- 为移动开发准备远程加载的SQLite数据库
- 在phonegap(多平台移动开发)中使用服务器端html+js
- 如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前
- 将WCF REST服务添加到使用HTML5,Javascript,CSS开发的移动应用程序中
- 我应该使用哪个移动应用程序开发框架