This repository has been archived by the owner on Apr 9, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I never quite felt the MIT license correctly represents what I want for this project. Recently, I have learned about weak copyleft licenses and, in particular, the MPL 2.0 and I've decided to make the switch for a variety of reasons.
Blackjack is made as an open source tool for the community, and I want it to remain open source for everyone to use. With permissive licenses like MIT, anyone could fork, add improvements and keep them proprietary, benefiting of the hard work that has been put into it so far. I am not happy with this possibility: I believe Blackjack itself should remain open, and all contributions to it must be made open so they can benefit the majority of its users.
Nevertheless, Blackjack is a tool aimed at indie game developers, and it would not be viable to ship it with your game if I were to choose a strong copyleft license like the GPL 3. This is why I've chosen a weak copyleft license, and one where the copyright applies on a source-file level. What does this mean? This means you can include Blackjack into your game by static linking, dynamic linking, copying all the source files in your app, or whatever other means come up with. And in doing so, all of your game code remains yours: This is not a viral license, using or shipping blackjack with your game will not require you to open source any of your code, and you can still sell copies of your game which include part (or all) of Blackjack's source code in it. There's only one catch: If, while developing your game, you edit one of Blackjack's source files in any way, you are required to disclose and share those modifications with the community.
I believe this is a fair compromise of a license which gives enough freedom Blackjack's target audience to use it in any way they want without major restrictions, but prevents exploitation from bad faith actors to some degree.
Last, but not least, and perhaps more excitingly: The change to MPL enables including other MPL (and other compatible) licensed software! In the very short term, this means I'll be taking a look at libigl to bring boolean operations and UV unwrapping algorithms into Blackjack, at least until someone takes the time to rewrite them in Rust 🦀