Cocos Creator 3.8 → COCOS 4: A Solo Indie Migration Playbook
TL;DR: I ship a Cocos Creator 3.8 WeChat mini-game in production and I have not migrated to COCOS 4 yet — and I won't for that project. But "should I" (my open-source breakdown) is a different question from "how would I if I did." This is the second one: a staged, honest migration playbook for a solo dev, covering what actually changes in your toolchain, the real breaking points the changelogs list, and the go/no-go gates that keep a migration from eating your weekend. Skim the diagram, read the gates.
1. Who this is for (and who should close the tab)
This playbook assumes: you have a working 3.x project, you're a team of one or two, and you're weighing a move to COCOS 4. It is not for you if:
- Your live target is a WeChat or HTML5 mini-game shipping today — COCOS 4's mini-game support is still rolling out gradually. Stay on 3.8 (I explain why in the open-source piece).
- You just want "new = better" — it isn't, for a stable shipped game. The engine being open source doesn't pay your rent this quarter.
If your next project needs Steam / native targets and a hard MIT requirement, then yes, read on — this is exactly the case where COCOS 4 earns its place.
2. What "migrating" actually means now
The first mental shift: COCOS 4 isn't "Cocos Creator 4." The bundle you know splits into three pieces, and only two of them are what the MIT announcement covers:
- COCOS (engine) — open source under MIT. This is the part you can read, patch, and fork.
- cocos-cli — the headless command line. Also open source. This is where build and preview move.
- PinK (IDE) — the new editor. It's where the visual editing from Cocos Creator migrates, it's built on a Cocos-customized VSCode with built-in API/MCP/skill/agent hooks, and as of this writing it ships in alpha behind activation codes. The editor is the part you still depend on daily — and it's the part that is not open source yet.
So the honest framing: you're not "upgrading an engine," you're swapping a proven closed editor (Cocos Creator) for a closed alpha editor (PinK) wrapped around an open engine + CLI. The open-source win is real, but your day-to-day editing still rides on something in flux.
3. The real migration surface (the breaking points)
"Evolution of 3.x, SemVer, six-month deprecate-to-remove window" sounds gentle. It is — compared to a rewrite. But the early COCOS 4 / cocos-cli changelogs list concrete breaking points a solo dev will actually hit. The ones that matter for a typical 3.x game:
- Builder web-mobile plugin migration. The web/HTML5 build pipeline is being restructured. If you target web or WeChat, expect build config and plugin wiring to shift.
- Builder Android package-structure migration. Android output layout changes — relevant the moment you add a Google Play target.
- PreviewService breaking change. Asset preview moves to an independent preview page. Anything that scripted the old preview path breaks.
- Assets material-related API. New material APIs land via the CLI — your custom material/shader tooling needs a check.
- Spine runtime version selection. COCOS 4 lets you pick the Spine runtime version in editor/preview — good, but it's a new knob you must set deliberately or animations silently mismatch.
None of these are fatal. Every one of them is a place where a 3.x project fails to build or renders wrong until you touch it. The playbook below turns that list into a checklist instead of a surprise.
4. The staged migration plan (with go/no-go gates)
I'd never "just upgrade." I'd run it as a branch with hard gates — each stage has a stop condition. If a gate fails, you don't proceed; you stay on 3.8 and revisit in a month.
Gate 1 — Assess (day 0)
Write down your hard reasons. "Open source" is not a reason to move a shipped game; "I need a Steam build and a MIT license for a client contract" is. If your reasons survive that sentence, proceed.
Gate 2 — Branch (day 0)
Branch from a clean 3.8 main. Never migrate in place. You want a one-command rollback to a building 3.8 game. If your repo isn't clean enough to branch cleanly, that's your first task, not the migration.
Gate 3 — Toolchain (day 1)
Install PinK and cocos-cli, open the project. If PinK can't open your scene graph without throwing, or the alpha is unstable on your OS, stop — the editor is your daily tool and it's not ready. This gate alone has killed more than one "let's try COCOS 4" weekend.
Gate 4 — Build & assets (day 1–3)
Rebuild for your target. Walk the breaking-point list: web-mobile build config, Android package layout, PreviewService path, material APIs, Spine runtime version. Each item is a checkbox. If the build is green and assets render, proceed; if two or more need deep rework, reconsider.
Gate 5 — Runtime & perf (day 3–5)
This is where 3.8's maturity shows. My 3.8 game has a custom PerfTier and engine subpackaging I tuned for low-end phones (the bundle-size teardown covers it). On COCOS 4 you re-validate all of it on a real device — frame time, first-load size, draw calls. If perf regresses and you can't explain why in an afternoon, that's a no-go.
Gate 6 — Go / No-go (day 5+)
If every gate passed: merge, ship the new target on cc4, keep 3.8 main as a fallback branch for a release or two. If any gate failed: stay on 3.8, set a calendar reminder for 30–60 days out. The six-month deprecation window means you're not late — you're early.
5. The WeChat mini-game special case
I keep calling this out because it's my actual situation. A WeChat mini-game lives or dies on the mini-game build target and WeChat DevTools integration. COCOS 4's mini-game support is described as gradual, and PinK is alpha. For a game already earning or learning in production, that combination is a hard stop: you'd be trading a complete, stable pipeline for an incomplete one to get a license label you don't need. My 3.8 game stays on 3.8. COCOS 4 becomes interesting for me the day I start a new project whose first target isn't WeChat.
6. My call
Same as the open-source piece, now operationalized: branch, don't lift-and-shift; gate, don't hope. COCOS 4 is the future of the engine and the MIT story is genuinely good — but "future" and "this afternoon" are different deployments. For a solo indie, the cheapest migration is the one you can undo, so make sure every stage has a clean exit before you start it.
7. Related reads
- COCOS 4 Open Source: Time to Leave Cocos Creator 3.8? — the "should I" before this "how would I."
- Cocos Creator vs Unity vs Godot: My Solo-Indie Pick (2026) — pick by distribution channel first.
- How I Cut My Mini-Game Bundle Size 60% (Engine Subpackaging + PerfTier) — the 3.8 perf work you'd re-validate on COCOS 4.