qixils / minecraft-crowdcontrol

A Minecraft: Java Edition plugin that allows your live stream community on Twitch, YouTube, TikTok, Discord, & more to interact with your game.
https://mccc.qixils.dev
Mozilla Public License 2.0
18 stars 9 forks source link

Forge Port #146

Closed qixils closed 5 months ago

qixils commented 1 year ago

August 2024 Update

adventure-platform-fabric has just released for NeoForge, finally allowing us to support the platform. We already have alpha builds for 1.21.1, but will be unable to release them until 1.21.2. Stay tuned!

July 2024 Update

Coincidentally, adventure-platform-fabric, the biggest blocker in porting to Forge, has started working on support for NeoForge. The v3.6.1 release of CC will migrate away from the Cardinal Components library, leaving adventure-platform-fabric as the only library blocking support for NeoForge. We will continue to monitor the situation.

May 2024 Update

Just recently, Sponge began shipping beta builds of SpongeForge for the latest version of the game, 1.20.6. The mod has successfully been updated to fully support this version with minor changes, and so, as promised in the original issue down below, this issue will now be closed.

Original Issue

TL;DR

The Full Situation

The mod supports the Sponge API, and Sponge can run as a Forge mod, so the mod supports Forge, right? Well, yes, but only on the Minecraft versions supported by SpongeForge, which currently is just 1.12.2 and 1.16.5 (edit: and 1.19.4!). This is great for speedrunners of old versions (which honestly was my main goal) but also for some old modpacks. So, what about Forge for the latest version of the game? Well.

The Native Forge Port

Over a year ago when I began development of the Fabric mod, I planned to release a Forge version alongside it, but this quickly proved to be nonviable. I'd have to singlehandedly create Forge ports of several software libraries (listed below) that may or [likely] may not even want a Forge port created of them, meaning I'd likely have to maintain several of them in perpetuity. It's a lot to ask for just to support a modding platform that is increasingly disfavored by modders and players for its toxic management, slow updates, lack of support for snapshots and April 1st updates, disinterest in supporting game code patches (which this mod makes good use of), et cetera. I don't honestly anticipate a native Forge port coming to fruition for these reasons, but regardless, the theoretical path to native Forge support is laid out below.

EDIT: The newly released NeoForge appears to be tackling several of these issues and attracting new mod ports, but the majority of the libraries we use seem to remain uninterested in supporting it.

Libraries

First, the following libraries used by the Fabric mod would need to be ported to Forge.

To support older versions of the game, these theoretical Forge ports would also need to be backported to old versions of the game which is even less likely to happen.

Porting the Fabric Mod to Forge

Second, since the Forge and Fabric mods would mostly share the same code, the code base for the Fabric mod would have to be modularized to allow the development of the Forge mod. Finally, the Forge mod initializer would have to be created.

The Sponge Forge Port

There's a high chance that the native Forge port never comes to fruition. In this case, the next best hope would be for Sponge to finally bring Forge support to the latest version of the game, and fortunately they seem to be looking into doing just that in the near-ish future. If SpongeForge ever releases a build for the latest version of the game and this mod runs on it, I'll likely consider this issue resolved.

The Future

I'm always looking around the Minecraft development space for new platforms to support and that includes Forge. I'll be posting comments with updates as I have them so do feel free to subscribe to this issue if you'd like to hear about future developments.

qixils commented 1 year ago

Much ado has recently been made about NeoForge, a fork of Forge created by most of the former Forge team that excludes one of the more toxic team members and supposedly sheds some of the project's negative feelings towards mods utilizing game code patches. I believe this project may make more mods and libraries willing to adopt (Neo)Forge if the new team plays their cards right and delivers on the expectations to better support game code patches, though I think it remains unlikely that many people will put in the effort to do the porting themselves.

qixils commented 1 year ago

Sponge has finally published stable builds of SpongeForge 1.16.5 to mark the end of active SF development on 1.16.5 and to hopefully mark the beginning of active SF development on 1.19.4+.

qixils commented 11 months ago

Recent-ish comment from a Sponge developer regarding the status of SpongeForge:

I suspect the next version will be 1.20.2 for SF we're sorta hoping to let the dust settle on the whole forge/neoforge situation too

qixils commented 11 months ago

Even better: on the most recent State of Sponge, the devs announced that SpongeForge 1.19.4 is in unstable alpha with plans to officially publish beta releases very soon.

qixils commented 5 months ago

Just recently, Sponge began shipping beta builds of SpongeForge for the latest version of the game, 1.20.6. The mod has successfully been updated to fully support this version with minor changes, and so, as promised in the original issue, this issue will now be closed.

qixils commented 3 months ago

adventure-platform-fabric, the biggest blocker in porting to Forge, has started working on support for NeoForge. The v3.6.1 release of CC will migrate away from the Cardinal Components library, leaving adventure-platform-fabric as the only library blocking support for NeoForge. We will continue to monitor the situation.

qixils commented 2 months ago

🤔

image