They should honestly just move their engine anyway. Unity has played their hand, and showed they are willing to make changes to their pricing retroactively.
Yep, they might roll back the changes this time but they’ve shown where they want to be and now we know. They’ll work their way slowly towards it instead of a sudden change now and it will be less noticeable and harder to fight legally when they do that
The exact same thing was said about Reddit execs like Huffman. They never cared enough to compromise. We’ll see if the Unity execs are similarly terrible people, whose greed will destroy the company. Seems like the trend these days.
I think most developers can see the writing in the wall there, but switching mid-way through a project will be costly and time consuming. If the changes were fully rolled back, I would still bet many would finish what they working on and then switch for their next game.
Problem is that if your current unity game is successful this year, and then they reimplement the retroactive charge next year, you’re still screwed. If you can afford it then it’s best to change now in order to avoid that mess that might mean you have to delist your game
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.
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.
Assets are safe, but they often need to be re-rigged or re-formatted. It’s still a non-trivial task though. Levels will need to be rebuilt, open worlds have to be started almost from scratch, and a lot of other things I can’t think of off the top of my head.
The real problem is underlying systems. Unity often handles networking, render engines, game logic and most other things. The reason Unity was so popular was because it was easy to use (and free). Game code will need to be at minimum heavily refactored, if not rewritten, as anything that interfaces with the engine needs to be changed over. Just like you can’t just port c++ -> c# without major changes, you can’t port a game engine without major changes too.
Unless theyve built everything as a separate code bundle, only interacting with the engine at a bare minimum, there’s no way to change with minor impact. It’ll be a huge project that will also require the engineers to learn a new stack that behaves differently, further slowing down the process.
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.
If you don’t use anything from the engine itself, implement everything from scratch, only using the engine as an entry point that launches your own code, and pay unity two thousand dollars per year per seat for that privilege - I guess porting should be fairly easy.
If you ask me engines should be free for most indies (UE, Godot?), because they’re not making millions.
But yeah. I get it’s not feasible for most new devs especially, and senior devs have better things to focus on.
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.
This. It’s not easy or trivial but as a long term strategy, they should already plan investing efforts into consolidating something like Godot or another FOSS engine. They should play like you calm down an abuser you can’t just escape yet while planning their demise when the time has come.
They should honestly just move their engine anyway. Unity has played their hand, and showed they are willing to make changes to their pricing retroactively.
Yep, they might roll back the changes this time but they’ve shown where they want to be and now we know. They’ll work their way slowly towards it instead of a sudden change now and it will be less noticeable and harder to fight legally when they do that
They’re cranking the bad PR to 11 so they can dial it back to 9 and point to it as a compromise.
The exact same thing was said about Reddit execs like Huffman. They never cared enough to compromise. We’ll see if the Unity execs are similarly terrible people, whose greed will destroy the company. Seems like the trend these days.
https://kbin.social/m/technology@lemmy.world/t/455494
There it is :)
I think most developers can see the writing in the wall there, but switching mid-way through a project will be costly and time consuming. If the changes were fully rolled back, I would still bet many would finish what they working on and then switch for their next game.
Problem is that if your current unity game is successful this year, and then they reimplement the retroactive charge next year, you’re still screwed. If you can afford it then it’s best to change now in order to avoid that mess that might mean you have to delist your game
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!
Alright guys, time to get more copies of slay the spire
Just buy them, don’t install them though. That’ll charge them soon
Slay the spire isn’t on unity, so that’s fine
That will be charged after January 1st 2024.
Alright fine. But I already own it on three systems… takes out wallet
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.
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.
Assets are safe, but they often need to be re-rigged or re-formatted. It’s still a non-trivial task though. Levels will need to be rebuilt, open worlds have to be started almost from scratch, and a lot of other things I can’t think of off the top of my head.
The real problem is underlying systems. Unity often handles networking, render engines, game logic and most other things. The reason Unity was so popular was because it was easy to use (and free). Game code will need to be at minimum heavily refactored, if not rewritten, as anything that interfaces with the engine needs to be changed over. Just like you can’t just port c++ -> c# without major changes, you can’t port a game engine without major changes too.
Unless theyve built everything as a separate code bundle, only interacting with the engine at a bare minimum, there’s no way to change with minor impact. It’ll be a huge project that will also require the engineers to learn a new stack that behaves differently, further slowing down the process.
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.
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.
Well I’d say that was true 5 years ago. Is it still? I’d not be so sure.
Small projects might as well start from scratch.
But projects with years of devtime are best ported.
The surface area is huge. This is not an SQL database where you can just change the ORM’s backend.
Depends how it’s built.
If you don’t use anything from the engine itself, implement everything from scratch, only using the engine as an entry point that launches your own code, and pay unity two thousand dollars per year per seat for that privilege - I guess porting should be fairly easy.
If you ask me engines should be free for most indies (UE, Godot?), because they’re not making millions. But yeah. I get it’s not feasible for most new devs especially, and senior devs have better things to focus on.
It’s more a code principle you’d stand behind.
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.
Exactly. They should take this as the warning it is, and start work on moving to an engine not run by morons.
How can it even be applied?
This. It’s not easy or trivial but as a long term strategy, they should already plan investing efforts into consolidating something like Godot or another FOSS engine. They should play like you calm down an abuser you can’t just escape yet while planning their demise when the time has come.