MinecraftForge 1.13更新资讯

【重要】该文作者非forge贡献者,不完全保证其权威性,但并未有forge开发成员表示异议,有参考价值。
1.13 General(全局):
1.cpw is rewriting the mod loader and it's going to be merged into 1.13 forge
cpw(forge早期的主要贡献者)正在重写mod加载器(以适应新版的Java),这会被合并到1.13的forge中。
2.1.13 forge will have java 9 support. (May happen sooner rather than later)
1.13的forge将会支持Java 9(可能会更早一些)。
3.The mod loader carries a lot of technical debt, which is the reason the load speed is a bit slow, they're working towards improving the performance of the loader.
新的mod加载器带来了很多技术问题,导致加载速度有点慢,他们正在努力优化性能。
4.Java 10 & 11 support depends on Mojang using it. Go yell at them for support.
至于Java 10和11,mojang用哪个,我们就用哪个,让他们支持去吧。
点评:Java 11是下一个时代的官方长期支持版本,虽然重要,但比起9没有什么破坏性的变动(上一个破坏性变动,是Java 9的模块化),只要不使用那些被移出JDK 11的包(Java EE和Java FX等),问题就不大。
5.Forge will receive a full audit for 1.13, going over all of the classes for redundancies. Stable 1.13 Forge might take months.
forge会在1.13接受全面审查,精简所有的类,需要几个月的功夫推出稳定的forge 1.13(又能跳票了)。
6.New coremod system for 1.13, coremods are necessary for forge, but people tend to overuse them right now.
1.13将会推出新的coremod系统,coremod对forge很重要,但是已经被大家滥用了。
点评:coremod是采取修改Java字节码的手段,对MC底层代码做出修改的mod,滥用可能造成崩溃,如果你看过1.1x的mod崩溃报告,就会发现里面有很多coremod存在……
7.JavaScript system to modify base classes.
引入JavaScript系统,以修饰基础的类。
点评:意义不明,为了吸引JavaScript开发者?
8.New system might support swapping mod versions while the game is running.
新的系统允许在游戏运行时更换mod版本(所谓的热更新)。
点评:不错的功能,真能做到的话就太好了。
9.Mod system should not scare bukkit plugin devs so much after the rewrite(but forge will never be bukkit/sponge since it's not an abstraction)
重写后的mod系统应该不会与bukkit插件无法共存,但是forge也不会变成bukkit或sponge,因为它不是一个抽象的接口。
点评:不知道会发展成什么样,但是bukkit和sponge共存的项目应该要下岗了吧。
1.13 Performance(性能):
10.Multicore systems should receive a big speed increase (for the loader?)
(对加载器而言?)多核系统会大幅加速。
点评:启动速度快了?MMC可能会失去引以为傲的优势。
11.1.13 updates to LWJGL3 which has support for multithreaded rendering, so they still want someone who does rendering to speed that up.
1.13底层更新到LWJGL 3之后,终于TM的有多线程渲染了,所以他们会找一些搞渲染的人加速渲染。
1.13 Vanilla Code Changes(原版代码修改):
12.Vanilla command system rewritten, a lot more structured. Uses Brigadier.
使用Brigadier(Mojang官方提供的一个工具)重写了原版命令系统,大大提升结构性。
点评:这是除了LaunchWrapper之外,我知道的第二个Mojang官方工具。
13.Lot of new World generation util that should help for mods like Twilight forest & Betweenlands.
很多新的世界生成工具,对暮色森林和交错维度这样的mod很有用。
点评:别让它们变得更卡就好……
14.DataFixers: Could theoretically support porting modded worlds from version to version, but will probably not be a thing.
理论上,可以将mod整合包的存档跨版本迁移,但是可能(因为其他原因)不会实现。
点评:重要的功能,希望能做好吧。
1.13 Modding(mod编写):
15.More Event driven networking for simplmpl
为简化实现,更多的事件驱动网络将被加入。
16.async & promises support
异步支持。
17.login & handshake, system is getting a rewrite, should make it faster and more lag-resistant. Giving more feedback on how close it is to connecting to the server.
登录和握手的系统正在重写,会让它更快,延迟更少,连接掉线时会给予更多反馈(不是原来那样就一个异常了)。
18.Login needs support for longer handshakes since the block registry is ~16 times larger, and needs to be synced.
登录需要更长时间的握手,因为方块注册变大了约16倍,需要同步。
19.Breakings changes in forge for 1.13? Yeeeeees. Forge will have a full audit for every line of code, so a lot of things are breaking. Terrain stuff will 100% break.
forge 1.13是破坏性的变化吗?那当然啦,forge每一行都需要重新检查,很多东西都在破而后立,至少地形相关是100%破坏了。
20.Forge's official stance is always use the latest version, but 1.12 will have full support until 1.13 have a stable version that Lex is happy with.
forge官方态度是永远使用最新的版本,但是情况特殊,在1.13稳定之前,将继续对1.12全力支持。
21.1.13 is cooler and more enticing than 1.8 ever where when moving from 1.7.
如果你从1.7迁移上来,1.13比1.8更棒。
22.Grum on entity data models: Not planned by mojang atm.
实体数据模型:Mojang尚无计划。
23.Forge team is looking for someone to do rendering.
(呼应第11条)Forge团队诚邀渲染人才加入!
24.Localization is getting a rewrite.
本地化系统正在重写。
25.OreDict will be deprecated, Replaced with the new tag system. (Forge did it first, mojang is thieeeeves)
矿物词典将被废弃,使用新的(NBT)标签系统。(这东西是forge先搞出来的,mojang就是一群鸡鸣狗盗之辈)
26.Forge might take over to init gears/nuggets/iron and all those common occuring ingredients that have tags. atleast as an optional.
forge将接管锭,粒,齿轮,板(等“工业制品”)的初始化(以前是由JAOPCA之类的mod负责的),至少是个可选项。
27.Not much info on how datapacks will be utilized. They don't know if it's feasible yet (probably referring to syncing datapacks to the client).
包括forge团队自己,没人清楚数据包这东西怎么实用化(可能需要把数据包同步到客户端上)。
28.Java will always be the language that Forge supports,Scala removed.
Forge将永远使用Java,Scala将被移出forge库(单独下载)。
点评:有很多资源文件下载失败的情况,就是因为Scala类库下不动,移除的话简直喜大普奔。
29.Clojure/Kotlin/Javascript/Scala/Groovy support planned (loaded with loaders specified in the mod toml file),language support should only have to be -> require a lang support mod from curse, and start developing.
Forge计划支持Clojure/Kotlin/Scala/Groovy之类JVM方言以及JavaScript(在mod的.toml文件中指定相应的加载器),用这些语言开发mod,只能通过在curse上下载一个相应的前置mod。
30.No Annotations processor, MCMOD.info is dead and the mod annotation only have one value.
没有注解处理器了,mcmod.info已死,@mod 注解只有一个值了。
31.Tweakers removed, New loader system uses serviceloaders.
Tweaker(一个来自LaunchWrapper的接口)被移除,新的加载系统将使用serviceloaders。
点评:一大波coremod作者还有30秒到达战场,准备碾碎forge。
32.Bad practice to have enable/disable flags for items/blocks in config. Just register how many you want.
在配置文件中为物品和方块添加“开启/禁用”参数实现的并不好,你想注册多少就注册多少。
33.Block id will persist even if you remove the block that had that id, leaving dead id's. But you can reclaim it.
如果你移除了一个方块,那么方块的id会被保留下来成为一个“死”id,你也可以重新声明。
34.They want a world cleanup tool that prunes dead ids. (Someone please write it).
他们想要一个存档清理工具,来清理死id(等人写呢)。
35.Registries will still be locked.
Registries仍将被锁定。(也就是说,我们仍然需要使用RegistryEvent<T>这种不直观的形式去注册物品等)
36.Grum: Recipes should be reloadable in 1.13
合成表在1.13应该可以被重载了。
点评:魔改整合包的作者应该最喜欢这个。
37.Grum: don't use 2^31 blockstates please hehehe, you are going to have a bad time
没有2^31那么多的blockstate了,只能呵呵了。
38.Gui's have not really changed
用户界面类没有发生什么变化。
点评:没变化说个JB。
39.World generation is now really modular,THREADED!! (Not multi threaded)
世界生成现在模块化,线程化了!(但不是多线程的)
1.13 Commands(命令):
40.Will support sub-commands
支持子指令。(不搞CB的我并不知道这是什么)
1.13 Fluid(流体):
41.They need to probably rethink everyone about how fluid works.
他们打算重新定义“流体”。
42.Might not make the rewrite straight away since mojang is not 100% done with the new fluid system.
可能不会直接重写,因为mojang的新流体系统还是没写完。
43.There will probably be a new entry/event for registering liquids.
注册流体可能会有一个新的入口或事件。
44.They would like FluidStack to be immutable and be more like ItemStack.
FluidStack类型可能将不可变,更像ItemStack。
1.13 Forge Gradle(Gradle支持):
45.ForgeGradle is getting a rewrite,no ETA,should be functional in a few weeks.
ForgeGradle(这个gradle插件)正在重写,没有准确时间,应该几周就能实用了。
点评:forgegradle像个傻子一样,现在还用gradle 2.14.
1.13 Configuration(配置文件):
46.Format will be TOML (Luckily it's not YAML),will also be used for the modloader.
包括mod加载器在内,将采取TOML格式文件做配置,感谢上帝吧,它不是YAML。
点评:做插件的吃你家大米了?
47.Event to get config values from a TOML object.
增设从TOML对象中获取配置值得事件。
48.Annotations for config will kind of stay.
配置相关的注释还要再等会。
49.Nested list support, should have all the same capabilities as the existing system.
支持嵌套链表。
50.Scopes split into GLOBAL(What we have today)/PLAYER/SERVER
配置文件的作用范围分为全局(现在的情况),玩家和服务器。
51.Ability to load defaults from inside the jar.
能够从jar文件内部加载默认值。
52.The library syncs config automatically.
自动同步配置。
53.It's up to the modder to handle the syncing correctly
由mod开发者完全控制同步。
Communication(Forge社区事件):
54.tterag in chat: Anyone can contribute to the forge docs.
tterag:任何人都可以对forge文档做贡献。
55.Lex gets help from Sponge devs and other sources to name mappings,and he has been updating MCP for all the snapshots.
Sponge社区有帮助LexManos(forge的主要贡献者)反混淆MC的代码,而且他一直在更新MCP的快照。
……(剩下的没有翻译必要了)
FML Demonstration(FML新特性展示):
1.Only one value for Mod annotation, MODID
@Mod注解只有一个modid值了,刑如@Mod(MODID)。
2.All additional properties for mods are moved to META-INF/mods.toml
所有mod的附加信息(例如作者,版本号)将被移动到META-INF/mods.toml文件。
3.modLoader, you can specify what language loader you want to use, you can also specify the version of the loader.
你可以指定使用哪一种语言和加载器的版本来加载你的mod。
4.Needs to follow apache maven version, use numbers please.
需要跟着Apache maven的版本走,请使用数字。
5.Support for multiline description
支持多行描述。
6.Can put multiple mods in there with jar-in-jar, but one mod specified is recommended.
可以将多个mod(的jar文件)套在一起,但是仍然推荐分开。
点评:这不是以前的做法吗?只不过是塞进minecraft.jar。
7.cpw: wants to move away from stringAPIs like annotations, because they're error prone and require some validation.
cpw:想远离字符串类型的API,例如注解,因为它们容易出错,还需要一些验证。
点评:那你想呗!
8.Using suppliers and types should be more stable.
使用supplier(Java 8提供的一个函数式接口)和类型系统应该会更加稳定。
9.SubscribeEvent and Mod.EventBusSubscriber is not going away.
@SubscribeEvent和@Mod.EventBusSubscriber没有移除。
10.SidedProxy annotation will probably not be maintained. Replaced with using SidedExecutor.
@SidedProxy注解可能不再维护,替换成SidedExecutor。
11.Optional is gone, it's not coming back.
@Optional注解消失了,不再会回来了。
(完)