Skip to content

Instantly share code, notes, and snippets.

@xt9
Last active October 29, 2023 05:39
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xt9/55a04226728cebe729fe37cc7aa9d10f to your computer and use it in GitHub Desktop.
Save xt9/55a04226728cebe729fe37cc7aa9d10f to your computer and use it in GitHub Desktop.

Notes should be taken with a grain of salt as it's just notes I took during the livestream and since I'm no contributor to forge I cannot attest to the accuracy of facts.

1.13 General

  • cpw is rewriting the mod loader and it's going to be merged into 1.13 forge
  • 1.13 forge will have java 9 support. (May happen sooner rather than later)
  • 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.
  • Java 10 & 11 support depends on Mojang using it. Go yell at them for support.
  • Forge will receive a full audit for 1.13, going over all of the classes for redundancies. Stable 1.13 Forge might take months.
  • New coremod system for 1.13, coremods are necessary for forge, but people tend to overuse them right now.
  • JavaScript system to modify base classes.
  • New system might support swapping mod versions while the game is running.
  • 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)

1.13 Performance

  • Multicore systems should receive a big speed increase (for the loader?)
  • 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 Vanilla code changes

  • Vanilla command system rewritten, a lot more structured. Uses Brigadier
  • Lot of new World generation util that should help for mods like Twilight forest & Betweenlands.
  • DataFixers: Could theoretically support porting modded worlds from version to version, but will probably not be a thing.

1.13 Modding

  • More Event driven networking for simplmpl
  • async & promises support
  • 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.
  • Login needs support for longer handshakes since the block registry is ~16 times larger, and needs to be synced.
  • 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'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.
  • 1.13 is cooler and more enticing than 1.8 ever where when moving from 1.7
  • The more modders that adapt 1.13, the better.
  • Grum on entity data models: Not planned by mojang atm.
  • Forge team is looking for someone to do rendering.
  • Localization is getting a rewrite
  • OreDict will be deprecated, Replaced with the new tag system. (Forge did it first, mojang is thieeeeves)
  • Forge might take over to init gears/nuggets/iron and all those common occuring ingredients that have tags. atleast as an optional.
  • 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).
  • Scala removed
  • 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.
  • Java will always be the language that Forge supports.
  • No Annotations processor, MCMOD.info is dead and the mod annotation only have one value.
  • Tweakers removed, New loader system uses serviceloaders.
  • Bad practice to have enable/disable flags for items/blocks in config. Just register how many you want.
  • Block id will persist even if you remove the block that had that id, leaving dead id's. But you can reclaim it.
  • They want a world cleanup tool that prunes dead ids. (Someone please write it)
  • Registries will still be locked.
  • Grum: Recipes should be reloadable in 1.13
  • Grum: don't use 2^31 blockstates please hehehe, you are going to have a bad time
  • Gui's have not really changed
  • World generation is now really modular
  • World generation is now THREADED!! (Not multi threaded)
  • No changes to build height

1.13 Commands

  • Uses Brigadier
  • Will support sub-commands

1.13 Fluid

  • They need to probably rethink everyone about how fluid works.
  • Might not make the rewrite straight away since mojang is not 100% done with the new fluid system.
  • There will probably be a new entry/event for registering liquids.
  • They would like FluidStack to be immutable and be more like ItemStack

1.13 ForgeGradle

  • ForgeGradle is getting a rewrite
  • No ETA
  • Should be functional in a few weeks.

1.13 Configuration

  • Format will be TOML (Luckily it's not YAML)
  • TOML will also be used for the modloader.
  • Event to get config values from a TOML object.
  • Annotations for config will kind of stay.
  • Nested list support, should have all the same capabilities as the existing system.
  • Scopes split into GLOBAL(What we have today)/PLAYER/SERVER
  • Ability to load defaults from inside the jar.
  • The library syncs config automatically.
  • It's up to the modder to handle the syncing correctly.

Communication

  • Paleo (the web dev for the file page) is now also community manager for forge.
  • They try their best to inform about new changes on irc/discord, and try to keep the docs up to date.
  • Issue tracker for the forge file page https://github.com/MinecraftForge/Web/issues
  • tterag in chat: Anyone can contribute to the forge docs.

MCP

  • It's being actively worked on.
  • Lex has been updating MCP for all the snapshots.
  • Lex gets help from Sponge devs and other sources to name mappings.
  • MCP is still the property of Searge, but the Forge team maintains it right now.

What happens with forge after 1.13?

  • They'll worry about it after 1.13
  • Cpw is not going anywhere.
  • Lex will continue as long as forge can support his livelihood. (not exact quote)

F.A.I.L (Forge abstraction layer)

  • Major undertaking, does not sound like it will come to fruition.
  • Use sponge instead.

Project Valhalla

  • Many objects would turn into value types.
  • Would have massive performance changes? (Tuned out for a bit)
  • Might make it into Java 11
  • The java dev community is very hyped about it.
  • Nothing else would have a bigger impact on performance than this.
  • When we get this depends only on Mojang.
  • TL;DR Valhalla is huge, but proably far off.

Misc

  • There could be a Forge util mod for library functions if they can find anyone trustworthy to develop it.
  • Call to action, if you want to contribute make yourself known in irc or the git PR's, and as they said earlier they're looking for a rendering "guy".
  • Documentation probably won't change a lot until stable release, follow the beta changelogs to keep posted.
  • More event registries will be a thing in 1.13

FML Demonstration

  • Only one value for Mod annotation, MODID
  • All additional properties for mods are moved to META-INF/mods.toml
  • modLoader, you can specify what language loader you want to use, you can also specify the version of the loader.
  • Needs to follow apache maven version, use numbers please.
  • Support for multiline description
  • Can put multiple mods in there with jar-in-jar, but one mod specified is recommended.
  • Removed magic derpy strings in annotations, now replaced with suppliers.
  • cpw: wants to move away from stringAPIs like annotations, because they're error prone and require some validation.
  • Using suppliers and types should be more stable.
  • SubscribeEvent and Mod.EventBusSubscriber is not going away.
  • SidedProxy annotation will probably not be maintained. Replaced with using SidedExecutor.
  • SidedExecutor let's you run code on one side only. Will also trigger events.
  • Sided proxies with the overwrite pattern is probably going away in favor of SidedExecutor.
  • SideOnly will still exist by necessity. (They explained why but it did go over my head)
  • The InterModComms system is getting rewritten.
  • Optional is gone, it's not coming back.

Forge Modders Day

  • Virtual event.
  • Mini minecon for modders.
  • cpw wanted to write a history of modding talk.
  • They're open for ideas for modders day, talk to the forge team on Discord.
  • Pahimar is helping with organization.
  • They would love it if Sponge devs would also join in on the fun.
  • Might have a modjam event after/before.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment