为什么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复刻曾经很火的割绳子游戏?

相关推荐
MomentYY1 小时前
AI 到底是“懂”,还是在“猜”?
前端·人工智能·ai编程
鹏毓网络科技1 小时前
Cursor Rules 文件配置实战:3 个隐藏参数让我每月少写 40% 样板代码
前端·github
没烦恼3011 小时前
无痕模式下 HTTP\-First 拦截引发的“页面刷新”误判
前端
文心快码BaiduComate1 小时前
从个人提效到组织提效:Comate辅助构建自我进化的AI研发系统
前端·程序员
hunterandroid2 小时前
Compose 状态管理:remember、rememberSaveable 与状态提升
前端
星栈2 小时前
Dioxus 接数据库最容易写歪的 3 个地方:sqlx + SQLite 怎么接才顺
前端·rust·前端框架
晴虹2 小时前
vue3-scroll-more:横向滚动条-元素或页签过多滚动显示处理的组件
前端·vue.js
代码搬运媛2 小时前
Claude 全栈开发专用 Rules 配置
前端
PedroQue992 小时前
uni-router v1.7.0重磅更新:守卫重定向自由掌控
前端·uni-app