Everyone can agree on VLC being the best video player, right? Game developers can agree on it too, since it is a great utility for playing multimedia in games, and/or have a video player included. However, disaster struck; Unity has now banned VLC from the Unity Store, seemingly due to it being under the LGPL license which is a “Violation of section 5.10.4 of the Provider agreement.” This is a contridiction however. According to Martin Finkel in the linked article, “Unity itself, both the Editor and the runtime (which means your shipped game) is already using LGPL dependencies! Unity is built on libraries such as Lame, libiconv, libwebsockets and websockify.js (at least).” Unity is swiftly coming to it’s demise.
Edit: link to Videolan Blog Post: https://mfkl.github.io/2024/01/10/unity-double-oss-standards.html
Found the article where the screenshot came from, and wow it’s even more infuriating! The VideoLAN folks tried to work with them for months, and Unity seems to have cranial rectal inversion.
Unity is probably developing their own video player and they wants devs to pay them for it, not use VLC for free.
This is almost certainly the case
Spot-on, this would be my bet too.
Capitalist making decisions based only on increased ROI?
Say it isn’t so.
Fuck I hate this “single goal” system.
So fucking short sighted.
😑↔️🍑
For anyone wondering:
- There was a plugin on Unity Store that acted a bridge between Unity and libVLC, which allowed developers to make video players inside the game engine. As the post says, it got removed.
- This plugin isn’t made by VideoLAN, it’s made by a company named Videolabs that includes several people who supposedly have contributed a lot on VLC and FFMPEG.
- The Videolan team made a blog post about this, if you want to know more: https://mfkl.github.io/2024/01/10/unity-double-oss-standards.html
VideoLabs is made up of many of the same contributors of VideoLAN, including Jean-Baptiste Kempf themself. It is arguable that this is in fact Unity banning VideoLAN’s VLC bridges for media playback in Unity.
Front VLC blog, link in post above
"After months of slow back-and-forth over email trying to find a compromise, including offering to exclude LGPL code from the assets, Unity basically told us we were not welcome back to their Store, ever. Even if we were to remove all LGPL code from the Unity package.
Where it gets fun is that there are currently hundreds if not thousands of Unity assets that include LGPL dependencies (such as FFmpeg) in the Store right now. Enforcement is seemingly totally random, unless you get reported by someone, apparently."
Any reason not to expect all the others to get reported now? If Unity wants to tear themselves down, might as well speed it up.
According to the article, unity is literally built on software that uses this licensing, so it’s weird that they’d start going against it now. Their runtime literally includes it
Time to report Unity to itself so it can ban itself from its store.
Is there legal grounds for selective enforcement of policies like that?
Depends on the reason they chose to have selective enforcement.
A good analogy is kicking someone out of a bar. If you do it because they’re a dickhead… perfectly fine. But if it’s because they’re black… not OK.
… so what you do is set up a rule that everybody will break - “no drinking with shoes on” - and only enforce it against people you want to kick out 👍
Hey that sounds familiar!
What pisses me off about the whole Unity thing is that if Unity makes itself eat shit then it just further consolidates engines into fewer hands. Godot is great and all but it doesn’t have everything Unreal has (I’m not throwing shade it’ll get there dw) and I really really don’t want Epic to have a bigger stranglehold on the games industry than it already does.
Unity had its niche and if the executives could stop fucking around it would be lovely to have as a competitor in the landscape.
Also to everyone saying “just don’t use Unity”: there are a lot of people who have put a lot of time and money and effort into learning Unity and it’s not exactly as easy as you think to just switch to an entirely new workflow. You also have to consider how impractical it is to switch engines mid-development. There’s a reason why Unreal 5 has been out for multiple years and we’re only just seeing games developed with it now. Developers (especially ones with big budgets and all the caveats they come with) don’t want to ship a game with the latest and greatest engine if there’s kinks to be worked out. This is why you still see Unreal 4 in games released today.
It almost makes me think the higher ups got paid to kill Unity. All the C-suite got golden parachutes if they kill the project now.
Then I remember OGL and the fat lack of competition they had, and remember C-suite often don’t know what they’re actually in charge of. Malice vs stupidity and such.
The C suites have nothing to lose. Best case, they make more money, worst case they get replaced and hired as a C suite by some other company.
Epic donated hundreds of thousands of dollars to Godot when Unity was being dumb this summer, so either they think an open-source project is on the brink of making their competitor unprofitable and collapse, and think enough of the studios jumping ship will come to Unreal to cover that sum, or they’re concerned that someone will start enforcing antitrust laws and want something to point at to say they’re not a monopoly.
Epic is just a troll company. They donated to Godot when it served as a jab in the side of their competition (unity). Their entire business model is to inflict Stockholm Syndrome on their users via free games.
Their entire business model is Fortnite
Both. Definitely both.
I think they saw it as an opportunity to wash their image. “Look, we’re the good guys” kind of thing.
Both and also Embrace, Extend, Extinguish.
You are 100% correct of course. I do want to add that depending on the works/software of others is also a risk as well. It’s the tradeoff made when the developer decided not to build an engine from scratch. If the game engine company becomes shaky, the developers have to weigh that in when looking at the cost of switching or not. Or maybe everything will be fine.
there are a lot of people who have put a lot of time and money and effort into learning Unity and it’s not exactly as easy as you think to just switch to an entirely new workflow.
Honestly, that’s the price they pay we pay for not doing things right the first time.
I’m not sure why people have convinced themselves that they can just ignore problems and they will go away. Software licensing is an issue that pervades all development. Ignoring it is asinine and will lead you to wasting time and money on bullshit.
When I was picking an engine to learn, I chose Godot. Now I’m not bitching when Unity is dying because I said it was going to die years ago. People just like to ignore problems until they can’t.
Godot is fine for solo/very small indies and people trying to learn gamedev, but it is not ready quite yet. Most devs still are stuck using proprietary engines.
Lmao they really don’t want anyone to keep using their engine anymore
LGPL requires distributing the license with any code. I imagine unity does that with the core code, but it would be difficult to enforce that for assets distributed in their store, which they would be liable for legally. I imagine this will be resolved, but I no longer use Unity so idfc
From my understanding there are other third-party assets in the Unity store which use the LGPL but are not being removed.
Is there any information on them being given a pass?
Generally stuff like this goes in waves. I have no experience with the unity store, but it wouldn’t shock me to find out they haven’t always (and still might not…) required “apps” to list their licensing. Meaning this would be a somewhat manual effort done by a severely reduced staff.
And I’ll just add on that I expect this to happen to the other “asset” stores. In industry, “GPL is cancer” and “LGPL is herpes”. GPL can straight up “kill” a project and LGPL is usually a mass of headaches that are mostly manageable but can still “cause problems” at times.
I expect they will be unless they’re small enough to fly under the radar
No it won’t. This is 5.10.4 of the Unity Provider agreement, it’s total bullshit.
Provider represents and warrants that its Assets shall not contain (a) any software licensed under the GNU General Public License or GNU Library or Lesser General Public License, or any other license with terms that include a requirement to extend such license to any modification or combined work and provide for the distribution of the combined or modified product’s source code upon demand so that Customer content becomes subject to the terms of such license; or (b) any software that is a modification or derivative of any software licensed under the GNU General Public License or Library or Lesser Public License, or any other license with terms similar thereto so that Customer content become subject to the terms of such license.
Why is it bullshit? AFAIK, Unity wouldn’t be able to comply with LGPL without supplying their own source code, so then this would be the only logical outcome.
Unity let me go earlier this week, so I’m really not in the mood to defend them, but this is correct. I’m on the Unity hate train as much as the next guy and i feel this is pretty cut and dry.
Sad to hear it, hope you’ll find something else soon.
Thankfully I’m in Canada where Collective Layoffs are heavily protected, and I have a generous package to keep me afloat until I find the right job.
It is a sad week for tech because not everyone has these protections.
No, it’s not correct. Unity’s management might think that’s how the LGPL works, but they’re wrong.
The fact that they prefer to not do something at all instead of going through the hassle of doing something properly has always been a thing at Unity. It’s correct that it is for business reasons and not necessarily logical ones.
You are only required to give source code for changes to that part for LGPL code. So only the library requires that.
Other game engines supply source code. If Unity wants any hope of redemption they should let us inspect wtf it actually does on our computers (edit: and let us make it work for our needs).
You CAN access the source code, but it’s for corporate/enterprise partners. afaik
Charging for access is actually fine under L/GPL but after that you’re then free to redistribute at your own price. I imagine Unity heavily control how you use and distribute your modified engine (nonfree).
Unity uses the LGPL for parts of their own products. The GPL in most cases only requires that derivative work must also be shipped with the same license. The source code from providers doesn’t have to be distributed by unity, it has to be distributed by the provider. In this case that would be videoLAN, which has all their source code on GitHub. You can read the text of the LGPL here, and this is VideoLAN’s post about the situation.
That puts things into perspective, thanks!
The GPL in most cases only requires that derivative work must also be shipped with the same license. The source code from providers doesn’t have to be distributed by unity, it has to be distributed by the provider.
This is incorrect. The distributor of derivative works in binary form is responsible for providing the source code. They can refer to a server operated by a third party, but if that third party stops providing the source code the distributor remains obligated to ensure that it is still available. The only exception is for binaries which were originally received with a written offer of source code, where the offer can be passed on as-is, but that only applies for “occasional and non-commercial” distribution which wouldn’t work here.
Can you point to the section of the LGPL that describes what you’re claiming?
Section 6 of the GPLv3, which the LGPLv3 includes by reference as one of the required distribution terms in paragraph 4.d.0:
Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
(emphasis added) There is the alternative of following 4.d.1 instead, but that’s only if the application links against a shared library already present on the user’s computer system—it couldn’t be distributed with the program.
GPLv3 section six offers five alternative methods of satisfying the obligation to provide source code. The first (6.a) applies only to physical distribution and must include source code with the physical media. The second (6.b) also requires physical distribution plus a written offer to provide the source code to anyone possessing the object code. The third (6.c) is the one I mentioned that applies only “occasionally and noncommercially” for those who received a written offer themselves under the previous clause. The fourth option (6.d) allows for the source to be provided through a network server:
If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
The fifth and final alternative (6.e) pertains to object code provided through P2P distribution, with the same requirements as the fourth method for the source code.
Section A in section 3 of the LGPL is the out here for unity:
a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
As long as there is prominent notice with the distribution of the plugin, unity doesn’t need to distribute the source code.
I thought the point of the LGPL was to allow this sort of usage without requiring the release of source code. It’s an extension of the GPL to remove those requirements isn’t it?
I admit this is totally not my area, but couldn’t you say that about literally any online source that sold software from Steam to the Apple App Store?
Not just license. You also need to link to it as a shared library and allow users to replace it with their own build of the library. Meaning you can’t use stuff like DRM and anticheats.
Yup fair point I didn’t know that. Unity presumably does this with dlls that a technical user can easily swap out. In principle an asset store script could do this, but it would be very difficult to verify and enforce so I can see why they’d just ban the license outright as a CYA thing.
Maybe the answer is to distribute a vlc dll separately and only ship a linking/driving script via the asset store.
Technically it can be statically linked, but then you would need to provide artifacts (for example, object files for the non-LGPL modules) enabling the end user to “recombine or relink” the program with a modified version of the LGPL code.
Dynamic linking is usually simpler, though. And the DRM issues apply either way.
Not exactly. The LGPL inherits the methods of conveying source code from section 6 of the GPL, which has a number of different options. You can bundle the source code along with the compiled version, but you can also do it simply by including an offer the end user can redeem to get a copy of the source. For example you could include a link to the source code.
Okay but what’s the real reason?
💵💵💵💵💵💵💵💵💵
Yes but how
Other folks in this thread are speculating that they want to put their own video player in the store.
And charge extra?
Well the VLC one was free, and I’m guessing theirs won’t be.
Why does VLC need to be in the Unity store when you can download it directly from videolan.org?
Not a game developer but I have a hunch that its for displaying videos within the game. Like a cut scene.
Everyone can agree on VLC being the best video player, right?
cough mpv cough
We already know mpv causes upper respiratory infection, cover your mouth already.
Yeah, VLC is great and has been great for a long time. But the MPV-based stuff is amazing too and just seems faster, cleaner, etc. Which I’m sure is due to being much more focused, just using ffmpeg, without decades of legacy code, etc.
My biggest problem has been that I find nearly all of the MPV-based players I’ve used (mpv-player itself, or stuff like IINA or Celluloid) either have a massive lack of configuration options, overly minimal UI, or both. On Windows, Mac, or Linux
I don’t need integration with some obscure external timing system by default like VLC offers, and that kind of thing. But it’s weird that so many players don’t offer you the ability to enable basic plugins. Or change playback speed. Or configure keybinds. Or continue playing the next file in a directory automatically. Or even offer the ability to display the most basic info about the file being played, like codecs. Etc etc.
Or in a couple of cases they seem like more of a mess than VLC.
My biggest problem has been that I find nearly all of the MPV-based players I’ve used (mpv-player itself, or stuff like IINA or Celluloid) either have a massive lack of configuration options, overly minimal UI, or both. On Windows, Mac, or Linux
Have you checked the manual? The amount of options is staggering, bordering on esoteric. The only catch is most of them need to be setup either through CLI or .ini files.
But it’s weird that so many players don’t offer you the ability to enable basic plugins. Or change playback speed. Or configure keybinds. Or continue playing the next file in a directory automatically. Or even offer the ability to display the most basic info about the file being played, like codecs. Etc etc.
I can’t say anything for the frontends, but you can use plugins for basically anything in mpv itself, including the issues you’ve listed. Again, you need to setup the whole thing and read the manual, but it’s there. And yes, I see the irony in all the effort needed to do basic stuff like this when something like VLC just works™, but to me that’s the beauty of mpv, it’s basic and minimalistic yet you can make it work however you like given time and patience.
Btw you can check the file info by pressing
i
on the keyboard while playing something.
Off topic: ff2mpv is awesome. It supports many video sites (I believe everything youtube-dl does) and opens the video on a page/link in an external mpv window.
This helped me mirror a video without downloading to read the embedded subtitles (why uploads a mirrored video with subtitles?). Also playback speed and all other advanced features mpv supports are really useful
MPC-BE!
Just report every other package that includes ffmpeg.
Some of these comments are wack. “Just stop using Unity” bro some people don’t get that choice.
Brb let me completely rewrite all my unity projects and learn unreal in a single day
You’re gonna take a whole day? Why you slackin so much? Git gud scrub!
Ohhh no, VLC has some problems with… who’s this Unity fellow again?
Wasn’t that the hivemimd robot guy from Mass Effect
No no. He’s the evil robot from the Marvel universe.
Nope, its the hive mind lady from Rick and Morty
Nope it’s that EA game with Creed the boxer
Stop using Unity, you hopeless retards
OH FUCK WOW ITS THAT FUCKEN SIMPLE HOLY SHIT MY MIND IS BLOWN.
Hopeless retard.
Removed by mod
Yeah you know just redo absolutely everything that you’ve done so far. Simple You got an extra 1000 hours lying around right?
Some people can afford to move their project to a different engine, and others may be in situations where they can’t. Calling someone a retard or imbecile or whatever doesn’t change that. That might be too much for some citizens of the internet to understand though.
If you care about the integrity of your project and saving it from the claws of a corporation who will just as easily lock you out of it forever whenever they feel like it, yes.
Actually put some time, effort and sacrifice into doing what’s right, you hopeless coward
I kind of care more about my coworkers and I being able to eat.
Stop making excuses. If you don’t take a stand and do something on principle instead of your pocketbook, then Unity is not the problem, you are. Whether you want to accept it or not.
You can go get a job at McDonald’s and survive. You can’t use your circumstances to justify enabling evil anymore. Not with me.
So you’re suggesting him to:
Drop out of his job (which you may not know).
Stop earning an amount of money that, may or may not be utterly necessary to keep his lifestyle (which you may not know).
Spend months or years learning a new technology, meanwhile unemployed or with a job that may or may not sustain his previous expenses (expenses which you may not know).
Re-make every single project that he owns to a new platform while adapting every single thing to a new environment, meanwhile solving a waterfall of bugs and refactoring problems, ultimately consuming hundreds of hours (bugs which you may not know).
After living miserably for a while, hunt for companies that somehow are using an open source tool that, most of the time, won’t tick all the boxes a company needs from a tool (companies and boxes which you don’t know).
Miraculously find such company and, miraculously rise to a position high enough that you can make a decision which changes the whole core of the development team, impacts licensing for other tools, new hires, compatibilities, and god knows what more down the line (changes which you may not know).
You’re suggesting that he goes down years of an even more uncertain path… just because you feel like It? To me It sounds like an Evil person’s plan. How can you be so assertive saying something which you may not know about? Jesus
Heh McDonald’s and survive. You sound like a real family man, or are mommy and daddy still paying your bills?
Further more, you project like theres no tomorrow. Your circumstances may be fine to stop the world and port. Honestly most aren’t.
Ok I’ll stop joking.
Will our next project be in unity? Probably not but maybe. What makes that decision? The cost of paying salaries to start over from scratch. We have a working unity framework, it has working plugins, hooks analytics, ads and sales for a ton of different companies. Some of those ads are iron source, now we’ll pay marketing to find and negotiate a new vendor. We actually ran the numbers. The new costs they were demanding were a shit sandwich, but they were still less than the cost of moving.
You also have Godot’s lack of console support, which doesn’t affect me (at the moment) but does affect a lot of other people.
Unity has an app store?
So does most popular game engines (like Unreal and Godot) to give game developers easier access to certain content they can use in their games.
Godot doesn’t have an asset store yet actually, but they’re planning on releasing one soon.
They do have an Asset Library currently, but it is all free, thus not a store.
I went out for a walk earlier, not too far just couple of miles to clear my head. Get some fresh air. Anyway, regardless of how many signs my council like to spend money on to display the consequence of leaving your dogs shit, people still do it. Fact is, I saw a dog shit and it’s getting harder to differentiate that dog shit and Unity.