Is this community dead? Should I use Sponge right now?


#1

Hey,
I have been here since day one. I enjoyed the idea behind this project. Unfortunately as I wanted to develop some plugins for my server - running Sponge Vanilla, soon the point was reached, where I had to stop due to missing API functionalitly.

It wasn’t there yet (2-4 years ago, I don’t know, I completely left Minecraft). And don’t get me wrong, that’s perfectly ok! A few days ago I got into MC again and I thought to myself, that Sponge must have made some huge steps forward.

I was very disappointed, when I saw, that there wasn’t a build for version 1.13 at all. Not even something experimental. I don’t need SpongeForge, my needs are nothing more than vanilla.

Yeah, right: you need Forge to provide an update to have something to work on. But why isn’t there an updated vanilla version available?

I have read the board post which says, that there were some huge changes in Minecraft itself, but come on - how many months have it been since 1.13 got released?
I’m not trying to put anyone down - I understand. that you are working for free and therefore I have nothing but respect!

But here comes my problem:
When I want to start right now to develop plugins (not open sorce, only for my own little server -> it’s just important that everything works fine). Should I really choose Sponge? When I look at how dead the community board is, I have serious doubt in this community / project.

Since I can get and run Spigot completely legal (am I right?) by using there BuildTools tool, is there a real benefit right now, when I go with Sponge (I’m only talking from my perspective right now). Plus the community over there is also bigger - faster and better (?) support, if it’s needed.

What do you mean? I hope this post does not offend anyone of you guys. I was just very shocked when I saw, that there isn’t any activity when it comes to the community board (yeah I have seen that there are recent github commits).

Thanks…


#2

New threads are created mainly by people who have found bugs. There are incredibly few of them you say? :slight_smile:

The community’s certainly active, and constantly developing. It’s just that most of the chitchat takes place in the Discord server.

There is no build for 1.13 yet because it did in fact break everything. The API for the new version is nowhere close to done. The implementation is nowhere close to done either. These things take time and are developed by just a few people (if you are a developer, you can assist!). 1.13 broke items, blocks, half the data system, the world format, commands, and so forth. Thus the API must be adapted to continue to accurately represent the internal state of Minecraft, and the implementation must be adapted to the new codebase. We’re also taking the opportunity to refactor some clunky APIs, so that we break everything all at once instead of guaranteeing future breaks. You compare us to Spigot’s speed, but Spigot changes as little as possible, frequently nothing, and both its API and implementation come nowhere near to the depth of Sponge’s.

Feel free to use Spigot if you believe that it’s what’s right for your server. But it’s a dying system. md_5 fixed 1.13 by dynamically rewriting plugin bytecode at runtime - this can only produce the most onerous of nasal demons eventually. We have no such issues.

So, to put it succinctly: Try it and see.


#3

Don’t get me wrong! As I said, I’m literally following this project since day one. I was just a little bit stunned by the overall board activity. But I get, that there are not that many posts, because the majority of users don’t see the technical advance of using spongepowered yet.

Maybe they will be forced to jump to this project sooner or later.

The reason why I was / am sceptical: there was a ton of hype and thus there were many people writing in this board. Probably shows, that everybody wants everything asap, ha


#4

You misunderstand. A person who loves the project, finds all the plugins they need, and never encounters any difficulty will most likely never post here. Posts are primarily problems, new plugins, and official announcements. Right now there are over a thousand servers using Sponge, and that’s just the number who have explicitly enabled tracking - for the grand total, I estimate it’s about four times that. You could also look at Ore—Nucleus, the most popular plugin, has been downloaded almost thirty thousand times. That’s how you tell how lively the project is.


#5

I do understand what you are trying to say, and I couldn’t agree more :slight_smile: BUT I don’t care about these “Please help me” topics (they are totally fine), I was just wondering why there were no announcements / not that many posts in topics announcing project related stuff.
But as you said, discord is a thing - I didn’t think about that!

I was anyway not a huge fan of using Spigot (especially from a technical perspective), but now I’m feeling very comfortable by just sticking to Sponge Vanilla :slight_smile:


#6

