Picture taken from their Twitter
I bet they will do so for their next game but reimplementing a entire game is FAR easier said than done, something like that could very well bankrupt a smaller studio!
I mean it’s easy to reimplement entire games if you’ve built it modularly. Just swap your core game logic to run on another library and the game works the same it did before.
Edit: 'course, exceptions exist like if you wrote everything using their proprietary coding language, instead of using something universal.
Edit 2: It MAY still be possible that a translation/compiler exists that’ll run as a plugin in a proprietary engine, and converts it into something universal.
The surface area is huge. This is not an SQL database where you can just change the ORM’s backend.
Technically you’re not wrong. The work is done, the logic already exists.
But systems like Unity aren’t like other code where you can rip one section out and still have 80% of a working codebase. Game engines are as fundamental to most of their game code as the language it’s written in. It’s not like you can just drop things into unreal or godot, connect a few interfaces and call it good. You still have to write the whole thing from the ground up.
As I said, it depends on how it’s built. And how proprietqry the engine is.
Unity from what I know supports universal code/mesh/texture formats, but if the devs opted for the “easier to use” proprietary systems- well, that’s a problem.
Now what I don’t know is how easy are scenes to export in Unity. They’re probably built with Blender or something else though in most cases, unless Unity has drastically changed.
It also depends on how many engine unique features you used, and what optimizations you applied. It’s certainly possible, but doing it without changing any game logic will require very complicated translation layers which will likely cause performance issues. It might very well be easier to treat it as a porting and refactoring project. You might not even realize which behaviors are unique to each engine if you don’t regularly develop in multiple engines.
This is true, and I vouch for gamedevs to first test other engines to see the differences.
Calculating for the future is extremely important in pretty much everything.
Also I wouldn’t say there would be performance issues, unless you somehow completely screw up coding and compiling said code.
Projects should work on top of a bottom layer, or translation layer as it’s sometimes called; game logic calls for functions from there, instead of directly from the engine. This is also important for code security.
_move_entity might be calling the proprietary unity_move_object with a different reg stack, but when compiled the performance should be +/- 0.
I’ve written game engine wrappers and converters for all sorts of code and file types.
It would honestly be easier to fire up Unreal Engine 5 or Godot and start again.
Game Dev isnt just code. Remaking a project from scratch is a massive undertaking. Porting the code could be difficult too especially if relying on core unity libraries.