许可证,法律与协作
在你正式开始为你的mod编写实际内容之前,你需要了解下面的内容。它们虽然并不直接涉及你的mod内容,但是其重要性不可忽视。
本教程采用的许可证
本教程的文字部分,在没有特别标明的情况下,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
本教程 的代码部分,在没有特别标明的情况下,采用BSD-3-Clause协议(The 3-Clause BSD License)进行许可;在有标明的情况下,该片段以标明的许可证进行许可。部分代码可能来源于0 绪论 > 前言
中提到的mod,为了尽可能地减少学习和使用障碍,只有在涉及mod核心功能的情况下,才会被明确标为原本的协议(通常是有附加条款的GPLv3),未明确标明的按BSD-3授权。
许可证全文见-1 附件
。
省流
以下内容不是一个许可证,仅为便于理解而只强调一些关键点,没有法律价值。请以上文提到的许可证内容为准。
对于文字部分:
你可以对这些内容自由地复制、分发、修改、再创作,并将演绎后的作品以其他许可证发布。但是你必须提供适当的署名,包括但不限于指向本教程的链接、本教程的许可声明、作者名称、作者网站等。供参考的署名内容见附件。你不可以将此部分及演绎作品用于商业用途。
对于代码部分,没有专门标明许可证,即使用BSD-3-Clause协议的部分:
你可以对这些内容自由地复制、分发、修改、再创作,并将演绎后的作品以其他许可证发布。你可以将此部分及演绎作品用于商业用途。你同样也必须提供如上所述的适当署名内容。你不可以以本教程或作者的名义来推广你的演绎作品。
对于代码部分,标明为GPLv3许可证的部分:
你可以对这些内容自由地复制、分发、修改、再创作,但必须将演绎后的作品继续以GPL许可证开源发布。你可以将此部分及演绎作品用于商业用途。你同样也必须提供如上所述的适当署名内容。除此之外,你还需要提供对这些部分的修改说明。
以下内容不是正式的法律建议,您可能需要咨询专业的法律工作者。
以下内容不代表Mojang的官方态度,只是个人理解或引用。
刚刚上面这一坨都是啥?
开源和开源许可证
开源即指将你的mod的源代码以某种形式公开(通常是利用GitHub)。借由此,社区成员容易地检查你的代码,及时填补漏洞,帮助你发现和改进问题,增加兼容性,乃至于为你的mod开发附属mod。
社区:在这里所说的社区,自然是指Minecraft玩家与开发者的总和。
开源(软件):不同的组织对开源可能有不同的定义,而由于一些历史和翻译问题,这些定义从“开源就指的是自由软件”到“开源只需要开放源代码”不一而足。我们在这里采用最宽松的定义——只要你通过某种公开途径开放源代码即可。
自由(软件):与开源不同,自由软件有着明确且严格的定义。自由软件基金会对其定义如下:
- 自由度0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
- 自由度1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
- 自由度2:用户可以自由地分发该软件的拷贝,这样就可以助人。
- 自由度3:用户可以自由地分发该软件修 改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。
一个软件只有提供了以上所有的自由给它的用户,才可以被成为自由软件。
由这里你可以看出:大多数mod都是开源的(我们也提倡和鼓励这样);但其中一部分mod可能有禁止商业使用的条款(例如CC BY-NC许可证),这使得这部分mod不是自由的。
你自然地拥有对你原创mod的著作权和版权。在一些时候,你需要向别人授予一些权利:
- 其他开发者想要帮助你改进模组,即使你开放了源代码的获取,他们也需要复制和修改的权利;
- 其他开发者想要将你的mod移植到Fabric,这需要复制、修改和再发行的权利;
- 玩家希望将mod文件转载到其他平台,这需要复制和分发的权利。
而随着时间与项目的积累,作者对作品著作权的放宽或限制,逐渐有了某种常用而公认的集合,这就是开源协议,也叫开源许可证。
成文的开源协议方便地规范了使用者的行为,从最紧到最宽松,大概有这几种分类:
- 保留所有权利(在作者没有写明开源协议时的默认选项,这不是一个自由许可证)
- 著左权许可证(Copyleft,限制较为严格的开源协议种类)
- 宽松许可证(限制较为宽松的开源协议种类)
- 公有领域许可证(限制最宽松的开源协议种类)
有哪些许可证可供我选择?
这里列举出一些常见开源许可证, 大体由严格到宽松,仅供参考。在做出选择前,你应该查看它们的详细内容:
-
"All rights reserved",即“保留所有权利”,简称ARR:这意味着你可以对mod的分发、修改等制定任何你想要的(在法律范围内)的限制。
- 非正式许可证:开发者在ARR基础上自行规定的许可证。当然,对普通人而言,很难写出在法律意义上与自己期望相符的、全面而有效的条款。不同国家的法律对非正式许可证可能有着不同的认可程度,在中国,据我所知目前没有与非正式许可证有关的判例或规定。
-
GNU General Public License v3.0,简称GPLv3:特点是让对你mod进行的修改也要开源。如果你有“我想看看你们都干了什么好事”的想法,那GPLv3很合适。
这里有一个小问题:你的mod符合GNU对“组合程序”的说明,而Minecraft并不是一个自由软件。这使得你不能直接使用GPL许可证。你可以选择借助GPLv3的第七节,参考**这个说明**,为MC添加一个例外。
更多信息可以在**这个说明及其链接问题**里找到。
为了规避这个问题,你可以选择**LGPLv3**。不过它更多地适用于库模组而不是普通模组。
- APACHE LICENSE, VERSION 2.0,简称Apache 2.0:特点是在修改你的mod是必须保留你的版权信息。没什么特别的。
- The 3-Clause BSD License,简称BSD3:特点是不允许其他人修改后的mod借你的名义宣传。除此之外很宽松。
- The MIT License,简称MIT:只要别人修改时保留你原来的许可就行。
你可能发现MIT与上面的Apache 2.0有些相似——其实有很多许可证不同的重点在于专利、商标、纠纷等方面。对于一个简单的Minecraft模组而言,它们确实不会有很大区别。
- CC0:与第一个相反,即“放弃所有权利”。使用CC0许可的作品即被视为公有领域作品。
各式各样的CC协议通常不被用于程序或代码。对于CC0,你可以选择下面这个许可协议作为替代。
- Do What The Fuck You Want To Public License,简称WTFPL:与CC0相似,“放弃所有权利”。
如何选择开源许可证?
选择不正确的许可证可能会使您受到不必要的损失。您可能需要咨询专业的法律工作者。
以下是一些可能有用的链接。
- 帮助你选择你的许可证。适合新手入门了解各主流许可证。英文。
- 《各类许可证及其评论》。覆盖面相当广。有中文翻译页面。
- Beginner's Guide to Licensing your Mods。同样适合新手入门了解各种许可方式。英文。
以下问题可能也可以帮助你选择:
-
如果你觉得没什么好保留的,欢迎任何人游玩、分发,其他开发者也可以在你的基础上制作自己的版本,随便怎么折腾都行:你可以选择MIT许可证。
-
如果你想知道别人的衍生版本里面都有些啥:你可以选择GPLv3许可证。不过要记得上面提到的注意事项。
-
如果你不想让别人的衍生版本借你的名义宣传:你可以给GPLv3许可证增加附加条款(其第7节允许你这样做);或是使用BSD-3许可证。
-
如果你不想让别人在商业服务器里使用你的模组,或是不想允许别人修改你的模组,或是不想允许别人转发你的模组:这将使你的模组不是自由软件。你几乎只能使用非正式许可证来声明这些限制,或是,尽管不推荐,使用CC协议的各个版本来偷懒。
为什么我们提倡把mod开源?
开源(Open Source)是人类在互联网发展进程中探索出的一种面向全球的大规模协作生产方式,它以开放共享、合作共赢为宗旨,有效地推进 了全球化进程。
开源许可证是对开源软件的使用、复制、修改和分发等行为进行规范和约束的一种具有法律效力的格式合同,是开源运动的基石。
——《木兰宽松许可证》引言
本着自由、共享、平等、互利的互联网精神,我提倡您把您的mod在GitHub或者其他开源网站上开源,并在介绍您的mod时给出仓库链接。
同时我诚挚地建议您:
- 在使用他人的项目时,遵守其许可证;
- 在您的项目被违规使用时,站出来寻求帮助;
- 在遇到问题时,在您能力所及的范围内提出issue或者提交pr,而不是在混乱的评论区里留下无用的抱怨;
- 作为玩家时,不要盲目地对开发者说“我想要...”,而是说“我想要...,我自己做不到,但是我能给你提供一些资料...”;
- 在遇到新人时,于合理范围内提高您的943指数。
如果您做到了公开mod源代码,甚至是提供相应的文档、写出开发笔记,抑或是给他人的项目做出贡献;那我衷心地感谢您为Minecraft社区做出的贡献,感谢您对国际主义和共产主义精神的实践。
开源许可证真的有用吗?
是的,(至少主流的)开源许可证是受到现行法律保护的。
以下内容引用自广东省深圳市中级人民法院民事判决书,即罗盒网络科技诉福建风灵公司及腾讯公司一案,(2019)粤03民初3928号:
关于GPL3.0协议的法律性质。其一,协议的内容具备合同特征。GPL3.0协议属于发生私法上效果的意思表示,而意思表示是民事法律行为的核心要素,因此GPL3.0协议是一种民事法律行为。该协议授予用户复制、修改、再发布等权利,实际上在授权人和用户间形成了权利变动,属于设立、变更、终止民事权利义务关系的民事法律行为。授权人许可的权利符合我国著作权法的相关规定;其采用开源许可证发布源代码,将自己的大部分著作权授予不特定用户,完全是出于自愿。用户在许可证下复制、修改或再发布源代码,通过行为对许可证作出承诺,也是出于自愿。用户在对源代码进行复制、修改或发布时许可证成立,同时许可证发生法律效力。其二,协议的形式亦具备合同特征。GPL3.0协议以电子文本方式表现其内容,而电子文本是一种有形的表现形式,属于以书面形式订立的合同。综上所述,GPL3.0协议具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国《合同法》调整的范围。
当然,简单地标明“此项目使用xxx许可证”并不一定意味着万事大吉。您可能需要仔细查看许可证的内容和咨询专业人员。
与Minecraft EULA有关
鉴于我们是在为Minecraft开发模组,我们的行为就自然受到Minecraft EULA和使用条款的约束。
那些开源协议似乎都没有限制别人拿我的mod来商用?
第一点原因是,限制商用将会使得你的软件不是一个自由软件。
更简单的原因是,Mojang本来就不允许你将mod直接用于商业用途:
“您从头开始为游戏创建的任何 Mod 均归您所有(包括事先运行的 Mod 和内存中 Mod),您可以对它们执行任何所需操作,只要您不通过出售它们来赚钱/尝试通过它们赚钱,并且不分发游戏的 Mod 版本即可。”
那我岂不是白干?
并不是,
“您可以按照以下“服务器和托管”部分中的说明通过 Mod 赚钱。”
你可以通过开设带有你的mod的服务器的方式来赚钱。但是你仍然需要遵守MINECRAFT 商业使用准则。
为阅读方便,以下是部分节选。仅供参考,请以原文为准。
作为服主,你可以:
- 对玩家收取访问费用,但是需要 :
- 对每个人收取相同的费用;
- 收费即全解锁Mod(即不能阶梯式收费);
- 只允许正版玩家;
- 要求捐赠,但是不能提供对个人的捐赠奖励。只能在达到某个捐赠目标的情况下提供全服范围的捐赠奖励。
- 出售影响游戏玩法的特权,前提是不能让其他玩家心态爆炸。
- 卖各种装饰,但不包括披风和长得像披风的东西。
- 为第三方提供广告植入,但是不能让玩家心态爆炸。
- 卖游戏内的虚拟货币,但是不能兑现,不能在付费和免费服务器直接转移,不能模仿基岩版的金币,等等等等。
- 等等等等。
但是你需要:
- 在玩家进服之前,透明地告知所有内容和价格。
- 等等等等。
灰色地带
麻将在EULA里没有明说的事项,基本都算作灰色地带。例如利用Patron/爱发电获得赞助、通过相关视频获得盈利等都算。自行斟酌即可。
再次强调,以上内容不是正式的法律建议,涉及具体事务时请咨询专业的法律工作者。
奇奇怪怪的注意事项
EditorConfig
当你与其他人进行协作开发的时候,难免会遇到“我的缩进是4个空格”“你的缩进是一个tab”这种令commit页面变得像股票市场一样的情况。
要避免出现第三次世界大战也很简单——作为项目拥有者,你可以启用EditorConfig,并方便地按你的习惯进行规定:在IDEA的设置 > 编辑器 > 代码样式 > 方案 > (齿轮图标)导出 > EditorConfig文件
,在项目根目录添加一个.editorconfig
文件。这使得所有人的代码都会被规定为统一的样式。