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

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. [php-src]Php扩展的多文件编译

    内容均以php5.6.14为例. 假设有模块 foo,php_foo.h 和 foo.c 是固有文件,额外的C文件如果要加入编译,大致有五步. 1. 新增头文件 foo_bar.h #ifndef F ...

  2. Quartz.Net与MVC结合定时任务

    1.首先,我们打开Visual Studio 2015,创建一个ASP.NET MVC的Web应用程序项目. 2.然后通过程序包管理器控制台来安装Quartz.Net组件. Quartz.Net一个最 ...

  3. mybatis框架中分页的实现

    2.分页的实现? 分页的时候考虑的问题: 分页的大小,分页的索引. 比如:分页的大小为10,分页的起始索引为1(索引从1开始) 第一页:1到10.    起始行号: (页的索引-1)*分页大小+1 结 ...

  4. js 字符串格式化方法

    String.prototype.format = function(args) { var result = this; if (arguments.length > 0) { if (arg ...

  5. Oracle数据库备份 expdp/impdp导出导入命令

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

  6. JavaScript-永远点不到的小窗口

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. Java学习笔记 03 数组

    一.数组的创建和使用 数组的创建和使用 >>创建方法1:先声明,再用new关键字分配内存(使用new关键字分配内存,整形数组中各个元素的初始值都为0) String str[]; str= ...

  8. Mini projects #5 ---- Memory

    课程全名:An Introduction to Interactive Programming in Python,来自 Rice University 授课教授:Joe Warren, Scott ...

  9. [Python] Pitfalls: About Default Parameter Values in Functions

    Today an interesting bug (pitfall) is found when I was trying debug someone's code. There is a funct ...

  10. oracle基本操作

    登入oraclesqlplus / as sysdba启动oraclestartup停止oracleshutdown 创建新用户create user username identified by p ...