Recognized by Council A Simple Suggestion about Modding

    Benevolent27

    Join the Dark Side
    Joined
    Aug 21, 2015
    Messages
    585
    Reaction score
    327
    • Purchased!
    My suggestion here is simple. For modding, just let us know what is currently possible and what is not, also show what next options may be opening up. I also suggest you present this information on a wiki page. This way people will not waste their time trying to do the impossible and can also coordinate and learn better from each other. Imagine having a lot of examples linked to and tons of player-written tutorials.

    The reason I suggest this is because I have spent several hours trying to something I feel should be pretty simple. I'm pretty knowledgeable about computers. I've done some java scripting for mods in Minecraft. I am well aware of the structural format of XML files and how java can import these settings into the methods used in the coding. So, I was trying to copy a weapon system, thereby having two types of cannons. But after looking everywhere in the block editor, manually editing all of the configuration xml files, googling, looking at youtube videos, talking in chat and on the forums.. I've gotten nowhere. I even looked through the java code to find the source of how weapons actually are implemented in the code, and I believe I found that it would be impossible for me to implement this function without reverse decompiling, deobfuscating the code, adding new methods for these weapon types, and recompiling everything (which I am not going to do - nor do I think I would be successful if I tried, I'm not that good). I can't seem to get a definitive answer from anyone though, and it's been pretty discouraging.

    Now, if I knew what was actually possible, that would be awesome, because then I'd simply devote my energy toward those types of endeavors. It would also be a lot clearer to me what next options I'd like to see come out for modding. And yes, I know there is a thread called "Modding and you," which serves as a brief introduction to modding in StarMade, but it does not tell us what is and what is not possible currently. If you'd like to read more on the steps I took to attempt copying a weapons system, see this thread.
     
    Last edited:
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    I found that it would be impossible for me to implement this function without reverse decompiling, deobfuscating the code, adding new methods for these weapon types, and recompiling everything
    decompiling: yes, for now
    deobfuscating: likely no, as a large part if not all of the grouping system[which includes weapons, power, shields, etc] is not obfuscated
    recompiling: only the parts you changed, which you then just insert into the jar using an installer. Whether or not you need to recompile for every starmade version depends on whether or not you ended up using obfuscated classes.

    An official API is planned, but we shouldn't expect it while the game still isn't feature complete[a.k.a in alpha].
     

    Benevolent27

    Join the Dark Side
    Joined
    Aug 21, 2015
    Messages
    585
    Reaction score
    327
    • Purchased!
    decompiling: yes, for now
    deobfuscating: likely no, as a large part if not all of the grouping system[which includes weapons, power, shields, etc] is not obfuscated
    recompiling: only the parts you changed, which you then just insert into the jar using an installer. Whether or not you need to recompile for every starmade version depends on whether or not you ended up using obfuscated classes.

    An official API is planned, but we shouldn't expect it while the game still isn't feature complete[a.k.a in alpha].
    When tracking down the origins of the weapons systems, I looked through perhaps 4 or 5 different classes related to the missile weapon, "org/schema/game/common/data/element/ship/ShipDumbMissileElement.class," being one of them. As far as I could tell, this class was referenced in the code as my quote is, but when actually viewing the directory structure within the main java file, it was not present. As far as I could determine, it was rerouted to something like AaB.class within the obfuscated code. But all that aside, I am not wanting to break the TOS to make a mod. I am looking to do official modding, thus my suggestion to make what can and cannot be done presently clear. I feel this is a reasonable suggestion, because I'm sure the devs don't want to frustrate and discourage players who want to donate their time and contribute interesting content for StarMade.

    As for your argument that modding should not occur till there are more features in the game.. Well, there already is a block editor and the ability to modify some of the functionality of existing blocks and weapons. Are you suggesting that functionality should not have been added? I'm more of the opinion that the modding capability should grow organically WITH the game, so that code does not have to be completely rewritten later to fit into the API. As new functions are added, so will the ability to mod more extensively. This form of growth also adds a lot of rich features to the game early on, increasing the variability in gameplay and the attraction to the general public. Modding allows interest in a sandbox game like StarMade to really take off. If they want to increase revenue streams and appeal more to the general public, keeping existing players coming back more often, giving increasing modding ability as the game grows is a great way to do that. It seems they ALMOST got to the point of allowing players to do some interesting modding, but stopped just short (and that is rather disappointing to me).