[INDEV]SDK: Starmade Development Kit

    Kovu

    GD Intern
    Joined
    May 8, 2013
    Messages
    19
    Reaction score
    19
    SDK

    SDK is a toolkit designed at helping Java programmers modify StarMade. In it's current state, it is Windows ONLY. I do not have the resources to develop it for OSX or Linux at the moment, though future support is planned. This toolkit will be similar to MCP, (Minecraft Coders Pack), in how it works, so if you've migrated over to StarMade, it should be an easy switch from MCP to SDK.

    Currently, SDK is still in development. Decompilation works, but there's a few conflicts having to do with name lengths, which is being sorted out. Recompiling, in theory, works, but because my source is all messed up I can't test it yet. I plan to develop some class, method, and variable mappings to deobfuscate the class files once decompiled, but that will take the most time.

    Right now this is just a kind of interest check, but I'll make this program regardless of the popularity. If you'd like to assist with the project, send me a PM or contact me on Skype (thekovulion).

    I have gotten permission to create this project:
    Exception made

    All you have to do is ask boys and girls.

    The GitHub link can be found here: https://github.com/Rainfur/SDK
     
    Last edited:

    Kovu

    GD Intern
    Joined
    May 8, 2013
    Messages
    19
    Reaction score
    19
    Will it be open source?
    More than likely. The way it's currently set up is to have a bunch of scripts run tools in conjunction so they work out; if I change that to an actual C# or Java program it will be open sourced.
     
    Joined
    Jun 20, 2013
    Messages
    293
    Reaction score
    48
    • Purchased!
    If you want to mirror MCP, look into python with a packaged in runtime. It makes for something that is very deploy-able and understandable to almost anyone. I'd love to help out with the project no matter what language.
     

    Kovu

    GD Intern
    Joined
    May 8, 2013
    Messages
    19
    Reaction score
    19
    If you want to mirror MCP, look into python with a packaged in runtime. It makes for something that is very deploy-able and understandable to almost anyone. I'd love to help out with the project no matter what language.
    Send me a Skype FRQ, (thekovulion). I'd be happy to get some help to speed up development.

    I had looked at Python as a possible language to write it in; I'm not well versed in Python, but that shouldn't be too much of an issue.
     
    Joined
    Oct 1, 2013
    Messages
    60
    Reaction score
    1
    SUPPORT CAMPAIGN INITIATED
    Anyways, I'd love to help if I can (but I probably can't, because I can only program python and web languages currently)
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    I shall bring some news, more or less bad though:
    1. Decompiling the code within the StarMade.jar is against the EULA, as far as Calbiri is concerned. Distributing a tool with that sole purpose would definetly not be a minor violation.
    2. The game will have a built-in modding API (and proper documentation of it), that isn't supposed to be just the minimum. However, during the alpha stage, priorities are elsewhere, understandably
    3. In and of itself, this is a noble idea if executed properly(no copyright violations, etc.), but as mentioned in 1, that isn't the case, unless Schine made an exception for you, and as mentioned in 2, it'll become obsolete over time.
     
    • Like
    Reactions: DukeofRealms

    DukeofRealms

    Count Duku
    Joined
    Sep 4, 2013
    Messages
    1,477
    Reaction score
    1,617
    • Schine
    I shall bring some news, more or less bad though:
    1. Decompiling the code within the StarMade.jar is against the EULA, as far as Calbiri is concerned. Distributing a tool with that sole purpose would definetly not be a minor violation.
    2. The game will have a built-in modding API (and proper documentation of it), that isn't supposed to be just the minimum. However, during the alpha stage, priorities are elsewhere, understandably
    3. In and of itself, this is a noble idea if executed properly(no copyright violations, etc.), but as mentioned in 1, that isn't the case, unless Schine made an exception for you, and as mentioned in 2, it'll become obsolete over time.
    Exception made, argument made slightly invalid.

    All you have to do is ask boys and girls.
     
    Joined
    Oct 1, 2013
    Messages
    60
    Reaction score
    1
    I did see him asking, but I never saw the actual response. And considering I was granted an exception as well…

    Point 2 and 3 remain untouched though :Þ
    They have now been touched.
    I shall bring some news, more or less bad though:
    1. Decompiling the code within the StarMade.jar is against the EULA, as far as Calbiri is concerned. Distributing a tool with that sole purpose would definetly not be a minor violation.
    2. The game will have a built-in modding API (and proper documentation of it), that isn't supposed to be just the minimum. However, during the alpha stage, priorities are elsewhere, understandably
    3. In and of itself, this is a noble idea if executed properly(no copyright violations, etc.), but as mentioned in 1, that isn't the case, unless Schine made an exception for you, and as mentioned in 2, it'll become obsolete over time.
    2. I'd rather have a form of modding sooner than later
    3. Point 1 is invalid, and I gave a rebuttal for point 2, point 3 is literally the other two combined, therefore it is invalid.
     
    Joined
    Jun 20, 2013
    Messages
    293
    Reaction score
    48
    • Purchased!
    They have now been touched.

    2. I'd rather have a form of modding sooner than later
    3. Point 1 is invalid, and I gave a rebuttal for point 2, point 3 is literally the other two combined, therefore it is invalid.
    I agree, with #2. Modding is something that is needed. Not only by the players, but also the server owners.
     
    Joined
    Feb 18, 2015
    Messages
    6
    Reaction score
    1
    Decompilation? Uhmm.... Use WinRAR and open the *.JAR with it. Change the Code and let parse it back to *.JAR with the Java Console. (Works on Win, OSX & *NIX)

    Its a C# & Java App and not a hardcoded C/C++ Project. So the word "Decompile" or "Reverse Engineering" can not be used for Star Made. Guess better writing first a documentation about the filestructure and which kind of data contents by the files.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    Decompilation? Uhmm.... Use WinRAR and open the *.JAR with it. Change the Code and let parse it back to *.JAR with the Java Console. (Works on Win, OSX & *NIX)

    Its a C# & Java App and not a hardcoded C/C++ Project. So the word "Decompile" or "Reverse Engineering" can not be used for Star Made. Guess better writing first a documentation about the filestructure and which kind of data contents by the files.
    Wrong, Java is a compiled language. The fact that the JVM then interprets the compiled code doesn't matter, since the compiled code cannot be read by humans easily.
    If you say one should use a hex-editor to do this, it'll be as easy to modify the *.exe of a "hardcoded C/C++" program the same way.
     
    Last edited:
    Joined
    Feb 18, 2015
    Messages
    6
    Reaction score
    1
    Dont talk with a hobby Machine Engineer what is programming and what is not. Java, C#, Python, HTML, CSS, JS, Ajax, LUA, TCL, PAWN, BATCH, BASH are interpreted Script Languages and needs Bytecode to work. The Bytecode is the real "Program" and is parsed and completed over a few threads before it comes to proceeding the desired script. Thats the reason why its slow, because the JVM allocates Memory in a bad way. In a real programing language like C/C++, COBOL, FORTRAN, PASCAL/DELPHI you have to allocate Memory and release it by your own. Also is a BIN "bootable" which can never be happen with java. Obfuscation is no compilation act... I can write a PHP script and use a obfuscator, that doesnt mean that my PHP script was compiled.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    Dont talk with a hobby Machine Engineer what is programming and what is not. Java, C#, Python, HTML, CSS, JS, Ajax, LUA, TCL, PAWN, BATCH, BASH are interpreted Script Languages and needs Bytecode to work. The Bytecode is the real "Program" and is parsed and completed over a few threads before it comes to proceeding the desired script. Thats the reason why its slow, because the JVM allocates Memory in a bad way. In a real programing language like C/C++, COBOL, FORTRAN, PASCAL/DELPHI you have to allocate Memory and release it by your own. Also is a BIN "bootable" which can never be happen with java. Obfuscation is no compilation act... I can write a PHP script and use a obfuscator, that doesnt mean that my PHP script was compiled.
    I never claimed an obfuscator would compile.

    Regarding Java and compilation:
    Sourcecode specification: http://docs.oracle.com/javase/specs/jls/se7/html/index.html
    File-format specification of the "compiled" code: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

    Yes, java isn't a compiled language by all definitions, but it isn't a script language either, as by most definitions a script is parsed as it is, and doesn't need to be "compiled" first.
    JavaScript is another thing though, as you pointed out(many people I come across don't know the difference between the 2).
     
    Joined
    Feb 18, 2015
    Messages
    6
    Reaction score
    1
    It is a Script Language, because it needs an Interpreter to work! Hardcoded languages will proceed directly on the Processor. Thats the reason why you can not proceed x86 Assembler instructions on a MIPS or ARM Processor Architecture. In our Days is real programming a rare skill, because Java is like play programming.

    The best Example is: Controll your GPIO from your Mainboard in Java. That is impossible, because JVM has no Hardware API Calls to the GPIO controller, but with a hardcoded language you can program one for Java. ;)
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    The best Example is: Controll your GPIO from your Mainboard in Java. That is impossible, because JVM has no Hardware API Calls to the GPIO controller, but with a hardcoded language you can program one for Java. ;)
    On linux I can, although just by using a backdoor(directly interacting with the kernel's firmware).

    Also, definitions differ, and there is nothing one can do about it.
     
    Joined
    Feb 18, 2015
    Messages
    6
    Reaction score
    1
    Yes on a Raspberry Pi with Raspian and Lib which is Raspberry exklusive. Not on your X86/X64 machine...