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