使用Unity3D是创业团队失败的原因吗?

第一个项目虽然失败了,但是最起码成功上线,并且获得了一定的收入(虽然杯水车薪),也因为第一个项目拉来了投资。但是第二个项目就彻彻底底的胎死腹中了。
没有检讨、没有总结,大家自然而然而又兴高采烈的开启了第三个项目。
我感到有些悲哀。如果我们都不知道自己的弱点在哪里,不明白自己的优势在哪里,如何能够扬长避短?一个创业团队难道靠硬推能推出一款游戏吗?

第二个项目是打算山寨《公主篷特2》,是一款《愤怒小鸟》玩法的带rpg元素的手游。《公主》就是拿Unity做的,并且有一定的3D元素。美术之前有说过,我们没有人物原画设计师,所以我们不适合做2D游戏。当时我就想你们不适合做2D游戏,那我就学Unity3D,策划也认为如果使用3D会有更好的效果(物理和细节表现)。
但是遗憾的是项目失败了,而Unity也成为领导和主美口诛笔伐的对象。按照主美的说法,我们对Unity掌握的不成熟,所以画面丑不是因为我们做的不好,而是Unity表现的不好。再加上我们的做模型的人是做高模的,然后学做低模效果肯定差了很多。总之一句话,我们的画面表现不好是由原因的,而且主要原因还是客观的,不是水平问题。
同时策划也有表达过,因为我们使用了不熟悉的游戏引擎,所以花了很长的时间来摸索它,耽误了开发进度。所以失败的第二个原因是功能完成度不高,比如原计划要配置300个关卡的,但是最后一个版本为止只有3个关卡,而且人物的数值什么的都没有做。这个进度慢是因为程序一开始耽误了很多时间,并且没有招到数值策划。总之一句话,项目进度慢不是规划的不好,也不是策划水平问题,而是因为一些客观原因。
如果这就是我们失败的原因的话,那我敢打赌,第三个项目还会失败。我们为了做项目而做项目,从来没有一个游戏是我们一开始想就非常兴奋----这个游戏做好了绝对会火,从来做的时候都是束手束脚的感觉,而且做的时候从来没有感到我们在完成一个非常好玩非常酷的游戏,只是感觉越做越不喜欢,越做越没有希望。

我有没有尝试过改变现状呢,尝试过,失败了。后来我无意看了下我的职位(团队独立成一个公司后,职务有一定调整),原来我只是个客户端程序员。怪不得我提的很多意见都不了了之,因为我不是主程、不是领导、不是项目经理,我只是个客户端程序员。即便代码都是我写的,我也只是个客户端程序员。有点像在某个黑暗的王朝中,看着皇帝和大臣做了一个又一个荒唐的决定,看着王朝一步步走向末路,却无力改变。空有报国之志,却无报国之门。

说了很多废话,我们回过头来说Unity。无论别人怎么看,我坚定不移的钟情于Unity。曾几何时我也想自己写一个游戏引擎,然后如臂使指的控制它,来完成一个酷炫的游戏。不过后来cocos2d-x做的越来越好也就打消了这个念头,再后来接触Unity后就更加不会想着自己来做游戏引擎了。因为我要的功能它都有,即便因为一些想法的出入,某些功能实现起来有些别扭,但是没有功能的短板。那么多人,那么多团队使用Unity做出了成功的游戏,这里面有大型的3D MMO,也有像《忍着必须死2》这样的轻量级手游,也有像《影之刃》《王者之剑》这样的2d aprg。各种类型的手游Unity都有成功的参考案例,这个时候一切失败的因素都不在引擎上面,而在使用者上面。

选定一个游戏引擎,然后坚定不移的使用它,不断的积累和完善相关功能。这个是程序的积累,也是团队的积累。今天用cocos2d-x明天用Unity后天又换回cocos2d-x,我们的时间都消耗在研究、思考、学习上面了。对于创业团队来说,我们有多少次失败的机会?有多少可以浪费的时间?理想中的情况是,第一个项目我们用6个月时间来做,第二个项目4个月,第三个项目2个月换个皮就可以了。但是我们的情况呢?第二个项目我研究了一个月的Unity,又因为代码的重构浪费了一个月的时间。第三个项目是其他人负责的,断断续续研究了三个月时间,现在刚刚开始写功能。我们的积累在哪里呢?如果每次我们都重新开始,那程序是不是很失败?

