Sponge project: Bukkit-like API with Forge support

Discussion in 'General Help' started by sk89q, Sep 25, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    sk89q

    Hey everyone! Sponge is a project started up by blood (of MCPC+ and Cauldron) and myself to create an API. We've enlisted the help of parts of the Minecraft community, including people and staff from Bukkit, Forge, Spout, Flow, ForgeEssentials, Glowstone, and many more.

    Sponge is licensed under MIT, which means that it will not be encumbered by the legal problems that have affected Bukkit.

    We strongly welcome the input of the community.

    Gist
    * Meant to work similar to Bukkit.
    * Our primarily implementation will support Forge mods natively.
    * We plan to support Glowstone and non-Mojang servers as well.
    * No client mod needed to play on a Sponge-supported server.
    * Client modding (mods on the client) will be permitted.
    * Easy access to NMS if really needed, but with remapped obfuscated names.
    * MIT licensed.

    The Details

    As it will be providing an API, it will be possible to use Sponge on a brand new from-scratch MC server, but we've opted to begin by building on top of Minecraft Forge, which is another modding platform for Minecraft. We've decided to do this because (1) writing a new Minecraft server from scratch without a team on salary is a huge undertaking and (2) it permits you to run both Forge mods and Sponge mods/plugins together. Sponge will not require a modded client, as we've asked Forge to make the necessary changes ot make that possible.

    The new API should be more flexible, and, if you choose to do so, you will be able to access inner parts of Minecraft's code (i.e. NMS) easily. In addition, as Forge uses MCP's mappings, you do not have to worry about the names of obfuscated methods and fields changing between versions of MC. However, we will try to expand the API sufficiently so you will not have to access "NMS" as much as you do in Bukkit.

    Compared to writing a Forge mod, writing on top of Sponge means that your projects have a much smaller chance of breaking between MC versions, just like Bukkit.

    We've talked to SpaceManiac to discuss implementing the Sponge API onto Glowstone, which is an independent Minecraft server that does not use Mojang's code.

    You can <Edit by Moderator: Redacted bit url>

    Links
    * Visit our website: spongepowered.org
    * And forums: forums.spongepowered.org
    * @spongepowered on Twitter
    * SpongePowered on GitHub
    * /r/spongeproject on Reddit
    * #sponge and #spongedev on irc.esper.net (NOTE: You need to register your name with NickServ to join. Message "NickServ" with "help" for more information.)
     
    Last edited by a moderator: Feb 11, 2017
    Inscrutable, Jozeth, Onionbro and 8 others like this.
  2. Offline

    FerusGrim

    fix'd
     
  3. Offline

    Gamecube762

    Din't expect an official post to be on here.
     
    snivell likes this.
  4. Offline

    Acharige

    Community-based project eh?
     
  5. Offline

    xTrollxDudex

    Sponge is recreation of Bukkit. This is a bad thing made worse:

    1. NMS availability. Layout signatures take time to figure out, luckily, someone else does the work for you. Unfortunately, it does take lots of time.
    2. From scratch? This is like a cake mix that you place in the oven after buying it, already made, just extra crap sprinkled on it
    3. Re: "team without salary is huge": Open sourcing is not new
    4. You never explain why we should have to use Sponge over Forge, they already have a good API
    5. Define "flexibility"
    6. NMS is not new with Sponge, you can already access much faster with Forge
    7. Huh, much smaller chance. The chances of it breaking is the same as it with Forge, nothing different.
    8. That's unfortunate he would abandon his project to an alternative depending on a third party
    9. You will also have to take time to reimplement the way NMS works, because it is not multithreaded. Still same as Bukkit, which the team points out numerous times, not because obfuscation, because design. Yes, design.
    10. Please make a valid effort. 3 day intervals between last commit and 60 line code change.

    --------- FAQ stuff --------

    11. Implementation over other API will defeat the purpose of the API being implemented. Forge is not the most performance efficient pierce of software, and neither will Sponge. Hopefully you will at least show tests done.
    12. Please just use a wrapper instead, because you're basically rewriting Forge, and require ASM to modify Forge.
    13. I don't understand how you have entire Forge base yet cannot push out the server already?
    14. Glowstone is clean room enough, SpaceManiac should really continue his efforts on it
    15. I believe the Trident is much farther along than Sponge is, even without Forge base to head start with.
    16. Writing it from scratch really is the only way, not sure why relying on old code is appealing because it won't make development much faster

    I'm disappointed by the amount of the community tricked into what everyone hails as a "superior alternative" that will be released "before everyone else" and has the "support of the entire community." Thankfully, I can say that there are other projects with goals much more "appealing", performance, which is easily implemented using clean room control, stability, as the APIs will be carefully tested and controlled in a development environment, instead of using 3rd party, and simplicity, which is far beyond that possible with NMS and Forge.

    While I appreciate the time taken into the API, the implementation, design, and goals are totally flawed.
     
  6. Offline

    sk89q

    I'm aware that you're leading Trident, and that you've been mudslinging us on various forums. I personally don't see why the community can't work together, but that's your decision.

    Nevertheless, I will respond to your loosely organized list of comments.
    And we work with the rest of the community. What's the problem?
    What?
    No one said that it was new, but it's clear that having large teams of paid developers gets things done quicker. Even large open source projects are funded by companies. This should not be news to anyone.
    Forge does not have an API. I'm not sure that you are familiar with Forge -- Forge is MCP + mod loader + helper methods to register blocks, etc.

    Forge has expressed interest previously in creating an API but has not yet done so.

    Sponge will be the official API for Forge. We're not building this alone: we're working with Forge.
    Being able to do more?
    I didn't say that NMS was new. NMS is a Bukkit specific phrase due to its package naming scheme, and it doesn't exist elsewhere, so obviously it's not new seeing as though we're using a Bukkit term.
    There is a difference between Sponge itself breaking and projects written against Sponge in the same way (Craft)Bukkit breaks but not Bukkit plugins.
    I assume that you are talking about Glowstone. Glowstone doesn't have an API: it uses Bukkit. Nothing is being abandoned.

    Are you not familiar with Glowstone either?
    I'm not sure what you are referring to.
    Welcome to open source. Have you heard of it?
    You are not familiar with Forge it seems.

    Naturally we have to start somewhere.
    Which Forge is completely fine with. We've discussed this with Forge. This is not an independent effort.
    Because Forge doesn't have an API, as I have mentioned previously.
    And he is. Some of us enjoy working with others in the community.
    Well, competition is good, right?
    Glowstone is written from scratch.

    And relying on old code is appealing if you're trying to run mods for Forge, which is probably half of the Minecraft modding community.

    We're giving people the option of using one API -- developed by the community -- to write plugins that both work with Forge mods and an independent version of Minecraft.
    We can respectfully agree to disagree.
     
  7. Offline

    ScuroK

  8. Ha, so far i've only read people claiming Bukkit was "all" or at least "99%" of it all :p. I'd love to know more facts !
     
  9. Offline

    xTrollxDudex

    sk89q
    Ah, I'm glad I caught your attention.

    1. Basically the problem with MCP is you are going to guarantee a fast release. You've been able to prove that you can get a lot of the community, but haven't been able to prove what they've really done.

    2. Also, mention that "only the API is made from scratch" because I thought the server was :p

    3. So you agree with me on the 3rd point?

    4. Forge is already used natively by many mods, why would you want to use Sponge over it? That's the question.

    5. I haven't see what Sponge can do that Forge can't, so in your terms, they'd have "equal" flexibility?

    6/7. Ok thanks for the clarification.

    8. Glowstone is a clean implementation. They're (he's) doing 50% opposite-using an already existing API but implementing from scratch. Sponge is scratch API implementing a loose portion of Forge. Glowstone doesn't need an API, I never said anything about it. I am familiar with the way Glowstone works (except for Gradle, I wouldn't use Gradle, but you get the idea)

    9. I am referring to your point of multiththreading minecraft server. This will work the same way Bukkit did, and is the biggest drawback of Sponge, in my view. Because you are going over minecraft code, it will be much more difficult to multithread than with a clean room like Glowstone.

    10. Yes I have as a matter of fact. Compare with daily code changes 100+ lines per day?

    11. The point is that you've shown no tests at all to prove the efficacy of Sponge. All you've made is claims on meeting/beating performance of Bukkit/Spigot. Forge is perfectly reasonable as a standalone, proven by the mods already made for Forge.

    12. Forge is completely fine with having you rewrite it?

    13. Yet Forge mods though...

    14. Good to know. Divided efforts gets less done.

    15. Indeed. Development pace is a little slow don't you think?

    16. And Sponge isn't. It should be written to provide compatibility for Forge, not the other way around, IMHO.7

    So it's like they say to game developers: Good idea, poor execution.
     
    Hockeymikey likes this.
  10. Offline

    sk89q

    Look, I'm not going to sit here and humor someone who is clearly unhappy that competition exists. Some of us have better things to do.

    You're just repeating what you said in your first post.
    Forge is a sizable community. Check the MC forums, YouTube, etc.
     
  11. Offline

    Gnat008

    sk89q
    Maybe so, but he does bring up some points. Myself, I am looking for as much information from as I can get, in order to make the best decision for the future.
     
    Gamecube762 likes this.
  12. Offline

    xTrollxDudex

    I agree

    Edit: Also I'm not mudslinging. I'm providing reasons why Sponge is flawed, not criticizing it. I have not insulted anyone or anything (yet) with the intent of "competitive" advantage, because that mindset is not the spirit of open source. I also understand you've been telling your supporters that Trident is not a "valid solution," and I'm not the project leader.
     
  13. I see most of the points as void, though some are centered around the FACT that other mods/things have their right to exist too. It's just filled woth non-facts and rant too, instead of pointing out positive alternatives, which then again is a bit strange to do in a Sponge-related post, now that there is a whole sub-forum for "alternatives to Bukkit".

    What else should Spone have been built upon, other than a new community forming around a lot of capable developers and some existing code-base or even a full mod like forge, not to forget several existing/dieing:p) communities joining forces there. Sponge is built towards a couple of goals and to me the decisions taken (that i know of) are about as reasonable as it can get, to get an implementation for MC 1.8 both in time and lasting. I can't tell yet, if/where i will start/continue contributing to, but Sponge will catch one or two of my eyes on the medium run.
     
    1mpre55 likes this.
  14. Offline

    Gnat008

    asofold
    Keep in mind, that there are multiple sides to every story. You cannot make an informed decision based on just one side. Well, you can, but that would be silly.
     
  15. Offline

    sk89q

    Look, if you're mad at me because the #nextstep Google document said Trident was not a "valid solution," that was not because of me. I was the one that was put Trident on to begin with.

    That document was edited by a bunch of people. Someone decided to mark it as "not a solution," but that was after I had already stopped paying attention to the document because blood and I decided to go start Sponge.

    So if you think it's a personal thing, it's not. I have no ill feelings towards the/your project.

    I have utterly said nothing about Trident other than suggesting it as an option in #nextstep.
     
  16. Offline

    xTrollxDudex

    I'm not, just asking for clarification.
     
  17. I don't refer to his reasons to writing that, but to what he wrote - i am 100% on solid ground concerning that, though i didn't say that much, after all.

    Edit: To see more sides, there are other threads. The problem with "invalid criticism" is, that you can't really use it as a base. Most other alternatives are well-represenmted throughout the forums, and probably will each have their own thread soon, if not yet.
     
  18. Offline

    Skionz

    xTrollxDudex A tad bit off topic but does trident have a website yet?
     
  19. Offline

    xTrollxDudex

    Yes, but our dev doesn't anyone to know about it... Yet.

    Now, back to the topic! :)
     
    Skionz likes this.
  20. Offline

    ScuroK

    Hail sk89q ! You should ignore haters.
     
  21. Offline

    mazentheamazin

    That's incorrect, I'm the lead developer and project manager of Trident :)
     
  22. Offline

    sk89q

    My apologies.
     
  23. Offline

    ScuroK

    I hope people will not try fight projects of others. This will not help the community. We should not forget its about fun! its about minecraft!
     
    Zupsub likes this.
  24. Offline

    Gamecube762

    ScuroK
    While for some, it matters greatly on what software we go with. We want to make sure that the software we choose will benefit our server(s) and community.

    Fighting isn't always good, but both that and competition can show you more of each side than what you would have seen without it.
     
    1mpre55, Gnat008 and xTrollxDudex like this.
  25. Offline

    snivell

    Hopefully this works out.
     
    ScuroK likes this.
  26. Offline

    ScuroK

    Sponge will replace the bukkit project and i am looking foreward to it.
     
  27. Offline

    DrPyroCupcake

    I'm fairly excited about Sponge, yet I'm also kind of sad that CraftBukkit no longer exist.
     
    snivell and ScuroK like this.
  28. Offline

    Grovers1

    Do you have any idea when the first server downloads will be?
     
    ScuroK likes this.
  29. Offline

    AronTheGamer

    It's a ForgeMod, isn't it?
     
  30. Offline

    NeelixBFT

    I don't really want to get into it that far, I don't understand coding all that much, but I do understand human nature fairly well. As I see it, you aren't "asking" for anything. Hell, even you said you weren't in your previous post, you're pointing out why something (in your view) is flawed, and therefore inferior to something else. In plain simple english, you are in fact mudslinging, in my view.

    Now, I would like to see a 1.8 implementation, that allows me to use all of the plugins I've enjoyed so much. Whichever one that comes out that is relatively stable and allows me to do that, is the one I will use. May the best project win.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
Thread Status:
Not open for further replies.

Share This Page