译注:这篇文章的翻译参照的是9月8日的版本的,官方FAQ会经常变动,因此不保证准确性。
源地址:https://docs.google.com/document ... P5fIi8B4Kyg/preview
9月8日快照:http://soft.lyn.moe/sponge/SpongeFAQ-20140908224700.odt
Sponge
IRC频道
我们在irc.esper.net的#sponge频道 http://webchat.esper.net/?channels=sponge
- 不要跑题
- 不要讨论编程语言
- 禁止种族主义、色情等内容
- 少爆粗
- 对人友好
Mojang没有给我们发侵权通知,Bukkit被暂停下载也不是Mojang干的。
常见问题
Sponge是什么?
Sponge是一个构建在Forge上的基于Spout/Flow的新的API,我们现在正在接受其它的Minecraft mod社群的协助(Glowstone和Canary等等)。这个API将是客户端和服务器共有的,目标群体是所有希望给游戏开发mod的人,包括服主们。但是,目前我们将首先着眼于服务器端的部分。我们欢迎各位开发者的协助。
我有点迷糊,Bukkit咋了?
Bukkit的意味贡献者发了一份DMCA侵权声明而导致Bukkit的下载被删除。他的所作所为处在他自己的合法权益内。Bukkit及其衍生软件Spigot和Cauldron的下载以及源代码现在已无法获取。若要更深入的解释,请看这里(英文).
你们的Twitter/Reddit/GitHub/网站的地址是什么?
请注意,凡是不在这里列出的网站都不是官方的,可能含有虚假或恶意信息。
- /r/spongeproject on Reddit
- @spongepowered on Twitter
- https://github.com/SpongePowered
- http://www.spongepowered.org
谁在参与这个项目?
- WorldEdit/WorldGuard作者sk89q
- 原MCPC+/Cauldron维护者blood
- Forge、FML、MCP维护者LexManos
- Forge、FML、MCP维护者cpw
- Spout团队的Zidane、Raphfrk、DDoS、Sleaker
- Flow团队的kitskub
- ForgeEssentials团队的AbrarSyed
- KHobbits、Elgarl、zml等Bukkit插件开发者
- 部分FTB(Feed The Beast)团队部分成员
- Canary团队
- Glowstone团队的SpaceManiac
- Spigot团队
- 部分原Bukkit的贡献者
- 等等等等的其他人
谁来决策?
项目的所有者blood和sk89q将做决策,需要时将询问社群和其他成员的意见。
为何不等等官方API?
- 不知道等到什么时候
- 大多数人不想等
- 早点开始早点弄完
- 上面三点可能是一回事
- 社群驱动,可以提供比官方更快的更新速度,也能更好的回应社群的期待。
- 可以在其他服务器上实现(我们鼓励其他的服务器实现该API)
你们有询问过社群意见吗?
是的!我们推进的速度很快,但是我们欢迎意见。我们的决策大多数都是基于#nextstep频道的讨论和这里的调查作出的。我们使用Google文档(翻译)来记录会议和达成的共识。
为何不使用一个类似于外壳一样的API?(在官方服务器上架设API)
这种外壳只能修改网络数据包,或者使用命令方块。这样一来功能上会有巨大的局限性,那样的话插件只能做现在能完成的事情的一小部分。
干嘛不自己重新写一个服务器呢?
- 重用现有的项目可以让我们更快的产生一个能用的服务端
- Glowstone虽然是从头写起的,但是因为其开发过程不符合净室的极其严格的要求,并不能免于EULA的限制
- 其他的服务端要么功能非常不完备要么就不支持Java,而不支持Java使得很多用户和开发者颇有微词
- 我们没时间写,而且因为大家基本都看过Minecraft服务器的源代码
但是使用私有程序为基础的话我们岂不是又会落得现在的处境?
据我们所知和我们所理解的,Mojang并不希望阻止对Minecraft的mod,而且最近的情况也并不是由他们直接导致的。导致最近的事情的原因是,一个主要的贡献者拒绝将他贡献的使用GPL协议的代码与Mojang的私有代码共同使用。如果我们避免使用GPL的话,我们就不会有这个问题。虽然这并不能使我们摆脱Mojang的控制,但是我们相信他们是支持mod的并且将继续支持下去。
Sponge将采用什么协议?
MIT,没有贡献者许可协议(CLA)。CLA没有必要而且可能会赶跑潜在的贡献者。
*译注:通常CLA会要求贡献者无偿、不可逆地放弃他们对所贡献的代码的一切权利,并将这些权利转交给相关项目。
为何不使用Bukkit API?
因为它是GPL授权的,而GPL授权就是导致现在这个情况的一个原因。而且最近美国的联邦法院认为API的设计是有著作权的,虽然这个案例还没有完全结案。
新的API和Bukkit API会相似吗?事件之类的?
是的,新的API会和Bukkit API颇为相似。而且还会给你提供更多的可能性,因为你还可以使用Forge。
为什么用SpoutAPI+Flow库,而不用Canary或者别的API?
我们选择SpoutAPI完全是基于之前提到的调查而做出的决定。但是请注意,我们不会照原样实现SpoutAPI。这只是个设计参考和启发,以减少设计API所需要的时间。我们还将使用Flow库的一部分。http://github.com/flow
那那些使用NMS的插件怎么办?
你将需要转向使用Forge,Forge中反混淆过的名字更多。但是请注意,使用NMS会提高你的插件在跨版本更新的时候出现兼容性问题的概率。是否使用还是由你自行决定。
服务器会有多线程优化吗?
会有多线程优化,正如官方服务器(和Bukkit以及Spigot)那样,但是因为我们并不是从头开始写的服务器,我们并不能做太大的修改。
相对于Bukkit和Spigot,新的服务器性能如何?
我们正在调查这一事情,但是长期上我们希望能达到或者超过其它的服务端。
新的服务器可以直接给客户端发送mod吗?
目前达成的共识是反对这一行为的,因为有安全风险。新的API不计划有向客户端发送mod(含可执行代码)的功能。
会支持Bukkit插件吗?
不支持,至少不会原生支持。因为法律上的问题我们才落得这种处境。我们会提供文档并协助人们将Bukkit插件迁移到Sponge上。
那我能保留Bukkit上的存档和别的数据吗?
我们计划设计一个转换方式来转换或者导入尽可能多的数据。插件大多需要它们自己的转换流程来让你保留家的位置、传送点等其它数据。
什么时候能下载?
还未确定。
但是Forge好像不支持官方客户端呢?
是的,但是LexManos说他正在添加相关的功能。
但是Forge更新好慢的?
现在Minecraft社群中更多人在一起合作了,我们相信这会帮助加快速度。
我想帮忙!
目前我们在寻找有经验的程序员协助开发。如果你符合要求的话请到这里填表。我们还需要有人帮助写文档、管理社群等等的事务,但是这些等到我们开始工作后再说。
注意:我们目前还没开始处理这些申请,所以如果没有收到回应的话请不要气馁。
能支持Scala、Groovy等基于JVM的语言吗?
我们鼓励其他语言的开发者参与,但是我们主要还是用Java。
那么其它的编程语言会被支持吗?比如Lua?
我们鼓励实现这些语言支持的行动,但是这不会是我们的首要任务。
Glowstone会参与吗?
我们希望能帮助SpaceManiac和他的团队实现这一API,我们同样希望愿意参与的各位来协助。
Sponge将使用哪个版本的Java?
Sponge将使用Java 1.6,这也是Forge和原版客户端支持的最低Java版本。
Sponge将在哪个版本发布?
Sponge的第一个版本将支持Minecraft 1.8,或者是发布的时候的那个1.8.x