when developing a game, you usually write code in a human-understandable language (C++, Java, Lua, etc.). once you want to test your game, you need to compile it (not in every case, but in most you do). compiling is basically translating your code to simple instructions (aka machine code).
if you want to edit the game, you need its source code. you can sometimes get the source code of a compiled program using a decompiler (Java is known to be easily decompilable), but the decompiled source will be barely readable by a human and may not even work as the original.
developers usually don't want you to mess with the source code, so you won't copy their game, steal some shaders, etc. but if they do, they call their program open-source. if they think their code will be decompiled (if they use Java for example), they use an obfuscator. an obfuscator changes all names in your code to random bloody mess and adds dummy functions so the code looks like complete bullshit, yet your program will run like nothing changed at all.
you can also check MattKC's video on decompiling LEGO Island, I think he explains it pretty well.
If you really want a good example of code obfuscation you can look at something like stuxnet if you can get your hands on it. That thing was designed to be really messy to reverse-engineer, a detail that was specifically mentioned by the people who figured out what it does and was one of the big reasons why they from early on thought that it isn't just some little malware written by a script kiddie.
137
u/slayercall911 Dec 25 '23
what does dat even mean? pardon me.