zoukankan      html  css  js  c++  java
  • (转)stage 3d or unity 3d

    这个是这样子的。stage3d如果不使用flascc的话,性能会卡在as上面。你没卡是因为你用的效果还不够高级。往深了走的高端应用就是卡as性能上。这不是你代码能优化了的。我们后来都改用flascc写代码了。不过开发效率太低。然后也不支持dx11的一些高级效果如曲面细分什么的。adobe也没有拿得出手的编辑器。away3d还很简陋。如果非端游的人做开发成本和时间都太长。相对而言unity3d的工作流,编辑器,3d引擎,代码性能都占尽优势。撇开网页插件安装率的话。那stage3d几乎是没有优势的。反正什么技术合适用什么技术了。无非转转而已。别让技术去主导产品。根据产品来选择技术和开发方式。多学点没啥坏事。像我就研究unity快一年了。反正两手都抓。

    as4被放弃确实觉得adobe有点不上心的感觉。估计也是不赚钱或者自己也觉得没搞头。flash虽然出了个封神,但市场上已经失败了。你看看它开发成本有多少。而且也是端游出身。一个网页游戏光技术500w的话而且还没办法移植到手机和其它平台投资人会怎么想?技术花掉这么多钱你还哪来钱请牛逼策划和美术。只有技术其它跟不上想成功那是傻逼才会这么认为。3d开发基本已经是首选unity3d了。而且你可以发布成桌面客户端,xbox,手机。老板也不傻,flash死不死关他屁事。要跳出唯一技术论看事情。3d市场开发工具的至高地现在已经在unity手上,flash看能不能做老二了。手机市场会比网页游戏更大但手机air和stage3d开发成本都不怎么给力。光靠开发者那是没用的。就算你是编程的神也无法改变物理定律。聪明的开发者和老板都会根据需求选择合适的技术。策划和开发工具的威力远比技术开发者强大。一个300万成本但赚一亿的游戏和一个1000万投资但只能赚500w的游戏傻瓜都会选哪个了。个人技术牛逼与否和产品能不能赚钱没一点关系。一个一流的策划和美术加个二流的技术足够让产品大获成功。技术只要足够稳定,代码bug更少,开发够快那就已经达到期望的目标了。技术很好产品惨败的例子应该已经很多了。在用户面前炫耀技术牛逼是很傻逼的行为,别人根本就不懂代码。满足用户需求才是第一位的。所以所有的选择都可以被归结为你是否满足需求了。不管是老板的,美术的,策划的还是用户的。至于别的,你还是回家自己满足自己吧。编程是门艺术,优美的代码只能是自己意淫。用户需要完美的运行时,就算它里面代码丑陋。有效才是最重要的。对他而言仅仅是一个隐藏的几秒loading而已。代码是这样写还是那样写属于用户最不关心的事情。能达到需求的技术都是好技术,没有美与不美之分。当然你自己家里玩。自己想怎么折腾都可以。所以也许过程有点重要,但结果才是最重要的。说过程很重要而结果不重要的那只是失败者苍白无力的借口罢了。当然我自己也是失败者。但我相信成功不需要理由,失败了再多理由也是废话。

    成王败寇,愿赌服输就这么简单。既然从商赚钱,就没有道德不道德一说。道德与艺术那只是用来欺骗傻逼的一个幌子而已。最终结果才是唯一的衡量标准。尔等程序屌丝屁民能管得了能改变什么,赶紧用合适的技术赚更多的钱吧。在中国35岁以后还想靠技术写程序赚多少钱估计1万个里面都只有一个成功的。别人能成功就觉得自己也能成功的人完全是太天真。

    没有完美的技术,只有适合的技术。下面从市场和开发两方面简单讨论:

    市场:

    目标市场:二者都是跨多平台的。flash:web player,手机,桌面。unity: web player,手机,桌面,Xbox,PS3,Wii。如果不考虑家用游戏机市场,二者所面对的目标市场一致。

    social game:在社交游戏市场上flash出尽风头。Facebook,Renren等社交网站绝大多数游戏都采用flash。FarmVille、The Sims Social等流行游戏每月有几千万的玩家,而unity的游戏不多,玩家数量最多的游戏不过几十万

    web game:页游市场上flash游戏赚的盆满钵满。七雄争霸、傲剑、神仙道等月入千万的页游都采用flash。采用unity的web game虽然百度出的结果较多,但多作为新闻炒作,盈利情况不明显。

    mobile game:手机游戏市场上unity优势明显,有近千款iOS游戏使用unity开发,大作频出。flash开发的iOS游戏数量不多,但Dr. Stenly‘s Home, Machinarium等都曾排在app store销售第一。

    平台支持:flash拥有广泛的平台支持。Facebook,人人网,新浪微薄,腾讯微薄等开放平台都提供flash版本的sdk,仅有日本的NeDa宣布支持unity。

    技术:

    开发效率:作为一款专业游戏引擎,unity具有便捷的场景编辑器,集成的物理系统,丰富的插件和素材库,unity开发效率远高于flash。

    性能:曾有人做过比较,flash的3D渲染性能略逊于unity。同屏渲染2百万个三角形时,flash比unity低4fps。(测试文章: http://iflash3d.com/performance/unity3d-vs-molehill/ )

    社区资源:在开发者数量,第三方类库,学习资料方面,flash的活跃度明显高于unity。

    适用类型:二者都支持3D硬件加速,但在2D游戏开发上,相对于要依靠插件的unity,flash提供更完美的支持。

    成熟度:经过多年的发展,unity在3D游戏领域已非成熟。flash的3D技术stage 3D推出仅仅半年,还有不少要改进的空间。

    结论:

    在web游戏方面,flash依靠90%以上的装机率和广泛的接受度,已成为web game前端的实际霸主。试想页游针对端游的一大优势就是零客户端,而unity仅有1%的装机率,有多少玩家会为了玩款网页游戏而去安装unity插件?除非利用unity 3D 3.5新加入的发布成flash功能,才有与flash一战的资格,但此功能的实用性和适用范围还有待进一步证明。

    在手机游戏方面,unity在开发效率、游戏性能等方面全部优于flash,显然更适合3D游戏的开发,但2D游戏的支持稍显不足。

    综上,如果想开发兼顾web和mobile的游戏,flash是更实际的选择。分开来看,flash更适合web game,unity更适合mobile game。flash更适合2D游戏,unity更适合3D游戏。

    ====================================================================================================

    flash3d和unity3d的区别:
       1)成熟度:flash3D不成熟,资料少;unity3d成熟,资料多;  
       2)MovieAsset:flash3D目前较为流行的away3D,3.6支持movieAsset,4.0好像还没有支持; 如果不支持,则缺少极大的flash3D优势;   
       3)跨平台性:away3d下载的app在ipad会闪退,不是很兼容;unity3d则无其他 
       4)性能:unity3d略优于away3d4.0(有人专测,快几个fps,且4.0建立在GPU加速的基础上) 
       5)开发效率:uinty3d可视化开发速度快;flash3d基于纯代码开发,速度慢(如果js和flash开发3d);
       6)界面UI:flash3d可以做出出色的界面UI;unity3D则较为古板(但目前uniSWF可以给出解决方案)
       7)数据交互方面:flash作为2D核心组件,交互无任何问题;unity3D发布成webPlay交互无问题,但如果
               组件化,编译为swf,通信方面需要进行测试(且不排除swf不支持相应的API) 

    有不对的地方欢迎大家指出,但就目前看来flash3D实在前途不明朗。

     Macromedia/Adobe公司对Flash内置3D引擎一再保守(他们的官方理由是:增加3D模块会使Flash Player体积大大增加,而他们的理念是做世界上最小的播放器)的同时,外部的Flash 3D插件的开发却如火如荼。近年来光本人研究使用过的就有Blaze 3D, Papervision 3D, Away 3D。但是,由于Flash Player本身并不包含3D解析模块,这些外部插件都很难归入到真正的3D引擎阵营中去。因为Flash Player不支持硬件加速,所有的数据都靠CPU运算,所以像D3D,OpenGL等都无法得以运用。基于此,这些3D插件的前景不管开发者如何鼓吹都好不到哪里去,因为离开了显卡的硬件加速支持,这些Flash 3D引擎所能渲染三角面是非常有限的,只能做做像网站之类3D模型比较简单项目,要应用到游戏之类的项目,那是蚂蚁拉牛车,实在太难为它们了。
          记得当时CS4发布之前传出Adobe将推出Flash 3D引擎的消息,着实让我激动了一把,并因此一度中断对Papervision3D的探究,及至发布日,发现那个3D引擎竟是如此3D法,不由得大骂Adobe误人子弟。而现在CS5又将发布,从目前已有的消息来看,3D引擎依旧没有进入Adobe的发布日程表,这种太监急煞皇帝悠闲的现象显得有些奇怪,不能不引起我们的思考。
          我之所以一直认为Adobe会推出Flash 3D的引擎,是因为我觉得3D应用是未来网络的发展方向,Adobe收购Macromedia的主要目标就是要从平面媒体发布垄断拓展到网络媒体发布垄断,那么花了那么多钱买来得网络优势它不可能白白地看着它被别人侵消,也不会白白浪费Flash Player近乎100%的装机率,所以它一定会推出Flash 3D引擎模块。但近来我的这种信念渐渐地产生了动摇,其原因是网络上出现了另一种东西,那就是unity3d。
          Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓。但是今年推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备。几乎像当初的Flash一样,一下子就火爆了起来。我试用了一下,感觉是:被彻底镇住了。试用时所感受到的那种冲击力,和我当初第一次使用Flash的感觉是一样的:超简单的使用方法,方便的可视化创作环境,完美的工作流程,高效的工作效率……但同时它比当时的Flash有一个无可比拟的优势:它已经有成熟的并广为人知的脚本语言:C#和Javascript。这些特点可以归结到一点:可以让无数水平不等的使用/开发者轻松上手,而这正是一款软件能够迅速流行起来的主要因素。我只试用了十几分钟,就产生一种强烈的感觉:Flash 3D永远没戏了。
          网络上的3D应用,除了游戏之外,目前比较有前景的是3D虚拟社区,此外还有一些3D场景的虚拟展示。作为一个从3D游戏引擎发展起来的软件(其实它目前还只是个游戏引擎而不是通用软件),用Unity 3D做这些事情自然是举重若轻。一些用Flash开发需要“高高手”才能完成的项目,用Unity 3D只要稍微设置一下,加一点控制脚本就能轻松完成,而运行速度方面Flash根本不在一个数量级。而它的web player插件也只有4M多一点点,和Flash Player差不多。
    等了那么多年,总算搞明白的两件事:一是对Flash内置3D引擎的期待本来就是我们的一厢情愿,而Adobe早就不是一个有创意的公司了。
          现在回过头来看,其实在Flash技术里面添加真正的3D引擎几乎是不可能的。首先是Flash Player里面已经有两套虚拟机同时工作,第一套虚拟机解释AS1.0和AS2.0,第二套虚拟机解释AS3.0,这时它的体积已经是4M多了。如果要解释真正的3D程序,势必要再增加一套虚拟机,因为Flash是基于矢量图形的运算的,所以想和3D解释引擎合二为一可能性不大。这样的话播放器的体积就可能会超过8M,而且2D虚拟机和3D虚拟机如何协同工作还是个问题。其次Flash的目标市场本来就是2D市场,指望它同时兼容3D就像指望把Photoshop和Maya合二为一一样。
          Adobe公司发展到现在,已经是个很成熟的软件公司了,而成熟型公司的共同特点是不再擅长技术创新,而是擅长资本运作和市场投放。他会总是怀里揣着巨款眼睛搜寻着市场,一旦市场上出现了一项新技术,就会立刻评估它的价值和未来对公司业务带来的影响。如果这项技术对公司未来的发展有利,那么就等它差不多成熟的时候收购它,如果它以后会对公司的业务带来损害,那就用巨款毁灭它。这是典型的富二代行事方式。所以,我可以在这里做一个大胆的预测:如果Unity 3D在未来的两年里发展的好(开发群体迅速扩大,web player装机率快速上升),那么Adobe公司会在一个适当的时候复制收购MacroMedia那一幕。即使是现在,要说Adobe的那些头头头脑里一点这种念头都没有,那是打死我也不会相信的。到那时,在Adobe的产品线里,Flash继续统治2D Web,而Unity 3D则统治3D Web。

  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/hisiqi/p/3139192.html
Copyright © 2011-2022 走看看