为什么Cocos都4.0了还有人用2.x?

引言

哈喽大家好,我是亿元程序员。

合集1.0刚发布的时候,就收到过小伙伴的私信:

我盯着这条消息愣了半天。

心里第一反应是Cocos4.0了,3.8也迭代了这么久了,怎么还有人在用2.x

紧接着第二条、第三条、第十条类似的私信陆陆续续冒出来,我才意识到这并不是偶然。

于是 我做了一件挺"反潮流"的事:把原本基于CocosCreator3.8.7做的整套合集1.0 ,硬生生搬回了2.4

今天这篇文章想聊两件事:

  1. 为什么Cocos都4.0了还有人用2.x?
  2. 3.x项目移植2.x有哪些差异?

合集1.0的2.x版可在文末获取,小伙伴们自行前往。

一、先聊聊第一个"扎心"的问题

为什么Cocos都4.0了还有人用2.x?

1.老项目迁移成本太高

这是最主要的原因,很多公司的项目:

  • 已经上线运营多年
  • 代码量几十万甚至上百万行的屎山级别
  • 已购买插件、编辑器扩展

从2.x升级到3.x/4.x并不是简单修改几行代码。

举个栗子:

2.x 3.x+
cc.Class ES6 Class
cc.Node API变化较大
2D架构 3D架构
全局cc 模块化导入

很多项目升级后:

  • UI错位
  • Shader失效
  • 插件失效
  • 原生工程重配

可能需要几个月开发时间,对于已经赚钱的项目来说:

没有收益的重构,老板通常不会批准。

2.2D项目用2.x已经足够

很多卡牌游戏、老虎机、捕鱼、消除类游戏,它们不需要3D能力。

2.4已经能满足需求。

你的很多项目 (老虎机、刮刮乐、UI玩法等)其实用2.4.x也完全能做。

所以很多公司想法是:

能赚钱就别动。

3. 2.x生态非常成熟

目前国内很多:

  • 插件
  • 开源项目
  • 教程
  • 商业框架

都依然是 基于2.4.x

大家 经常逛商城的,应该能知道商城上一大半都还是2.x的插件和源码。

二、3.x项目移植2.x有哪些差异?

聊完"为什么"现在聊"怎么搬"。

1.对比

先把两个引擎放一起对比一下,这不是版本升级,是两个引擎。

维度 Cocos 2.x Cocos 3.x
场景文件 .fire .scene
脚本写法 全局 cc.xxx + @ccclass + export default import { ... } from 'cc' + @ccclass('Name')
节点变换 node.convertToNodeSpaceAR() 挪到 UITransform 组件上
坐标 Vec2 必须用 Vec3
颜色/透明度 node.color / node.opacity 拆成 Sprite.color / UIOpacity

代码层最直观的对比:

2.x:

3.x:

2.Shader部分

虽然 .effect 文件名是一样的,YAML框架长得也差不多,但里面几乎每一行都要改,基本等同于重写。

首先是入口写法:

2.x:

3.x:

其次是 include路径全变:

2.x:

3.x:

最后就是合批策略:

3.xSprite合批比2.x严苛得多:per-node修改uniform直接打断合批。

举个栗子

我那个 拼图圆角shaderround.effect),在3.x里不得不把每块拼图的位置/索引塞进a_color通道偷渡进去,而2.x直接set uniform就完了。

3.3D部分

由于合集1.0 中有一款是3D的拼模型游戏,为了保证合集的完整性,笔者也尝试了移植。

可是结果却非常扎心,不得不放弃:

所以合集1.0的2.x版并没有包含拼模型游戏。

三、所以这套2.x合集,适合谁?

直接说:

适合你的情况:

  • 公司项目 卡在2.x,想找现成的2.x案例代码参考
  • 想做 2.x → 3.x 的迁移,需要"同一玩法两个版本"的对照实战
  • 接外包/学校项目 ,客户指定2.x
  • 学习 2.x3.x差异,两套源码对比看效率最高

不适合的情况:

  • 完全新项目 ,请直接上3.x4.x
  • 需要 3D 玩法2.x做不出,请看3.x版本
  • 追求最新引擎 ,这套合集2.x版只做"等价复刻",不会硬塞新特性

结语

看完上面的内容 ,大家知道为什么Cocos都4.0了还有人用2.x了吗?

大家想想 ,现在Win11了,还不是照样有用7的?

本文合集1.0的2.x版 可通过阅读原文获取,已经入手合集1.0 的小伙伴可以直接选择老客户复购版,享受优惠。


我是"亿元程序员",一位有着 8 年游戏行业经验的主程。 在游戏开发中,希望能给到您帮助,也希望通过您能帮助到大家。

实不相瞒,想要个在看 !请把该文章分享给你觉得有需要的其他小伙伴,谢谢!

推荐文章:

亿元Cocos小游戏实战合集2.0

亿元Cocos小游戏实战合集1.0

老板说最近这款游戏很火让我抄,可是我连玩都玩不明白...

这款值68亿的游戏,你不实战一下吗?安排!

小伙伴说我的拼图游戏用Mask不能合批...

俄罗斯方块谁不会做......啊?流沙版?

最近很火的一个拼图游戏,老板让我用Cocos3.8做一个...

老板说拼图游戏太卷了,让我用Cocos做个3d版本的...

敢不敢挑战用Cocos3.8复刻曾经很火的割绳子游戏?

相关推荐
路光.2 小时前
Vue2升级Vue3处理原 UMD/CommonJS 打包文件,不是标准 ESM
前端·javascript·vue.js·vue3
黄华SJ520it2 小时前
门店预约系统开发:提升服务行业数字化转型
前端·数据库·系统开发
一只月月鸟呀3 小时前
移动端tap与click的区别 && 点透事件
开发语言·前端·javascript
雪隐3 小时前
AI股票小助手10-我用代码管住自己的手:一个普通人的市场观察笔记
前端·人工智能·后端
KaMeidebaby4 小时前
卡梅德生物技术快报|抗体筛选:抗体筛选中的噬菌体展示四参数调优——从流程设计到数据验证
开发语言·前端·javascript
甲维斯4 小时前
Opus5.0首测,瘫坐沙发!效果,时间,token皆无敌!
前端·人工智能
LVZ4 小时前
Skill + PVM 绝了,AI 直接帮你搞定环境问题了
前端
颜进强4 小时前
从零搭建私人 RAG 知识库:让项目决策真正“可检索、可追溯”
前端·后端·ai编程
颜进强4 小时前
Embedding 模型介绍:热门模型对比与应用场景
前端·后端·ai编程
颜进强4 小时前
LanceDB 基础使用:用 TypeScript 完成第一次向量检索
前端·后端·ai编程