人生最纠结的事,莫过于有选择…………

cocos2dx和unity3d从某种意义上讲,都很不错。但当面对特定需求以及团队情况的时候,总是能分出高下的。

假设,目标游戏是一款类似 刀塔传奇 的游戏

我们先分析一下游戏特点

1、这是一款2D游戏

2、它没有强烈的玩家互动,也没有玩家互见

3、它适合使用HTTP与服务器进行通信

4、为了资源较小,使用2D骨骼动画

5、为了更好的用户体验,我们需要支持游戏内更新

对于以上5点来说,两个引擎都是可以做到的……

那针对此目标,我们来说如果使用U3D,应该如何做。

如果使用U3D,那U3D自身强大的3D功能将被无视。而由于U3D自带的2D简直是弱爆了。于是,我们一般采用3D场景+正交相机的方式来实现2D效果。 这些都是可以的。 只是说Mono起步价就是8MB(Mono框架本身的开销就不谈了)。

界面方面,采用NGUI吧。这些都是不需要思考的。

但对于2D骨骼动画来说,较好的选择是Spine。 但目前的美术外包团队中对Spine这个工具较熟悉的,为数不多。 而Dragon Bones,只有一个弱弱的Unity3d支持, 在GIT上可以找到。

对于游戏内更新问题,只能使用其它解释型脚本了, iOS上是不能更新可执行代码的。 LUA可以说是不二的选择。

这样看来,使用U3D面临的问题就是 能否找到一个好的美术团队使用Spine做出2D骨骼动画…… 在U3D框架的基础上,我们还需要再封装一次LUA,以满足动态更新。 安装包相比cocos2dx来说,多了8MB。 一套U3D授权为5000美刀

来说说cocos2dx

cocos2dx使用C++开发,同时官方支持的导出脚本为LUA,JS。 因此,自动更新功能是没有问题的。

cocos2dx有一个cocostudio和cocosbuilder工具可以拿来做UI。 虽然不太便服,但忍忍是可以接受的。

cocos2dx对Dragon Bones的骨骼动画支持较好,不用担心美术问题

cocos2dx是免费的,少了5000美刀。

cocos2dx安装包要小8MB

cocos2dx有这方面的成功案例

结论

虽然一直期待能够使用U3D作为惯穿一切的解决方案。但目前面对这样的2D需求的时候。 个人还是觉得选择cocos2dx较为科学。

在cocos2dx和unity3d之间选择的更多相关文章

  1. WP8:Unity3D之间的值传递

    在前面的讨论中,我们介绍了如何在Unity3D for WP8中使用高于.Net 3.5的第三方库,传送门:http://www.cnblogs.com/zhxilin/p/3311240.html ...

  2. Cocos2d-x 3.x 头像选择,本地相册图片+图片编辑(Android、IOS双平台)

    大连游戏产业不是很发达,最后,选择一个应用程序外包公司.积累的工作和学习过程中的一点业余生活微信体验,我想分享的游戏小朋友的爱. 在应用开发过程中会经常实用户上传头像的功能,在网上找了N多资料发现没有 ...

  3. 一道编程题: 在1~n之间选择若干个数,使其和为m

    这是一道很明显的动态规划的题目. 递推公式为 用sum(n, m)表示所有可能的1~n之间存在的和为m的组合 那么 sum(n,m) = sum(n-1, m) | sum(n-1, m-n) 直接上 ...

  4. PyQt学习随笔:Model/View架构中多个视图之间选择数据项同步

    我们知道多个视图之间通过使用相同的model就可以实现数据的共享(具体请参考< PyQt学习随笔:ListView控件的视图和数据模型分离案例>),除了数据的共享之外,多个视图之间还可以同 ...

  5. 在NOARCHIVELOG和ARCHIVELOG模式之间选择

    本节介绍在选择以NOARCHIVELOG或ARCHIVELOG模式运行数据库时必须考虑的问题,并包含以下主题: 在NOARCHIVELOG模式下运行数据库 在ARCHIVELOG模式下运行数据库 是否 ...

  6. 关于cocos2d-x 和安卓之间的相互调用

    近期在研究cocos2d游戏移植安卓须要调用非常多方法.所以在研究之中写下它们之间相互调用 首先,cocos2d调用安卓 在一个.h文件里加入头文件 #include <jni.h> #i ...

  7. Android:AS与Unity3D之间打包的各种坑及解决方案

    作者:DrkCore (http://blog.csdn.net/DrkCore) 原文链接:(http://blog.csdn.net/drkcore/article/details/5207937 ...

  8. 如何在Code First、Database First和Model First之间选择

    Code First.Database First和Model First基本图解: 1)Database First: 如果数据库已经存在,可以使用VS自动生成数据模型,已经相关的edmx信息 2) ...

  9. uLua学习笔记(三):Unity3D和Lua之间的相互调用

    这篇笔记主要集中学习一下uLua和Unity3D之间相互调用的方法,我们导入了uLua之后,现在会弹出一个类似学习屏幕的东西,如下: 先赞一个! Unity3D调用Lua Unity3D调用Lua的方 ...

随机推荐

  1. Codeforces Round #379 (Div. 2) Analyses By Team:Red & Black

    A.Anton and Danik Problems: 给你长度为N的,只含'A','D'的序列,统计并输出何者出现的较多,相同为"Friendship" Analysis: lu ...

  2. BZOJ1261: [SCOI2006]zh_tree

    Description 张老师根据自己工作的需要,设计了一种特殊的二叉搜索树.他把这种二叉树起名为zh_tree,对于具有n个结点的zh_tree,其中序遍历恰好为(1,2,3,-,n),其中数字1, ...

  3. 20.cocoapods的安装和使用

    一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里, ...

  4. dom4j使用xpath报异常 Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext

    Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext      ...

  5. S2SH简介

    struts2简介 Struts2是由WebWork基础上发展起来的,与struts1比较,选用struts2的理由是:①Struts1要求Action类继承一个抽象基类,而Struts 2 Acti ...

  6. Mysql主从架构的复制原理及配置详解

    一.简述Mysql复制 Mysql复制是通过将mysql的某一台主机的数据复制到其他主机(slaves)上,并且在slaves上重新执行一遍来实现.主服务器每次数据操作都会将更新记录到二进制日志文件, ...

  7. svn 版本库的创建和配置

    1.创建SVN版本库 mkdir trunk svnadmin create /root/trunk/svntest #这里是路径和即将创建的版本库名称 2.配置svn cd /root/trunk/ ...

  8. js call apply

    参考文章:https://www.zhihu.com/question/20289071 引用:call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是 ...

  9. 解决Canvas.toDataURL 图片跨域问题

    如题,在将页面的图片地址进行本地输出时(Html2Canvas.js),因不同源存在跨域问题,会出现toDataURL访问权限问题: [Redirect at origin 'http://sub1. ...

  10. Smarty缓存的5个知识点

    (1)页面缓存:整个页面全局的缓存 需要4个步骤: ①开启缓存  $smarty->caching = true; ②设置缓存的生命周期  $smarty->cache_lifetime ...