Jump to content

Planets and ScaledSpace.


Recommended Posts

So there are some good points raised here. Is it good that you can make new planets? Does Squad care if users make new planets? How easy should it be?

I think its good, assuming Squad doesn't mind. I have yet to hear anything. But if they said "hold off" I would without hesitation.

As to how easy it should be... Well, who cares what you do inside your own game. And nobody can make you install a crap plugin. But from my poking around I have realized that it is much harder to make a good planet than you would think. And to make something that isnt a complete mess you need need to get the orbit right and the mass and the SOI all the other little things that seem minor until thing go boom.

Assuming I get it working I would probably release a simple proof of concept planet and the code. If you want to make a new planet you could look at the code and figure it out. If you wanted to write a fancy gui planet editor you would look at the code and figure it out. Let the market decide.

And I hope I didn't violate my EULA somehow. Didn't actually read it. Who does?

Technically, all of this is a breach of the plugin rules for the add-on release subforum, due to the explicit rules denying access to private variables and any observation or discussion of private KSP source code. However I have seen other mods that rely on such things that have not had any problems. Perhaps you could just release it in a different subforum :wink:.

Link to comment
Share on other sites

Technically, all of this is a breach of the plugin rules for the add-on release subforum, due to the explicit rules denying access to private variables and any observation or discussion of private KSP source code. However I have seen other mods that rely on such things that have not had any problems. Perhaps you could just release it in a different subforum :wink:.

Anything that is available from the plugin API is NOT private code.

Not having appropriate documentation for PQS does not mean it is not supposed to be used by modders.

If they do not want people to use PQS or CelestialBody to create new objects, they could just show the information methods to the API, instead of the whole class.

Link to comment
Share on other sites

Anything that is available from the plugin API is NOT private code.

Not having appropriate documentation for PQS does not mean it is not supposed to be used by modders.

If they do not want people to use PQS or CelestialBody to create new objects, they could just show the information methods to the API, instead of the whole class.

But does adding additional bodies require access to variables that are not publicly accessible? I was under the impression that that was the case, though I might be wrong. Besides, trying to determine the functioning of PQS probably requires decompilation to make sense of it. Apologies for my confusion if the results that have been described in this thread are in fact all perfectly possible with purely the public API.

Link to comment
Share on other sites

But does adding additional bodies require access to variables that are not publicly accessible? I was under the impression that that was the case, though I might be wrong. Besides, trying to determine the functioning of PQS probably requires decompilation to make sense of it. Apologies for my confusion if the results that have been described in this thread are in fact all perfectly possible with purely the public API.

You're not really decompiling anything, you're just translating the bytecode of the Unity assembly into readable functions.

You could see it with notepad++ and enough patience to translate it manually but who does that when you have .Net reflector.

You cannot access any variable/class squad does not want you to access to, just like you cannot do IO outside plugindata.

As for the PQS, of course you need to check how it works, just because Squad didn't give us a documentation about it, but remember the class is available from the plugin API.

Link to comment
Share on other sites

You're not really decompiling anything, you're just translating the bytecode of the Unity assembly into readable functions.

You could see it with notepad++ and enough patience to translate it manually but who does that when you have .Net reflector.

You cannot access any variable/class squad does not want you to access to, just like you cannot do IO outside plugindata.

As for the PQS, of course you need to check how it works, just because Squad didn't give us a documentation about it, but remember the class is available from the plugin API.

I am sorry to say that is incorrect. That is practically the definition of decompiling. I doubt you could get much by looking at the assemblies in a text editor. And Squad has no way of locking down access to classes/variables short of disallowing plugins.

I haven't needed to decompile anything to get this far. Most of the info comes from ISA mapsat, hyperedit, these forums, Unity docs and VisualStudio Intellisense. What I might be doing is accessing classes that Squad would rather I didn't. I am not sure where that line is.

I know almost nothing about the PQS system at this point. I haven't had the time to really look at it. As I pointed out in the original post the problem is to get it right in scaled space. Without that you might as well just put a giant mesh part in orbit somewhere and call it a planet.

Link to comment
Share on other sites

I am sorry to say that is incorrect. That is practically the definition of decompiling. I doubt you could get much by looking at the assemblies in a text editor. And Squad has no way of locking down access to classes/variables short of disallowing plugins.

I haven't needed to decompile anything to get this far. Most of the info comes from ISA mapsat, hyperedit, these forums, Unity docs and VisualStudio Intellisense. What I might be doing is accessing classes that Squad would rather I didn't. I am not sure where that line is.

I know almost nothing about the PQS system at this point. I haven't had the time to really look at it. As I pointed out in the original post the problem is to get it right in scaled space. Without that you might as well just put a giant mesh part in orbit somewhere and call it a planet.

You're not decompiling anything, you're just translating CLI to code.

Squad can of course disallow you to use some classes on plugins just by not exposing them to the plugin API.

