Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Forge Port #146

Closed
7 of 9 tasks
qixils opened this issue Jun 22, 2023 · 7 comments · Fixed by #202
Closed
7 of 9 tasks

Forge Port #146

qixils opened this issue Jun 22, 2023 · 7 comments · Fixed by #202

Comments

@qixils
Copy link
Owner

qixils commented Jun 22, 2023

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 mod currently recommends the Fabric mod loader. It supports Fabric on 1.19.2 and above. The Fabric ecosystem is rich with new mods and developer tools being created for and ported to it everyday.
  • The mod also supports Forge via SpongeForge. SpongeForge supports 1.12.2 and 1.16.5 with plans in the near-ish future to support 1.19.4 and 1.20.5. (EDIT: SpongeForge 1.19.4 is officially in beta! Work is under way to bring support to this version.)
  • To create a native Forge port independent of Sponge would require several libraries to release Forge ports, but the chances of this are unlikely due to various complicated factors and the time/effort to do this work alone would be considerable.
  • A native Forge port will not be created for old versions of the game.

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.

  • Update to cloud 2.0
  • Split module back out to a common mojmap module, a fabric initializer module, and a forge initializer module
    • Architectury may be of help for this, namely for its easy mixin support
  • Expose GUI config on Forge
  • ???
  • Test Fabric and Forge extensively

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 qixils added the future An issue that may be resolved in the far future label Jun 22, 2023
@qixils qixils pinned this issue Jun 22, 2023
@qixils qixils added the help wanted Extra attention is needed label Jun 22, 2023
@qixils
Copy link
Owner Author

qixils commented Jul 25, 2023

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
Copy link
Owner Author

qixils commented Oct 23, 2023

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
Copy link
Owner Author

qixils commented Dec 6, 2023

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
Copy link
Owner Author

qixils commented Dec 6, 2023

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
Copy link
Owner Author

qixils commented Jun 6, 2024

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 qixils removed help wanted Extra attention is needed future An issue that may be resolved in the far future labels Jun 6, 2024
@qixils
Copy link
Owner Author

qixils commented Jul 28, 2024

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
Copy link
Owner Author

qixils commented Aug 27, 2024

🤔

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging a pull request may close this issue.

1 participant