r4m0n changed the topic of #kspmodders to: Technical discussion ONLY (KSP related or not), for random shit-talking, join #shitshow (seriously)
egg|nomz|egg is now known as egg|zzz|egg
purpletarget|ktns has joined #kspmodders
Technicalfool_ is now known as TechnicallySleeping
Moistmelon has joined #kspmodders
WetLemons has quit [Ping timeout: 183 seconds]
Moistmelon has quit [Quit: Bye Bye!]
<xShadowx>
anyone seen a factorio mod to save blueprints to use in other games? i know i can export the string and write it down in np++ or such, but auto saving to some library that every game can access would be nice
<Supernovy>
doesn't the vanilla blueprint library do that
Wetmelon has joined #kspmodders
<xShadowx>
all i see is buttons to export string
<xShadowx>
which displays a string to copy
<Supernovy>
I think there's two libraries and one of them you can import from ingame
<Supernovy>
make another save and test it out
<xShadowx>
you any good at circuits?;3
<Supernovy>
I've done a little but I wouldn't say I was that good.
<xShadowx>
ah i see, B is blueprint lib, can save books too \o/
<Supernovy>
"Blueprint library: Allows for keeping players blueprints between individual game saves and allows sharing blueprints in multiplayer games."
<xShadowx>
ya found :)
<xShadowx>
i kept clicking books/blueprints themselves heh
icefire has quit [Ping timeout: 183 seconds]
<xShadowx>
as for circuits - trying to make a generic train station, if chests empty or equal item, then unloads train to chest, so train can leave asap, stage 2, have inserters unload chests, pulse what they grab, so a counter can track'whats on the belt', and tell the inserters to on run if they're unloading the same item as on the belt, belt runs down a row of warehouses, inserters pulse > arith * -1 >
<Supernovy>
a smart station?
<xShadowx>
causes counter to count down :) hitting 0 when belt empty, so next chest of items can unload
<xShadowx>
yar
<Supernovy>
I just have different stations.
<xShadowx>
i used to, but 20+ stations using up land just seems blweh
<xShadowx>
bleh*
<xShadowx>
and its a nice puzzle
GlassYuri has joined #kspmodders
<xShadowx>
trying to get a smart design, then later i can just add more lanes if traffic accually uses, but when trains do full loads theres low enough traffic that individual stations are just sitting empty 95% of time and you gotta check if train comin so dont get run over ;p
Moistmelon has joined #kspmodders
Wetmelon has quit [Ping timeout: 183 seconds]
Technicalfool has joined #kspmodders
TechnicallySleeping has quit [Ping timeout: 195 seconds]
bsq has quit [Read error: Connection reset by peer]
GlassYuri has quit [Read error: Connection reset by peer]
Asymptote has joined #kspmodders
Moistmelon has quit [Read error: Connection reset by peer]
Rokker has quit [Quit: Connection closed for inactivity]
RandomJeb has joined #kspmodders
<Greys>
regarding AMD Zen Zepplins, apparently they've announced that the method of making 8 core + cache dies and then assembling them on a platan to whatever core count a given processor needs costs 10% more per unit; but because the the unitary failure size is much smaller, every failed unit drags down less
<Greys>
so they say that this method of lego processors costs 41% less to manufacture
<Greys>
basically when they make a 32 core processor it's 4x 8 core units, where intel's 32 core processor is one unit, so if that 32 core processor has a defect, now they cannot sell it as a 32 core processor and might not be able to sell it at all
<Greys>
so say there's one dead core spoiling the bunch, that's 31 manufactured cores of garbage
<Greys>
whereas the zepplin process has a maximum spoil of 7 lost cores
<Greys>
ifn's yalls remember AMD's previous attempt at a method like this was 3 core monolith processors, where there were 4 cores present, but one was broken and they used a laser to cut it's connections (and later just did it in software)
Rokker has joined #kspmodders
Supernovy has quit [Ping timeout: 204 seconds]
icefire has joined #kspmodders
fcbayerndm has joined #kspmodders
GlassYuri has joined #kspmodders
fcbayerndm has quit [Quit: fcbayerndm]
fcbayerndm has joined #kspmodders
jinks has quit [Ping timeout: 204 seconds]
jinks has joined #kspmodders
fcbayerndm has quit [Quit: fcbayerndm]
icefire has quit [Read error: Connection reset by peer]
GlassYuri has quit [Quit: Leaving]
<SilverFox>
neat
<SilverFox>
what did I miss while I was gone for the weekend?
<G-Mobile>
zepplins and weird manga
<SilverFox>
my garage is now inaccessible
<G-Mobile>
good thing you don't drive
FoxBot9000 has quit [Remote host closed the connection]
FoxBot9000 has joined #kspmodders
Wetmelon has joined #kspmodders
angavrilov has quit [Remote host closed the connection]
<SilverFox>
there's like, minimal numbers and I ain't good at abstracting this shit
<G-Mobile>
egg ^
<SilverFox>
also it integrates over infinity, but the answer is apparently a fixed string, because it's a wifi password. how the fuck does that make sense
<G-Mobile>
it's a sum
<G-Mobile>
sum of a series
<G-Mobile>
I bet this cancelles out to something that solves to -1/12
<SilverFox>
so it's the sum of an infinite series in there, but that's still infinitely long
<G-Mobile>
there's ways to sum infinite series in finite operations
fcbayerndm has joined #kspmodders
bsq has joined #kspmodders
<G-Mobile>
looking at this equation more, I'm increasingly convinced that this is not a functional formula
<G-Mobile>
I think you're supposed to actually enter this formula as the password
<G-Mobile>
for one, x is undefined, so unless it's a rolling password where they put a number on your receipt and you compute the value of that x, it doesn't make sense at all
<G-Mobile>
and I've never met a wifi firmware that has an automated rolling key feature
<G-Mobile>
so they'd have to modify the key every day
fcbayerndm has quit [Quit: fcbayerndm]
<Asymptote>
Hey guys, a quick word to let you know the survey that I've adressed to KSP modders last month is still online at https://goo.gl/forms/1vrkPYH4az8l32sb2 . Please take 10 minutes to fill it. It will help immeasurably and be much appreciated ;^)
<G-Mobile>
What is it
<SilverFox>
this just seems like a bunch of personal information collection
RandomJeb has quit [Ping timeout: 186 seconds]
<Asymptote>
It's more about your practices actually ;^)
<Asymptote>
Time you spend on a mod, what licences you attach to it, and personal opinion about modding in general.
<SilverFox>
then why is it asking me where I live, my occupation, my age, gender, my level of education, and current employment status, and the field in which I graduated in?
<Asymptote>
But the first part is indeed a bit of demographics.
<SilverFox>
I can answer those questions here easily
<Asymptote>
It won't be anonymous if you post it here.
<SilverFox>
"0 time, all rights reserved, it's neat but I lost my motivation long ago"
<G-Mobile>
What will this data be used for?
<Asymptote>
All details are made in the confidentiality notice.
<Asymptote>
For academic purposes only.
<Asymptote>
I study how modding community emerges in open sources projects within the game's software industry.
<Asymptote>
*-s
<SilverFox>
i dont think ksp is open source though
<G-Mobile>
Its.... Source visible
<Asymptote>
Yes
<Asymptote>
It's an interesting case, as most games because they're proprietary objects but somehow devs manage to let users get access to it.
<Asymptote>
G-Mobile: How is it visible though?
<G-Mobile>
Entirely.
<Asymptote>
I'd rather say it's semi-open since the source code is not published, right?
<G-Mobile>
You cant publish .net code without publishing the source
<G-Mobile>
Just like java, the source precompiles to a fully reversable state, and only turns into executable code during runtime
<G-Mobile>
Ksp.exe is a document containing the source.
<Asymptote>
But you can't open KSP.exe in a text-editor. It's a compiled version of the source, not the source itself, right?
<G-Mobile>
No
<G-Mobile>
.net languages run in a VM just like java, they do not compile until runtime so the VM can create suitable executables for the exact version of the VM for the exact device in this situation
<G-Mobile>
when you compile a C# program, you're not actually compiling it
<G-Mobile>
you're condensing it to "IL", which is not different from the human readable language, except that it's smaller and has all the usings pulled in
<G-Mobile>
it's not like how C compiles to assembly, which exists on it's own separately from C and has no defined relationship backwards
<xShadowx>
Asymptote: ksp.exe isnt 'ksp', its unity
<G-Mobile>
you can't open a C# .exe or .dll file in notepad.exe, but you can in programs like monodev, ilspy, and many others, that are able to translate the IL out of it's condensed form back into C#
<G-Mobile>
unity is a set of DLLs
<xShadowx>
ksp is built using unity, ksp is a mod just as any other mod is
<Asymptote>
That's interesting.
<G-Mobile>
most of which are not written in .net, because Unity Engine is written in C++ I think, but is wrapped in many other layers of interactivity
<G-Mobile>
you can make a unity game entirely in javascript, but it'd be inefficient and cumbersome
<xShadowx>
when you code a mod (making the dll file you see in many code dependant mods) you're making the same thing that has ksp in assembly-csharp.dll
<xShadowx>
it might as well be called ksp.dll ;p
<G-Mobile>
but hopefully you suck less
Wetmelon has quit [Ping timeout: 183 seconds]
<Asymptote>
I always heard of Assembly-CSharp.dll as the file that contained KSP obfuscated basecode.
<xShadowx>
the exe is a unity player, starts unity, loads the dll files
<G-Mobile>
basecode isn't a word
<xShadowx>
no longer obf
<G-Mobile>
they used to obfuscate, but it was the laziest most ignorable obfuscation possible
<xShadowx>
and obf c# code is silly, you can still read even quality obf, just makes it harder to read
<G-Mobile>
it just added a bunch of null code randomly, code that literally does nothing, and when you send the IL to the VM, and the code actually does get compiled, the compiler removes null code to optimize
<G-Mobile>
like if you make variables that never get used, or if statements that can never be true and don't have an else statement, the compiler can detect that and just drop it
TonyC has quit [Ping timeout: 195 seconds]
<G-Mobile>
so you'd be reading through a method and there'd be this little tower of obviously fake code you can just ignore; or get de4dot to remove it for you
<G-Mobile>
to summarize, clicking compile in VS is more similar to putting a text file in a zip archive than it is actually compiling anything; and as long as you have a suitable archive viewer, it's entirely reversible
<Asymptote>
I don't get it, you say it's "no longer obf" xShadowx. When did that happen? And why it was the "laziest most ignorable obfuscation possible" G-Mobile?
<xShadowx>
oh thats why i seem to be missing half a convo XD
<xShadowx>
and because squad quit obfuscasting it
<xShadowx>
gotta ask them why they chose to
<G-Mobile>
Asymptote: imagine you're reading a book, and sometimes between paragraphs, there's a single sentence of random words in all caps
<G-Mobile>
your brain will rapidly understand "this is random garbage"
<xShadowx>
squad obfuscation stuff was on the level of "thIs Is MY SenTeNtenCE NoW obfUScaTeD"
<G-Mobile>
in C# it's the slightest bit more complicated that the compiler makes sure none of this obfuscated code passes through into the runtime, but that's kind of like your brain throwing out the sentence and not bothering to comprehend it
<xShadowx>
it just did a randomly poor job that didn't really have the effect of obfuscating
<xShadowx>
you could still fully read it, it just took you a few more seconds
<G-Mobile>
now minecraft, that's some obfuscation
<xShadowx>
i dont think squad has used obf in what 3-4 years now?
<xShadowx>
think they quit about when it went 1.0 / public
<G-Mobile>
minecraft is java, so the tool chain works the same, which is great for modding. But mojang used an obfuscation method that de-information-ized every member name, so all the methods and values had names like FA, and every time they compiled a new release it would be a different randomly generated mapping of uninformative names
<Asymptote>
Runtime is when your code follows the instructions you wrote, right? You're telling me their C# was poorly written so you could literally see parts of it?
<xShadowx>
term public used loosely, end of beta ;p
<G-Mobile>
Asymptote: no
<G-Mobile>
runtime is when compiled code is executing on the processor
<xShadowx>
c# code gets converted to MSIL
<G-Mobile>
everything we're talking about happens before the compiler
<xShadowx>
MSIL code still has to be readable by what is running it
<xShadowx>
so even good quality obf has not a huge effect
<Asymptote>
But the processor does nothing more than interpreting the instructions you wrote that is, be it translated in machine code.
<G-Mobile>
eh
<Asymptote>
Programs are still written by someone right?
<xShadowx>
yep
<G-Mobile>
let's get down to basics, C# and java run on virtual machines, your C# code never ever runs on the processor
<Asymptote>
They're still compiled by compilers right?
Wetmelon has joined #kspmodders
<xShadowx>
not quite
<G-Mobile>
your C# code gets converted into IL, Intermediary Language, and that's what gets distributed
<G-Mobile>
when you run the program, the VM compiles the IL to the VM's internal assembly language
<xShadowx>
c# isnt machine code, it gets translated to MSIL which simplifies machine code more into tasks so to speak
<G-Mobile>
then your program runs on the virtual processor
<Hyratel_>
that's for JIT, right G-Mobile ?
<G-Mobile>
this means that for every machine, OS, situation, etc, there can be a VM made, that is internally the same
<G-Mobile>
rounding over all the unique details of the circumstance, so your code always runs in a uniform false situation
<xShadowx>
then when you run stuff, based on the machine, that MSIL can do its thing, rather than be strict machine code thatll only work 1 place
<G-Mobile>
your code running on the VM then instructs the VM to do stuff, and your machine's VM interprets that to how to achieve the task here and now
<G-Mobile>
this is exactly why java is great for bluray players and phones
<G-Mobile>
even if the processor, architecture, and instruction set vary considerably, the VM can present an environment for your code to run in, that it will function in
<Hyratel_>
the VM is a Generic System that's an extra layer of abstraction that the Production software dev doesn't have to worry about
<xShadowx>
anyone around good at omplex circuits in factorio?
<Asymptote>
Programs running in VM...
<xShadowx>
complex*
<G-Mobile>
comparatively if you write something in C, you'll need to compile separate binaries for every slightly different platform you want to run it on, and potentially every one of those variations may need different code tweaks to function
<G-Mobile>
however if you write something in C for a specific platform you can tune it to run better
<G-Mobile>
there's also lots of advantages about security, sandboxing, permissions constraints
<G-Mobile>
like, you can make a java program that isn't allowed to access the network, and no matter what security fault occurs in your code, it won't be permitted to access the network
<G-Mobile>
the VM has virtual ram, and the only thing running in that memory space is the program, so if a security fault occurs, it's much more difficult for escaped code to reach memory outside the VM's domain
<Asymptote>
xShadowx, I used to play factorio back to 0.13. How has it evolved?
<G-Mobile>
trains and drones?
<xShadowx>
Asymptote: circuit stuff expanded, more types of science packs
<Asymptote>
Well thanks for the crash course in the C#. Since I barely know how to write scripts in python, you managed to make me want to stay here ;^)
<xShadowx>
i use bobs stuff and my first play since 13, so not sure all what vanilla tweaked
<xShadowx>
uranium mining added, which uses liquid to mine \o/
<xShadowx>
speaker added, so circuits can make sounds now
<G-Mobile>
Asymptote: ask Majiir about functional programming
<Asymptote>
Fill my survey though.
<G-Mobile>
you can probably get a few hours out of him if you mention an event driven game engine
<Asymptote>
I've talked to a few developpers but not Majiir yet.
<Asymptote>
*already
<G-Mobile>
I'm gonna pass on the survey
<Asymptote>
xShadowx, do you have source for when Squad de-obf their code? It really surprises me the devs I've talked too never mentionned it.
<G-Mobile>
they may have just not noticed because of how insignificant it was
<Asymptote>
Why G-Mobile?
<Asymptote>
If it authorizes the average user to look at their code written in full, it's not something insignificant is it?
<G-Mobile>
I ain't know you, I don't know what kind of voodoo you do, I don't know how many snakebites have entered your veins, or what you're about
<G-Mobile>
Asymptote: their obfuscation never hindered anyone from looking at their code in full
<G-Mobile>
go to minecraft, find chickenbones, ask him about minecraft's obfuscation
<xShadowx>
Asymptote: officially, people cannot read ksp code, ie dont go mentioning ILSpy, unofficially they dont seem to care, and people could read it just fine with the obf
<Asymptote>
G-Mobile, I got a round last month. Sarbian introduced me, I know him in person and few of the developpers already know me from interviews I had with them.
<xShadowx>
Asymptote: you're not far from where he lives :)
<Asymptote>
G-Mobile, also none of the informations you'd fill those boxes with could help me to backtrace it to you. I also don't have access to your IP.
<Asymptote>
xShadowx, I'm from Paris :)
<Asymptote>
Yes
<xShadowx>
i see that
<xShadowx>
lol
<Asymptote>
xShadowx, they know about ILSpy I think ;^)
<G-Mobile>
I'm not concerned with jesse cox
<xShadowx>
Asymptote: duh they know
<xShadowx>
i was talking policy
<Asymptote>
Well the EULA seems to forbid such thing, yeah.
<G-Mobile>
ILSpy is integrated into MonoDevelop, which was included with the Unity Editor for the first few years that KSP was for sale, so it was the default IDE for people making code mods
<xShadowx>
unofficially none of em seem to care, just a hush hush thing
<xShadowx>
if someone fucks up they got a tool in writing for the lawyers ;p