User Tools

Site Tools


faq:expert

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
faq:expert [2019/06/29 22:24] – created asiefaq:expert [2019/07/20 09:55] – [Why did you create your own mappings instead of utilizing MCP or Spigot's existing mappings?] fix formatting asie
Line 12: Line 12:
  
 The best approach here would be to port SpongeCommon and a modified version of SpongeVanilla as a Fabric mod implementing the Sponge API. As Fabric is using a fork of SpongePowered Mixin at its core, this is made somewhat easier - but the mappings differences make up for this, so to say. The best approach here would be to port SpongeCommon and a modified version of SpongeVanilla as a Fabric mod implementing the Sponge API. As Fabric is using a fork of SpongePowered Mixin at its core, this is made somewhat easier - but the mappings differences make up for this, so to say.
 +
 +==== Why does Fabric API break OptiFine shaders? ====
 +
 +The rendering patch Fabric API uses, Indigo, assumes (for performance and code simplicity reasons) that the vanilla vertex format is kept intact. Mods generally don't change it, however ShadersMod and similar mods are a popular exception. As such, Indigo doesn't play nicely with it as-is.
 +
 +Solutions for this have been looked into, but not yet functional. In addition, some of the unofficial mod projects are trying to work on one themselves. The current workarounds will not work in the presence of content mods which actually make use of Fabric's rendering API.
  
 ===== Interoperability (Retro) ===== ===== Interoperability (Retro) =====
Line 32: Line 38:
  
 With regards to running ModLoader: No known problems. With regards to running ModLoader: No known problems.
 +
 +===== Philosophy =====
 +
 +==== Why did you create your own mappings instead of utilizing MCP or Spigot's existing mappings? ====
 +
 +With regards to the Mod Coder Pack, MCP:
 +
 +  * MCP's mappings have no clear licensing terms; between the old MCP license ([[https://minecraft.gamepedia.com/Programs_and_editors/Mod_Coder_Pack#License_and_terms_of_use|as preserved on the Minecraft Gamepedia]]) and the new MCPConfig repository.
 +    * While other projects like OptiFine and Sponge utilize MCP, redistributing MCP mappings - which is forbidden without explicit permission - is necessary to support SRG-obfuscated mods, something [[https://github.com/MinecraftForge/MinecraftForge/blob/1.14.x/LICENSE.txt#L32-L35|only done by Forge]].
 +    * Even if we had been granted permission, it is unlikely that we would be freely able to extend this permission to other developers. This would go against Fabric's core values of development freedom and transparency.
 +  * MCP's mappings are not always updated to every non-"release" Minecraft version, nor are others generally allowed to do it themselves. This would forbid Fabric from updating to snapshots or other experimental releases.
 +    * Additionally, MCP's updating toolchain - as of the last few years - relies on proprietary Mojang information, not accessible to common users, as well as software without clear licensing terms. In contrast, Fabric's updating toolchain relies solely on free software tools (Stitch, Matcher, Tiny-Remapper, Enigma), and the artifacts of the process - just like the mappings - are publicly available.
 +  * MCP's mappings have an updating process we consider insufficiently open to code review, in our opinion, utilizing [[http://mcpbot.bspk.rs/|IRC bot submissions]] over a merge request system. (However, this is largely a matter of preference.)
 +
 +With regards to Spigot:
 +
 +  * Spigot's mappings only cover the server side and are very incomplete,
 +  * Spigot's mappings suffer from similar licensing issues as MCP.
 +
 +
faq/expert.txt · Last modified: 2023/09/13 02:30 by poopooracoocoo