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

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…

1 Like

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.

4 Likes

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

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.

2 Likes

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:

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
01%20PM

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

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.

11 Likes

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!

6 Likes

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:

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: 1.13 - The Technical and Aquatic Update by Cybermaxke · Pull Request #1949 · SpongePowered/SpongeAPI · GitHub

1.14: 1.14 - Village and Pillage by Cybermaxke · Pull Request #1950 · SpongePowered/SpongeAPI · GitHub

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.

https://github.com/SpongePowered/SpongeAPI/tree/1.13?files=1

2 Likes

Thanks for your answer :slight_smile:

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

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.

That sounds familiar, but im not 100% sure

You have to choose what you believe to be the best tool given your wants/needs. For my situation Sponge is the superior tool and I say that having hosted bukkit servers in the past.

Sure the community is smaller here but Sponge has come a very long way from 4-5 years ago when it would have been in beta. I personally find, from a server management perspective, that Sponge is way better thought out than its alternatives. There’s fewer plugins available but they are of far better quality and everything essential is avaiable and works very well. For example, I had set up a server when Sponge was about 1 year into beta, abandoned it for several years, and just recently started it back up again. I updated 2 files and everything worked! I still updated my plugins regardless, but I thought this was quite impressive. If I was still using bukkit there’s no chance it would have been that easy.

1 Like

It’s not so much legal as it is ignoring US copyright law. The only reason folks stopped sending uncontested DMCA takedown notices was because someone got swatted. Real police, ready to fire, at their home responding to a faked 911 call claiming they were armed and dangerous. Speaking as one of the Bukkit contributors who could send a DMCA takedown notice because of ongoing violations of the license under which my contributions were made, the whole situation makes me incredibly uncomfortable and I don’t recommend folks touch it.

Also speaking as one of the former Bukkit contributors, I strongly advocate for using Sponge’s API as a massive modernization over Bukkit in terms of support for newer concepts as well as simply better API design. There were a lot of spooky ghosts lingering in Bukkit’s code that we talked about clearing out but never got around to doing so before we shut down the project.

Go Sponge! :slight_smile:

3 Likes

Is there a news article source or police posting etc for this event, something credible to link to for reading? It wouldn’t surprise me, but I’d like to have that piece of information for discussions about why I didn’t go Spigot route on ethical grounds with my grumbling players who have spent the past 4 years constantly being told ‘wait a bit longer yet…’

1 Like

Simple fact is, the bukkit/spigot api has been around longer, has a larger plugin pool and a more “well known” api that people most likely will not make the jump. That and they can sell plugins there. It’s “forbidden” here for some asinine reason that literally no one gets. We dont bother arguing the point, but that is a major turn off for the majority of people who develop plugins on spigot and one of the reasons why no devs have bothered porting/remaking their plugins here.

1 Like

I disagree with that point. There was a thread arguing for paid plugins, it wasnt “forbidden” for an “asInine” reason.

The spigot plugin market is a toxic marketplace where most of the paid plugins are copies of original free plugins or recreations of them. While the majority of the plugins that people actually use and are good quality are free.

The paying for public “mods” is also “forbidden” by minecraft itself, as shown by the EULA that everyone agrees to when running a server. Thats not to say private mods arnt allowed.

This is evidenced by the “Service Exchange” category on the forums. Where many sponge dev have made plenty of money building plugins for people.

While your initial argument of bukkit being around 4 years longer is a valid argument, meaning it is more well known, bigger plugin pool, etc. Sponge is very well known within the forge eco system. So you will find that there are a lot of developers who want to get into forge modding but dont want the hassle of NMS (something bukkit and forge are notorious for), so those developers use sponge.

I myself came to sponge and now only develop for sponge (with the exception of maintaining my current bukkit plugins) due to the DMCA takedown of bukkit 1.8, so ethical reasons and the fact at the time it looked like bukkit wouldn’t come back.

However i only maintain my bukkit plugins now instead of creating new ones because I fell inlove with the sponge api as its so simple to get good at it and it unlocks so much with the vanilla server that bukkit you had to use NMS for.

I myself have thought of many plugins that would only work on sponge as a result of the api. And as the developer of worldedit, craftbook, etc said ‘craftbook on bukkit needs to do all sorts of hacky things to get it working while on sponge it just works’ (I am paraphrasing but the point still stands).

3 Likes

There are tons of things that are “forbidden” within minecraft that happen still by sponge users. Hell even a developer for the api itself is selling on spigot with a new plugin because of it being so frowned upon here. And yes, services exchange is somewhat active because the plugin pool is so small here, and in turn those devs charge a ton of money for development of those plugins. Another reason why the community might “look active” but it really is the same 7-8 developers around and a handful of users looking for support.

People will always argue that Sponge is/will be the better and bigger api in the end, but truth be told as time goes on, just don’t see that happening.