Sponge should have X!

I know I can’t be the only one to notice this. Almost on a daily basis, new users join the forums, and request that one of the following be added:

  • Permissions
  • Economy
  • Anti-Cheat
  • Log-Block
  • Super Awesome Mega Great Feature That Is Explained In One Sentence

While its all well and good that people would like to contribute ideas, suggestions, and feedback to Sponge, I think its critical that a couple of things are addressed, at a global pinned level. Please note none of this is meant as a personal attack on anyone who has done this so far. It is merely a call to be aware of it. We all want this to be a success, but bogging things down with the same questions is not the way to accomplish that.

What is Sponge?
Sponge is an API, or Application Programming Interface. It is something that is placed upon an existing piece of software, usually in conjunction with development of that piece of software, as an additional layer for accessing and modifying data within the program, without needing to edit the actual code itself. This is straight from Wikipedia:

In computer programming, an application programming interface (API) specifies a software component in terms of its operations, their inputs and outputs and underlying types. Its main purpose is to define a set of functionalities that are independent of their respective implementation, allowing both definition and implementation to vary without compromising each other.

How does this apply to Minecraft, Bukkit, Forge, Spigot, etc?
Bukkit and Forge are also API’s built on top of Minecraft, with two key differences. Forge was built upon the client (What you play upon) and Bukkit was built upon the server (What you connect to when playing with friends). Because of the overall level of access on each side, these both had specific functionality they could accomplish. The largest of this being that client-side mods are the only way one can add blocks, models, items, etc. to the game as completely new entries. Soon, things like Spigot and Spout came along, which were ways to try and tie the functionality of Bukkit to the functionality of client modding, originally only possible through Forge (and ModLoader, though that’s a whole other topic).

How does this apply to Sponge?
Sponge for the first time is a conglomeration of some of the biggest names in modding and plugin development working together to make an API that makes it easy for developers on both sides to have compatibility and a unified base to work upon. Sponge sits as a second-level API that gives access to certain functions in Forge, should it be installed, while also providing similar features that Bukkit did.

Why are you telling me all of this?! I just want “X” feature in Sponge!!!1324q124q
Because Sponge DOES NOT add blocks, logging, items, your favorite animal, etc. to the game. It exists to provide the tools necessary for developers to do that, as many have already said they would (through porting threads and the like). Suggesting that they add that will merely bloat the project, cause it to take longer to develop, and worst of all throw it out of the scope of what it is.

What should I suggest then?
Well, I can’t imagine all possible suggestions to the API, but some good examples are things like:

  • Easily managed World Generation
  • Intuitive event system
  • Better logging of specific calls
  • Simple ways to interact with other plugins

Thank you very much, I will link each “I want x” thread now to your post :smiley:

There appear at the top:


Its because Discourse automatically finds related topics :stuck_out_tongue:

And glad you liked the post :slight_smile:

No, it is a backref … if I link this thread it’s appear at the top :wink:
I created a thread in the meta:

I will make a separate post for this in the short future for more elaboration, but maybe GPU accelerated processing for demanding tasks.

1 Like

Basically, Sponge is going to need its own Spigot to add all these useful things to the core.
Or somehow find a way to make it efficient for plugins to add this which Bukkit couldn’t do.

That would be fantastic! But im not sure its something an API can accomplish.

When you say nice things, what are you suggesting? Honestly, provided the API has the necessary features, since its built on top of Forge, there should be VERY little that this cant accomplish.

Good summary! A little correction if I may: Forge was built upon both the client AND server, but Sponge, while built on top of Forge, is primarily for the server-side of things.

1 Like

I was not aware of that, especially as there is no specified download on the MinecraftForge Downloads Page. Do you have a link?

Oh my god! YAY! I now feel creepily successful :stuck_out_tongue_winking_eye:

The universal version and source version contains code for both client and server. The installers allow you to select to either

  1. Install the client
  2. Install the server
  3. Extract the files

With this system there does not need to be a separate client and server download

This should be pinned for all users.

It is. It just isn’t pinned globally.

Other than Robodude’s explanation, I think the best evidence is that there are ‘NMS’ patches on both the FML and Forge github repos.

Respectfully, may I suggest, before spamming posts with this link, you might want actually read posts to be sure they if they are asking for a plugin or suggesting API functions.

1 Like

Multi-Core Processing, instead of single core lame-ness by default, and if not, maybe be able to run the whole program through the GPU instead of the CPU?

i think this would be revolutionary if we could get servers to process through GPUs instead of CPUs… Doesn’t it run through single core CPU right now? Or is there someway that i don’t know of to run the server off of multithreads?

Yeah I suppose I was suggesting this as a feature for a custom server that would have a GPU thread, similar to the Synchronous and Asynchronous threads in Bukkit. Sponge or a separate API could just be there for other plugins to access this thread. The plugin would be responsible for determining how the GPU is utilized.

so is there a way to trick vanilla minecraft into using GPU or Multithread CPU?