我之前有写文章表达过这样的思想,我无论做2D游戏还是3D游戏都倾向于使用Unity。倒不是说Unity做2D游戏会比cocos2d-x方便多少,毕竟不同的思路,不同的表现形式,而且说实话2D游戏本身就没有什么技术难点,更多的体现在细节表现和功能逻辑上面。但是Unity做游戏有这么几个优势:
1、方便的跨平台,平台相关的功能Unity都已经帮你实现好了。即便有些Unity没有实现,也有插件帮你实现。
2、基于Unity的酷炫的粒子光效编辑。Unity本身就是一个功能强大的粒子编辑器。 之前我还认为cocos2d-x的粒子系统的功能足够了,但是跟专业的编辑器比起来,远远不够。粒子系统要跟粒子特效编辑器配合起来,其功能远远不是之配置一个粒子系统的几个参数就可以的。cocos2d-x本身的粒子系统是很鸡肋的功能,只能拿来做一些简单的光效,不可能用来做复杂的技能特效。
3、由于框架和架构的优势,Unity的游戏可以极大程度避免崩溃和闪退。由于代码都是c#写的,并且是组件结构,所以即便出了错误也只是个异常而已,而不会影响到系统流程。
4、强大的性能分析工具,可以轻易的找到内存和cpu的瓶颈。支持Android和iOS的真机运行分析。
5、编辑器可以方便的进行扩展,不需要像传统游戏公司一样,有一个专门写编辑器的部门。无论是场景编辑器还是技能编辑器都可以轻松搞定。如果想玩高科技的话,还可以把技能编辑器做成可拖拽的模块化结构,策划可以像搭积木一样来编辑技能。最重要的是,这些都是所见即所得的。
6、方便的资源管理系统。使用Unity,你不用特意维护几份资源(比如原始资源、打包后的资源、iOS版本资源、Android版本资源等等),只要一份资源,然后Unity里面可以设置它的具体参数,比如使用纹理压缩、最大限制在512x512大小等等。Unity发布游戏的时候会自动根据平台相关的导出选项导出正确的资源。
7、丰富的插件。有大量的功能我无论拿cocos2d-x还是Unity都不知道怎么实现。比如一些shader特效、物件碎裂的特效、场景破坏和变形的特效等等,这些在Unity插件中都可以找到对应的实现。而且很多Unity的游戏都可以反编译,无形中又可以学到很多东西。
8、熟悉之后确实感觉Unity很简单。很多功能都是成体系的自然而然的。比如物理、碰撞检测、导航寻路、场景管理、场景烘焙。这些无论拿哪个出来都是相当有技术的功能,但是在Unity中几个按钮、几步操作就可以实现对应的功能。

至于缺点也有一些:
1、最主要的,无论是Unity还是插件都是要收费的。(破解版,等赚钱了再考虑回馈)
2、由于iOS平台的一些限制,Unity很难做动态代码更新。而cocos2d-x有lua这个比较成熟的方案。(如果程序稳定了,需要频繁更新代码的机会不多,更多的是更新配置和资源)
3、可能有些人不熟悉Unity,从而选择了开源的cocos2d-x。适应Unity的框架、工作方式需要一定的时间。(相信我,不会很长,要知道一个8岁的孩子都能拿Unity来做游戏,并且上架,如果有程序员说搞不定Unity,那干脆转行卖烧饼吧)
4、对应上面的第6点,由于Unity中资源对应的配置有很大的重要性,所以一个Unity功能就是资源+代码的整合,你很难分出一个资源包。这样你的Unity项目可能很大。(使用AssetsBundle打包后可能避免这个问题,但是项目初期资源变动大,经常打包很不方便)
5、Unity很多设计都是为可视化编辑考虑的,举个例子,2D的动画可以方便的拖几张图片就可以搞定。但是如果我每张图片都有一定的偏移,那就麻烦了,需要自己重新实现帧动画功能,自己加载配置文件来实现。(这个严格说来不是引擎的问题,毕竟引擎不是为了一家游戏公司设计的,大众化的简易的操作方式是唯一需要考虑的。但是很多时候确实感觉有些不爽)

以上是我对半年Unity使用的总结。基本上说是偏爱Unity的。但是不得不说,某些团队不适合做3D游戏,那么认清自己的短处,3D这块儿就不要碰,即便只是简单的3D模型渲染都不要,因为根本就做不好。 如果只限于2D游戏的话,更多的还是看个人喜恶,我就是习惯用cocos2d-x,那么我说多少遍Unity的好话都没有用。能快速的开发出游戏才是硬道理。

