So the source code gets turned into a .exe (or equivalent) when it gets compiled right? What stops it from being decompiled? Do the developers add in some kind of cipher? Or is it just that working out what the low level code does in the exe is very difficult?
in most cases you lose a lot of the information in the source code during the compilation process, making decompilation significantly more difficult.
there are cases, particularly with newer games that are less “close to the metal”, where decompilation works really well (hell, it’s the reason why minecraft modding is as it is), but for older or more demanding games those kinds of abstractions would often result in less performance, meaning the devs would spend more effort squeezing as much performance out as possible, which was often done by programming in a lower level than games of today
An interesting note on Minecraft specifically, because it runs on Java which is half-compiled and half-interpreted (I guess??), there’s usually much more information within Java applications than those written in C or C++.
So the source code gets turned into a .exe (or equivalent) when it gets compiled right? What stops it from being decompiled? Do the developers add in some kind of cipher? Or is it just that working out what the low level code does in the exe is very difficult?
in most cases you lose a lot of the information in the source code during the compilation process, making decompilation significantly more difficult.
there are cases, particularly with newer games that are less “close to the metal”, where decompilation works really well (hell, it’s the reason why minecraft modding is as it is), but for older or more demanding games those kinds of abstractions would often result in less performance, meaning the devs would spend more effort squeezing as much performance out as possible, which was often done by programming in a lower level than games of today
An interesting note on Minecraft specifically, because it runs on Java which is half-compiled and half-interpreted (I guess??), there’s usually much more information within Java applications than those written in C or C++.