`
szas26szas
  • 浏览: 13293 次
社区版块
存档分类
最新评论

[转]使用Flash、HTML和Unity开发网页游戏的现实比较

 
阅读更多

[转]使用Flash、HTML和Unity开发网页游戏的现实比较
2011年11月14日
  赵客点评:
  “事实上,因为每个从桌面链接到互联网的玩家都可能会玩你的游戏,游戏的播放数量是惊人的。你会看到一个正常的flash游戏一般一年的播放次数在 200-300万左右,优秀的游戏比这牛逼的多。”
  无法想像用户会为每个Flash游戏安装一个本地应用。而放弃移动版Flash播放器,就是放弃了这个巨大的市场!
  是的,今天对于全球的flash开发这来说是一个黑暗的日子,因为Adobe宣布它将停止对移动浏览器上flash的支 持。在此之前一天,Adobe刚刚宣布大规模裁员,这看起来似乎不是什么大事。但是,它已经使整个“闪黑之车”再次开动了,所以我觉得是时候在这个博客上 说说我的想法了。
  首先我只关注网页游戏的开发,这篇文章的主题仅限于此。这不是一篇《flash VS Html5》的文章。也不是一篇讨论开发移动端本地应用的文章,这是彻头彻尾的网页游戏开发现实。
  我将通过以下十个主题比较flash、HTML5和Unity,因为它们是我们现在开发网页游戏唯三的选择。
  1、工作流――创造一个网页游戏的容易度
  2、平台稳定性――你开发游戏的始末会产生哪些变化
  3、向后兼容――你的游戏十年后还能继续运行吗?
  4、移动领域――你的游戏究竟能不能运行
  5、发布――做一个没人玩的东西没啥意思
  6、安全性――代码和知识产权保护
  7、盈利能力――做游戏能不能赚到钱
  8、facebook――社交游戏之角
  9、多少人会玩你的游戏
  10、3D 支持   Stage3D vs. WebGL vs. Unity
  所有这些,都是我认为一个游戏开发者在选择游戏平台时需要考虑的问题。我觉得这不管对新手还是老鸟都是有意义的。
  文章很长,关键是我将尽我所能的阐述事实和统计,而不是哗众取宠。所以,你会做出明智的判断。
  技术拆解
  1、工作流
  flash:
  用flash做游戏very easy,书、网站、教程、游戏框架、类库、视频和示例代码不计其数。如果你选择使用flex,开发工具是免费的;使用flash IDE则需要付费,flash有通用并且功能强大的矢量渲染能力,因此你可以制作很小的动画。它全面支持音频和大部分adobe应用程序。比如 AI,photoshop都与flash IDE实现了很好的整合。经过多年的发展,拥有种类繁多的内置功能。
  HTML5:
  象JetBrains Astella这样的编辑器可以减少编码的痛苦。有一些很好的debug工具可以让你通过浏览器进行调试。有很多HTML5游戏开发的书籍、网站、在线资 源和一堆示例代码。开发HTML5游戏的工具是免费的,但也有一些商业开发工具――比如GameMakerHTML5和Game Salad,还有游戏特效库――ImpactJS,如果你想更快捷的开发,你可以使用他们,而不用顾忌引擎之下的运行机制。
  Unity:
  Unity有一个优秀的可视化编辑器,并支持主流的3D应用程序。针对个人用户的基础版是免费的,如果公司用户使用的话,你需要每年付费少于100美刀,专业版附加了各类组件,最低价格为1500美刀。一旦你的软件有了大量的资源和书籍,学习起来并不是什么问题。
  2、平台稳定性:
  flash:运行flash游戏的flash虚拟机是跨平台跨浏览器的。它在过时的IE浏览器版本和最新的Chrome上运行起来都没有问题,flash player能够提供相同的用户体验。Adobe通常每年会通过几次更新来发布一个新的flash版本。
  HTML5:
  平台飘忽不定且不断变化。这可能产生两个副作用:1、你的游戏可能忽然间无法运行了,而你其实啥也没干,只是浏览器升级到了新的版本。2、你不能只考虑一 个平台,老鼻子多呢。让你的游戏在Chrome上能跑起来只是一个开始,你还需要考虑IE、FF、safari,发布跨平台的版本。这所涉及的维护工作不 容低估。不同的音频支持和canvas渲染速度也是最大的挑战。
  Unity:
  Unity的网络播放器提供了和flash一样的好处。平台插件的方式提供了安全保障,你能确保游戏能跑起来,不会因为浏览器的更新而挂掉。Unity本身也在不断发展,定期的发布新的功能。
  3、向后兼容:
  flash:
  AS1时代制作的游戏至今能再flash11上跑得很好,这已经过去十年了。Flash的向后兼容是做得最好的。
  HTML5
  在向后兼容性的比较上这有点不公平,因为技术正在不断的发展。有价值的东西可能很快贬值,就是因为他们不支持W3C标准。
  Unity:
  Unity游戏不能很好的兼容之前的主要版本,起初我以为这是为了更好地向后兼容flash,但现在看起来似乎不是这样。
  4、移动领域
  flash
  直到今天,我都会说,撇开iOS不谈,flash对移动浏览器的支持是很棒的。但adobe已经宣布停止了针对手机和平板电脑的flash插件的继续开发,这宣布了它的完全死亡。你可以通过air创建本地应用,但它已经不是网页游戏了,这超出了本文的探讨范围。Stage3d在移动领域目前还不顶用,因为还没有那么多的硬件支持,还有老掉牙的flash虚拟机。这对flash开发者来说是一场艰苦的战斗。此外,adobe已将Oliver Goldman从air项目调入了云项目,他在AIR项目中是绝对的关键人物,创始元老。如果你有兴趣,读一下吧。
  HTML5
  在这一点上,HTML5正变得日益强大。在iOS5上,我们看到了HTML5性能的显著提高。随着浏览器对触摸事件和加速器的支持,它正渐入佳境。当然你仍然要处理不同的屏幕分辨率和长宽比,但这不是针对HTML5的。
  Unity
  目前还没有用在手机浏览器上的unity插件,鉴于unity在开发本地应用上的能力,我可以猜到原因。
  5、发布
  flash:
  flash游戏被包成一个单独的swf文件,容易控制,代码易于保护。这个文件可以很简单的被任何主机通过http协议来访问(如果他作为一个游戏被发布 出来的话);或者它也可以被锁定在一个特定的URL上。Flash游戏门户就是给予这种swf文件的网络旅行之上的。事实上,它旅行得越远,你赚的钱就越 多。
  HTML5:
  目前还有一个跨浏览器的统一方式来打包HTML5游戏。最大的游戏门户还不允许开发者上传自己的HTML5游戏。我猜想这是因为在他们的网站运行外部js 可能引起的安全问题(你可以在技术上破坏一切),这意味着传播的唯一方式是通过一个html的网址分享到目标网站或者通过一个iframe来嵌入。最终开 发者将不得不为这些方式支付托管的费用,或者可能让你的赞助者来付。Flash游戏很多时候会通过这样一些站点来进行传播,他们从大型的门户网站上“搞 到”swf文件,然后托管它们。这并不象它听起来那么邪恶,事实上,大部分flash游戏都靠这个赚钱。门户网站可以通过设置安全沙箱的参数来使用 iframe,但是这也会禁用很多在HTML5游戏中可能用到的功能,比如本地存储和访问表单。
  Unity
  Unity和flash类似,它也能被打包成一个单独的文件然后被上传到支持的游戏门户,比如 Kongregate.
  6、安全性
  flash:
  swf文件并不完美,但至少它把你的代码弄到一个文件里,要破解它需要有几把刷子或者借助第三方的软件才行。市面上大量的服务和软件可以对swf文件进行加密保护,这至少可以阻止非专业的破解和偷窃。
  HTML5:
  JS代码可以被混淆。但是在未加密的客户端,任何东西都不可能被加密。代码在内存中运行的时候很容易被获取。图形和音频文件很容易被盗取,比如通过 chrome/firefox的对象检查,或者干脆通过缓存文件夹来快速的找到它。这对你是否是一个问题完全取决于你的游戏和客户(是付钱的那些人而不是 你的浏览器客户端!)下面有个评论提到如何保护你的HTML5资源,在他看来,flash的资源和HTML5资源一样容易被窃取。我不想加入关于文件保护 的辩论,我只想说,什么都可以做,保护HTML5的方式,你同样可以用来保护flash。
  Unity:
  类似于flash,如果有人决心够大,他能够窃取到你的资源,但这需要他专业技术上足够牛X。总体而言,你面对半吊子黑客和小偷是安全的。
  7、盈利能力
  flash:
  有很多很好的方式可以通过flash来赚钱,包括游戏赞助、游戏植入广告、与游戏门户网站的分成、广告共享模式、游戏内置交易和为客户开发flash游 戏。获取一个广告分享也能增加你的收入。有很多广告网络的API可以使用,甚至简单的将你的游戏上传到Mochi也能增加你的长期收入。
  HTML5:
  游戏内置广告市场已经存在,在你的游戏中加入google的广告。我不能确定游戏赞助市场是否存在,或者游戏分成模式是否已经形成。游戏内置交易的模式已经存在,并且得到了很好的完善,比如 Fortumo 。当然,你也可以通过为客户开发HTML5游戏来赚钱。
  Unity:
  这方面我知之甚少,如果有那位读者知道,敬请指教。我期望能有几个广告API.虽然他们的目标市场更倾向于移动领域而非web领域。
  8、Facebook
  flash:
  facebook下大部分游戏都是在flash下运行的。每月拥有3600万玩家的《The Sims Social》是flash做的。Half Bricks的新版《水果忍者》将在flash下运行。他们报道说他们将很快采用先进的flash player11。Zynga的大部分游戏,不管你是不是喜欢,都是flash做的。这些的原因在于受众范围、现有技能(可以聘请到大量的flash开发 人员),有优势的工作流,以及在facebook上有各种第三方的服务和API可供选择用来赚钱。
  HTML5
  我在facebook上尽力寻找纯粹用HTML5开发的游戏。一定会有一些,因此如果你知道,请回贴。Znyga在2010年为开发facebook上的 HTML5游戏收购了 Dextrose ,但至今为止我没有看到任何结果,原文说:“一些公司已经在facebook上发布了他们的HTML5游戏,比如OMGPOP和他们的游戏《 Gem Rush .
  》,每日用户数量?仅仅是10人”,但有一位读者正确的指出这款游戏仅仅是使用了HTML5的API,游戏本身是flash做的。这为我的结论提供了支持,在facebook的游戏市场上,大部分玩家还是坚定的站在flash一方的。
  Unity:
  Unity看起来在facebook上找到了自己的利基市场。这部分游戏不象flash一样无处不在,但同样获得了很好的支持。比如 UberStrike(每月用户83万)和King’s Bounty (每月用户2万),这都表明如果你的内容足够吸引人,facebook上的玩家并不介意安装插件。
  9、多少人会玩你的游戏
  flash :事实上,因为每个从桌面链接到互联网的玩家都可能会玩你的游戏,游戏的播放数量是惊人的。你会看到一个正常的flash游戏一般一年的播放次数在 200-300万左右,优秀的游戏比这牛逼的多。我们的游戏《Home Sheep Home》发布后已经获得了每天至少100万的播放次数。并一直直线上升,18个月共获得1亿500万次播放。这是一个惊人的数字。再加上 facebook上榜游戏惊人的玩家数量――我该猜测,就在刚才的一秒种里正有数以10万计的玩家正在玩flash游戏。受众不会是你的问题。
  HTML5:
  事实上,我无法找到任何数字。也许是因为这项技术是这么新,以至于还没有什么好游戏是用他开发的。还希望读者能说出些什么。技术上说,你可以说这一领域的潜在用户有10亿以上,但我是想努力提供现实情况一共开发者选择。
  Unity
  尽管unity官方宣布了他们的播放器使用率,但实际情况并不是这样。 看一下Kongregate 上的TOP Unity Game,你就会知道他们的总次数只有577,000次。上面最好的flash游戏有2500万次。其实Top100之外的flash游戏的播放次数也不 会少于250万次。
  10、3D支持
  flash
  flash11引入了stage3d,它本质上是OpenGL ES 2.0,adobe已经做了大量的工作。但是还有一些情况需要注意。所有的游戏在嵌入时都需要写wmode=direct.大部分游戏门户还不支持这个。 但如果一个网站没有这个设置,它根本不会启动硬件加速的功能。其次,不支持的GPU黑名单太多,2009年之前的显卡驱动?过时了,最常见的英特尔 GMAS?他们也不行。鉴于英特尔GMAS在2007年出售的电脑中占有90%,这问题很严重。当然,adobe不得不画这样一条线,但是flash最大 的吸引力就是它不在乎你是用什么硬件,都能很好的跑起来。如果stage3d的市场不再是这样的话,这意味着他放弃了很大一部分休闲玩家。所以如果选择这 条路线,并确保你最后能够成功的商业化,如果你需要商业化的话。
  HTML5:
  在这儿我们有WebGL,与stage3D非常类似,他也属于OpenGL家族,但是缺乏很多关键性的功能。无法全屏、无法鼠标捕获、不支持多重渲染目 标,不支持实例绘制等等,这方面在autodesk博客上有很多很好的文章。这不过是短期的技术挑战,最终会被克服的。最大的问题是微软和他们的立场―― 不支持它。微软并非webGL工作组的成员,并且目前还没有提供对该格式的支持。如果他想这些统计信息现实的那样,这将很成问题,这意味着IE在今后几年 仍然是一个不可忽视的力量。
  Unity:
  Unity当然盯准了3D,在我们有限的运行中,我们看到Unity在stage3d无法支持的GPU上运行的很好。当然,你有浏览器插件的问题需要克 服。但是如果你你足够了解市场,那么unity仍然是开发3D游戏目前最好的解决方案。Unity宣布他们很快将支持输出为swf格式,但是这将不能规避 stage3d的显卡兼容问题。我打赌在不远的将来,unity也将支持输出为webGL格式。
  本文节译自《The reality of developing web games with Flash, HTML5 and Unity》,原文地址http://www.photonstorm.com/archives/2568/the-reali ty-of-developing-web-games-with-flash-html5-and-uni ty
  如翻译中有不确切之处,欢迎留言指正!
  原文出处:http://blog.yaqoo.cn/?p=71
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics