The short answer is: most mid-project engine migrations are not worth it unless there's a compelling reason that can't realistically be solved in your current engine.
The cost isn't just rewriting code. You're effectively rebuilding large parts of the project while trying to preserve the game's design.
A useful way to evaluate it is to ask what is actually driving the desire to switch.
It may be worth migrating if:
- Your current engine has a hard technical limitation that blocks the game's core features.
- Licensing or business terms have fundamentally changed your project's viability.
- You're early enough that less than ~20–30% of production content has been created.
- Your team already has significant experience with the target engine.
- The remaining development time is substantially longer than the migration effort.
It's usually not worth migrating if:
- You're mainly frustrated by the current workflow.
- You think another engine will make development significantly faster.
- Most of the game already exists (levels, UI, gameplay systems, save systems, tools, assets).
- You're approaching milestones like Early Access, beta, or launch.
Unity → Unreal
This makes sense when:
- You need cutting-edge rendering, large open worlds, or advanced graphics.
- Your team is comfortable with C++ and Unreal's architecture.
- Console or AAA-style production is the goal.
But expect to rebuild:
- Gameplay systems
- UI
- Animation state machines
- Editor tooling
- Save systems
- Build pipeline
- Most custom shaders and materials
Asset models and textures can often transfer, but gameplay rarely does.
Unity → Godot
This is attractive if:
- You want an open-source engine.
- The project is primarily 2D or modest 3D.
- You prefer a lightweight workflow.
However, there is no "import Unity project" button. You'll still rewrite nearly everything:
- C# logic (or convert to GDScript/C#)
- Scenes
- Prefabs
- Materials
- Animations
- UI
A practical rule
If migration will take more than about 20–30% of the remaining development effort, it's often better to finish in the current engine and use the new engine for your next project.
For example:
- Project is 30% complete: Migration may be reasonable.
- Project is 70% complete: Finishing is almost always cheaper.
- Project is feature-complete and needs polish/content: Definitely finish.
Before committing
Instead of migrating the whole project, build a vertical slice in the target engine:
- One level
- One playable character
- One enemy
- Basic UI
- Save/load
- One representative visual effect
Track how long it takes compared with your estimates. Teams often discover the migration is either much easier or much harder than expected.
My recommendation
Unless you're facing a major blocker—such as engine licensing concerns, an unresolvable performance issue, or a missing feature that's central to your game—I would generally recommend finishing the current project in Unity and planning the next project around Unreal or Godot if they better match your long-term goals. The opportunity cost of pausing feature development to rebuild existing work is often larger than expected.
If you can share:
- the game's genre,
- whether it's 2D or 3D,
- your team size,
- how far along the project is (roughly),
- and why you're considering leaving Unity,
I can give a more tailored assessment of whether a migration is likely to pay off.