作者zxcvforz (塔欧兹)
看板Minecraft
标题Re: [讨论] 请问mod API是什麽?
时间Sun Aug 19 15:22:44 2012
※ 引述《hfs (快乐!移民瑞士!梦想成真!)》之铭言:
: A.请问mod API是什麽?
API - Application Programming Interface
API 就是两组程式之间互相沟通所使用的一套规范、规则,
只要遵守 API 的规定来写程式,这两组程式就可以互通。
以 Minecraft 来讲,两组程式就是 Minecraft 主程式和任意一个模组。
目前 Minecraft 由於没有 API (也就是官方没有制定一套规则),
所以现行的模组实际上都是由某团队 (MCP 团队) 先将游戏主程式反组译,
变成原始码的格式後,再由各模组作者根据 MCP 原始码来改。
假设原本的主程式有 func1() func2() func3() 三个功能,
模组 A 想改 func1(),他就要根据 MCP 的原始码去写一个相容的新 func1(),
然後必须将旧的 func1() 盖掉,主程式才会呼叫到新 func1()。
这时如果模组 B 也想改 func1(),但是他是加入不同的功能,
想要跟 A 同时存在的话,B 就必须改 A 的 func1() 而不是原版的 func1(),
不然 B 盖掉之後 A 改的新东西就消失了。
这就是为什麽现在的 Minecraft 很容易有模组相冲,因为他们改到同一个功能,
导致後装的模组会盖掉先装的模组程式,先装的模组就不完整了。
: B.他可以消除各个MOD之间相冲的问题吗?
只要是符合 API 规定的模组,大部分的冲突都可以解决,
但是逻辑上的冲突却是不可能解决的。
例如模组 A 是让你砍一块原木就整棵树倒下来,
模组 B 是让你砍一块原木後,树的其他原木方块会像树叶一样慢慢掉下来。
由於两种功能不可能同时存在 (逻辑上的矛盾),
所以就算 A 跟 B 都使用 API 来写,还是会相冲。
: 还是说只是让各个MOD安装的方式统整起来而已?
对玩家而言,他最大的好处就是排除掉绝大多数的相冲问题,
并且让装模组 (以後叫外挂或插件) 变得跟装材质包一样,
把档案丢进资料夹就好。
: C.是不是只要有了mod API之後.
: 就不用再有FORGE或者MODLOADER或者MCPATCHER了?
: 谢谢好心人帮忙解答疑惑
那要看模组想要提供什麽功能。
如果模组想做的东西,API 并没有提供,那麽这个模组仍然得改原始程式。
只要这类模组一多起来,Forge/ModLoader/PlayerAPI 这类东西还是会出现,
MCPatcher 也就仍然有他的地位。
不过基本上 ModLoader/Forge 这种相容性的介面层应该是最快被取代,
因为他们的本质上就是一套 API,只是由玩家自制的 API 而已,
现在有了官方 API 後,他们会是最先被取代掉的模组。
补充:
实际上 API 出来後,现在我们所知的「模组」仍然会存在,
所以也很可能 MODLoader/Forge 几乎不受影响,
只是可能需要用到他们的东西会变少而已,
剩下真的大幅修改主程式的模组才会需要用到 MODLoader/Forge。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.74.160
1F:→ pokyaprl:看麦块长知识。 08/19 15:24
2F:推 t19910422:专业给推 08/19 15:25
※ 编辑: zxcvforz 来自: 114.25.74.160 (08/19 15:27)
3F:推 miau9202:仅求MODLoader跟Forge 也遵循官方API的格式,别再冲突了 08/19 17:34
4F:推 yuan860721:专业推 08/19 17:35
5F:推 er230059:官方好像有要弄一套API 不过到现在都还没出现 08/19 18:02
6F:→ er230059:题外话 Mod用的程式语言... Java写起来真讨厌... 08/19 18:02
7F:→ zxcvforz:API已经在写了,1.4很可能就会一起出来 08/19 18:15
8F:推 bulon:长知识推推 08/19 18:27
9F:推 cangming:不过这样一来MOD开发者就几乎要重写了 但是如果跟现行API 08/19 18:43
10F:→ cangming:差不多的话 应该能节省不少时间 不过会不会有Moder还是 08/19 18:44
11F:→ cangming:不用官方API一样去改程式码呢 = =" 08/19 18:44
12F:→ cangming:喔 看到了 XD 只希望官方的API会很强大 XD 08/19 18:47
13F:推 chocoya:专业解说 推 08/20 02:55
14F:推 linji:希望赶快出来>< 不然装模组好麻烦喔 08/20 07:37
15F:→ lulanee:不觉得官方API出来就会比较好装模组 保证更复杂-.- 08/20 09:03
16F:→ lulanee:不管是对写mod还是用mod的人来说 08/20 09:04
17F:→ linji:真希望有天模组丢到资料夹就能用~.~ 08/20 10:17
18F:→ Nuaaukw:官方API出来後user一定比较轻松,但是coder就不一定了。 08/20 11:15
19F:→ Nuaaukw:如果麻将搞出半残的API就..."Orz 08/20 11:16
20F:→ gh0987:应该没问题吧 之前还开过线上非正式会谈 08/20 17:05