As for your work, are you using a large 3D mesh instead of PQS for the planet?

Link to comment
Share on other sites

Seriously, that is a definition of decompiling.

Not with C#, just like comming from .class to .java cannot really be called decompiling.

The code is there, just written in another way.

If you needed to "decompile" to get the code, you woulnd't need any obfuscator to prevent someone from getting even your variable names.

Edited by aftokinito
Link to comment
Share on other sites

Not with C#, just like comming from .class to .java cannot really be called decompiling.

The code is there, just written in another way.

"Machine code is just C written in another way." Of course there are varying degrees of difficulty, but java bytecode to java, and .NET CLI to C# are both decompilation. It reverses the compilation process.

Link to comment
Share on other sites

Not with C#, just like comming from .class to .java cannot really be called decompiling.

The code is there, just written in another way.

It's not something you can debate. Decompiling is defined as any process that converts a lower form of abstraction (in the context of programming languages) to a higher one. Going from .class to .java is decompiling, by any respected definition of the word. Look it up on Wikipedia, or the OED.

Let's end this here. We are getting off topic.

Link to comment
Share on other sites

It's not something you can debate. Decompiling is defined as any process that converts a lower form of abstraction (in the context of programming languages) to a higher one. Going from .class to .java is decompiling, by any respected definition of the word. Look it up on Wikipedia, or the OED.

Let's end this here. We are getting off topic.

The fact is that you're not really compiling anything, just translating for the .Net/Java interpreter.

If you were compiling things into assembly (which is the definition of compiling, translating to binary/assembly), you wouldn't be able to retrieve the variable names anymore, just like you cannot retrieve the variable names of a C++ program after you compile it.

Link to comment
Share on other sites

The fact is that you're not really compiling anything, just translating for the .Net/Java interpreter.

If you were compiling things into assembly (which is the definition of compiling, translating to binary/assembly), you wouldn't be able to retrieve the variable names anymore, just like you cannot retrieve the variable names of a C++ program after you compile it.

If your input goes through a tokenizer, parser, forms an abstract syntax tree, and is then output into a second language, you are compiling. Has nothing to do with binary.

Link to comment
Share on other sites

The fact is that you're not really compiling anything, just translating for the .Net/Java interpreter.

If you were compiling things into assembly (which is the definition of compiling, translating to binary/assembly), you wouldn't be able to retrieve the variable names anymore, just like you cannot retrieve the variable names of a C++ program after you compile it.

Please create a new thread if you wish to discuss this. As a student of Computer Science, I can tell you that CLI and JVM bytecode are not simply "translated source code". The process is not reflective. You do lose local variable names, various language constructs and structure. Like I said, cease the discussion or move to a different thread. This thread is about creating planets in KSP, not semantics.

Link to comment
Share on other sites

As the topic creator I think we should close this thread. It has served its purpose. Another thread should be opened to discuss whether or not plugins should be able to make planets. And if I get anywhere I will open a new thread in a more appropriate location.

Link to comment
Share on other sites

I wouldn't close it until a admin or moderator asks you to. Right now its merely a proof of concept, nothing more, nothing less. I suggest keeping up this thread, updating your results and stop all the discussion on the ethicality of this right now until you know if it is a issue or not.

Link to comment
Share on other sites

I wouldn't close it until a admin or moderator asks you to. Right now its merely a proof of concept, nothing more, nothing less. I suggest keeping up this thread, updating your results and stop all the discussion on the ethicality of this right now until you know if it is a issue or not.

I agree. I'd also like to add that you can debate semantics to determine if this is technically a rules violation, however I don't thin kits very significant nor relevant at the moment. Furthermore, i believe i saw in a dev blog or KSP weekly recently that one of the devs is working on planetary API, so there is reason to believe that squad would be okay with this type of mod.

Link to comment
Share on other sites

I agree. I'd also like to add that you can debate semantics to determine if this is technically a rules violation, however I don't thin kits very significant nor relevant at the moment. Furthermore, i believe i saw in a dev blog or KSP weekly recently that one of the devs is working on planetary API, so there is reason to believe that squad would be okay with this type of mod.

Really? A planetary API? That's awesome! :D

Link to comment
Share on other sites

I am actually been "restarting" my old planet project in secret since my harddrive and brain crash.

Sweet! You were the first guy to ever even try this, I remeber following your progress with great excitement.

You have gotten alot more positive feedback and more help than me lol,

as the first to try this, I don't think anyone would have been able to help you much. Also, i recall the thread as being just about as excited as this one was (though I do recall some people expressing doubts)

Link to comment
Share on other sites

I wish I would have seen this before, but once you are done, or have time, please tell me how you are doing this, or at very least what I should be looking at to modify. This is similar to what I'd like to do. At least now I know it is possible to add planets in a permanent orbit. I see alot of fun with this. :D

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...