使用Unity3D是创业团队失败的原因吗?,布布扣,bubuko.com

时间: 2025-01-02 10:42:32

使用Unity3D是创业团队失败的原因吗?的相关文章

CentOs 6.6里kdump启动失败的原因

在VMware中新安装了CentOs 6.6,重启系统发现kdump服务启动失败 先来说一下,什么是kdump kdump 是一种先进的基于 kexec 的内核崩溃转储机制.当系统崩溃时,kdump 使用 kexec 启动 到第二个内核.第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像.第一个内核保 留了内存的一部分给第二内核启动用.由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所 以第一个内核的内存得以保留.这是内核崩溃转储的本质. 启动失败的原因 查看 /etc

系统启动失败的原因分析及解决办法

系统启动失败的原因分析及解决办法 原因分析: 可能是配置文件/etc/fstab中错误了. 查看/etc/fstab配置文件内容: [[email protected] ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Mon Nov  7 18:40:55 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错. (异常来 自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY)) 经过多般折腾,还是没什么更好的办法.

adb 启动失败的原因和修改adb端口号

在我们使用Android Studio的时候,有时候就会出现adb打开失败或者启动不了的情况. adb 启动失败的原因:有其他程序占用了adb默认启动的端口号(像我就遇到过,每次只要提前启动了酷狗音乐,adb就会启动失败~这是要我们专心写代码,不要边听歌边撸0.0) 打不开的情况下的解决方案就是打开Android Studio的Terminal终端 使用以下命令: //关闭adb服务 adb kill-server //再重启adb服务 adb start-server 结果:(终端输出以下代码

数据库连接失败的原因及解决方法

各种业务系统在使用过程中都会遇到一些问题,因数据库连接失败,不能登录管理软件就是其中之一,这个很令人头疼而且常见的问题 一般的业务系统均采用的是SQL数据库,我们这里总结了SQL数据库连接失败的原因和解决方法: 原因一:登录账号.密码.服务器名称.数据库名称登录错误导致不能连接,这个比较常见,仔细检查好所填信息是否正确,填写正确一般就可以解决. 解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题.数据库如果是安装在本机,服务器名可以用".&q

linux下使用crontab实现定时PHP计划任务失败的原因分析

这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下 很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本文就linux下使用crontab实现定时PHP计划任务失败的原因做一分析. 一般我们linux定时执行php代码例如: 1 */5 * * * * /usr/local/php/bin/php /home/wwwroot/1.php 其实这样是可以执行php代码的. 但是为什么很多朋友在1.php写的

检索 COM 类工厂中 CLSID 为 {5374EC4C-1AA2-4829-A811-DE624ECEC23F} 的组件时失败,原因是出现以下错误: 80040154。

1.开发环境: win7 64位,vs2008,AE9.3 控制台程序 new方法失效报出的错误. 2.出现问题: 检索 COM 类工厂中 CLSID 为 {5374EC4C-1AA2-4829-A811-DE624ECEC23F} 的组件时失败,原因是出现以下错误: 80040154. 3.解决方案:将工程的属性中生成选项的目标平台设置为x86就可以了.

VC断点失败的原因之一

VC断点失败的原因之一 flyfish 2014-10-23 情景 再debug状态下只有一个cpp文件,命中不了断点. 提示 可以 允许源代码与原始版本不同 不采用,防止出现未知的隐患 问题分析 1 头文件(.h)和实现文件(.cpp),经过编译生成OBJ文件,OBJ文件通过连接(Link)生成EXE文件 简化: .h+.cpp -> obj -> exe 2 PDB文件存储了EXE文件的所有调试信息,每当生成OBJ 文件时,编译器都会将调试信息合并到PDB 中 简化: .h+.cpp -&

检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005

http://blog.csdn.net/yiyiwyy326/archive/2007/04/30/1592657.aspx [C#]用C#动态生成Word文档之服务器配置Server 2003 收藏 用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但安装到远程服务器上就报错了,让我头疼了好久,看了很多的信息后,现在才算是搞定了. 为了不忘记特意再此做下记录来! 程序安装到远程服务器上,首先报的错误代码就是80070005(检索COM类工厂中CLSID为{000209FF-00