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.
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.
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.
Not untrue, but it helps to adapt your future projects if done in such a way.
It does require more expertise, and it takes more time, thus it’d have to be the first thing done for the project, not something you do after everything’s done already.
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.
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.
Not downplaying the effort, it still takes time. But not impossible.
How you made it all matters in situations like this.
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.
The things you are suggesting are adding complexity and therefore cost.
It does take a higher level of expertise to adequately abstract away engine specific limitations and requirements.
It’s again an even higher level of expertise and therefore expenditure to account for performance issues with these abstractions.
Not untrue, but it helps to adapt your future projects if done in such a way.
It does require more expertise, and it takes more time, thus it’d have to be the first thing done for the project, not something you do after everything’s done already.