Just to add some context: Getting a 1.13 environment required updates to our core tool that provides us with a usable and testable environment running Minecraft that ended up being rewritten from scratch entirely and only recently, after spending pretty much an entire weekend digging through the rewritten tool to get a partial workspace to see some usable 1.13 code and then after another couple days worth of research and development to get a fully dependable workspace to be able to re-implement several large swaths of the API onto 1.13’s codebase. Of course, being an admin, this isn’t quite as visible, and it should have come from either me, Zidane, or blood, to have brought some news about 1.13’s development, but it’s very much not the case that we’ve been sitting on our laurels doing nothing with our time and deciding not to update. The very core of how Sponge is built was undergoing large amounts of rework, including:

  • MCP which provides us with tools to decompile Minecraft jars, split up server and client code, recompile, rename code from obfuscated things like vs.a.c() to IRegistry.BLOCKS.init()
  • ForgeGradle which takes various arguments from our Gradle build script to gather the necessary dependencies and runs various scripts to produce a dependable jar with sources to code against, and conversely, re-obfuscates our produced jar back into MCP middleman SRG mapped code to remain compatible with not just Forge, but also plugins as well (MCP names are built by the community, so some method names can change, but SRG names are created once and set for each Minecraft version)
  • ModLauncher, a replacement for LaunchWrapper that has been used by Forge and Sponge for years to apply class transformations at runtime (it’s what is used to rename the classes in Minecraft to proper names and applies SRG names) that also enabled us to use Mixin (which applies Sponge’s transformations onto vanilla/forge code at runtime to make sponge work), which sets a new communal standard of registering mods/plugins along with dependency resolution (you can google or wiki java dependency hell) that will allow Sponge’s mixing to become prioritized transformations over other mods/plugins
  • Mixin, which as described before, transforms classes at runtime, needs to be updated to support the new ModLauncher.

All in all, yes, it’s been a while, but with the first two tools being out of our control (and seriously, we don’t have the man power (or community backing) to absorb control, let alone maintain) with regards to their updates, it’s still a work in progress.

But, as pie has mentioned, we are well underway to applying any and all changes, updates, features, and removals from the API, but the harder part is actually updating somewhere close to 170k lines worth of implementation

And that is including the ~50k someodd lines of code directly transforming Minecraft’s code.

This isn’t a rant about how hard it is, or how people shouldn’t complain, or how people are stupid for asking about updates. I’m just providing some thoughtful insight as to all that has happened to getting to where Sponge is today with regards to 1.13’s development.

Will this happen again in the future? Unlikely, the biggest pain of all upgrades across the whole system, toolchain included, is we’re replacing legacy tools that have been in use and patched to “just work” for the last 8 years and with updates to Minecraft and Java along with the demands of tools like Mixins and Sponge and Forge, a lot of research and development went into developing those fancy new tools (ForgeGradle + MCP’s toolchain + ModLauncher).

If we had decided to be gung-ho and waste some precious development time that would’ve brought only more bugs, issues, and requests for maintenance, we very well could have brute forced an update to 1.13 for SpongeVanilla, keeping around the same old legacy systems, with several patches from us, that would’ve barely functioned, and then still have to rewrite a majority of our implementation to apply an old API version that wasn’t designed for 1.13’s internal design. And then we would have had to redo all of it anyways because SpongeForge would’ve needed to be partially rewritten to remain compatible with Forge’s extensive rewrite.


#7

Sponge Powered development is truly ground breaking. The closest thing that has ever existed to SpongeForge was Bukket’s “Spout” plugin and that was hacky at best… Sponge has allowed admins the ability to create Forge modded server with all the back end functionality as a bukkit or spigot server. The development is a bit slow but I applaud the Sponge team for their efforts, this project is no easy task for them and the API they’ve developed is second to none. Soon people will realize that Sponge is the way to go for both vanilla and Forge servers!


#8

Thanks for that post!
Another question about the big update to 1.13.
When I start to write a plugin, will it completely break / not break at all / need some adjustments to be compatible with 1.13 Sponge Vanilla?
I know, this question might be hard to answer. Basicially I just want to know, if there will be many API changes on the plugin dev side.
Thanks :slight_smile:


#9

While im not the person you asked. I can say that Minecraft has been preparing for this update since 1.7 (or 1.8), around the time sponge was being originally developed.
As of this, Sponge API was designed forward facing, meaning even in the early days of Sponge it was preparing for this update, so there will not be a huge change (API wise - as stated before implementation is completely different).

You can see the changes to the API sponge are doing for 1.13 and 1.14 with the links below

1.13: https://github.com/SpongePowered/SpongeAPI/pull/1949

1.14: https://github.com/SpongePowered/SpongeAPI/pull/1950

Note that the 1.13 has a closed sign on it. There is a 1.13 branch which you can find here and build against.


#10

Thanks for your answer :slight_smile:


#11

Wasn’t it decided that the big command break would come in API 8? As well as inventories and (I think) data?


#12

SpongeAPI uses SemVer, meaning that the releases are marked major.minor.bugfix. The bugfix release means there should be zero API change; the minor release means that plugins built against earlier minor releases are guaranteed compatible with later minor releases; the major release means that there are no compatibility guarantees. We’re on API 7.1.0; Minecraft 1.13 necessitates API 8.0.0 because of, if nothing else, the removal of item and block types affected by The Flattening. Thus, there are no compatibility guarantees with the 1.13 update, and most plugins will require updating.


#13

That sounds familiar, but im not 100% sure