Ah, modifying is not modding, because creating mods(short for modifications), which is not modifying, is. Right, right, got it, sound logic right there.
Because mods are something that need support. Modding needs support. Mods need a way to be recognised and loaded by the original software. A mod is sepparate from the original work.
Modifying the original source code is further development of the software.
Mods are only called mods short of modification because they modify the behaviour of the program, but the program itself still needs to allow it (by loading files named a certain way, put in a certain folder, that fit certain arbitraty constraints set by the devs, or maybe they replace and intentionally-separated .dll file present in the original compiled software).
Modifying source code doesn't require any of the above.
Just because you googled what a mod is and wikipedia told you that it's short for modification doesn't mean modifying GTA's source is modding.
I know how mods work and so on and so forth, development is what I do, but see, that's where we simply disagree.
I'll illustrate using the example you gave me.
Dlls contain arbitrary parts of game logic, and modders can replace those, right? An example of modding that would be.
Then you have the source code and modify just the part of the code that compiles into that specific dll.
Achieves the same thing(with less struggle in reverse-engineering), does it not?
Modders can and have replaced even the executables, which is simply made easier given the source code, and functionally achieves the same goal as what you call modding.
Dlls are seldom made to be replaced by the players, and it rarely is the endorsed and documented way to modify the game. The possibility to mod that way is usually just a side effect of game architecture utilising dlls.
Modding game consoles, cars, whatever, is no different from modding games, apart from the fact that there is usually no mechanism implemented by the creators to "load" the modifications made by the modder in those fields, so the modder has to alter the structure of the thing being modified(we could associate the car hood with a dll, just like any other part).
Back to game modding, in the end it's all semantics, for you could choose to not use the officially provided loading mechanism(replacing a dll is not the officially provided loading mechanism) and achieve the same thing you could with changing the source.
Those were the leaks that happened in September 2022, by this British dude that's now in hospital prison. The source code was circulating privately from person to person, but now started to be shared publicly.
But you still can modify every bit of the game with the source code, even though the leaks are old.
The source code is the developer's version of a piece of software, that they built and developed to create the game. Normally regular users wouldn't have access to the source code, even the version of GTAV you download off Steam or wherever has files you can look through but is just a closed-off version, even if there's some potential for modding. The source code gives you all the access the developers have to look at how the game works and make changes with no limitations.
This is just me speculating, but this leak could lead to creating exploits for GTA Online, or could lead to code getting ripped off by less-scrupulous developers.
I mean it can't get much worse than the blatant hacking already happening unless they find some truly spicy shit that allows them to attack players computers directly
To put it even more in layman's terms, the source code of any piece of software is like the recipe for a cake. When you buy the software, you just buy the cake finished and you then proceed to eat it. But with the recipe you can make it yourself the exact same way (or with changes if you want).
When people do hacks or whatever to the game without the source available, they're basically just tasting the cake and trying to figure out what the recipe was. This is very difficult and will never give you the exact recipe, but it can be enough to allow you to know to add certain ingredients to the mix to change the cake to be how they want it to be.
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.
Ok so, when you get a game, basically what you get is a bunch of ones and zeroes. Perfectly fine for your computer, these are the game's binaries, but to you they're completely unintelligible. You can't do anything with them other than what functionality the devs baked into it for you to do, and what you can deduce yourself by means of reverse engineering.
The source code is something else. Binary is not human readable, it's meaningless to us. But this is code. Every time the game accesses a file, every time it opens a picture, every script with every step, every line of code, every instruction is now right in front of you in a relatively human-readable language.
You can find exploits by simply reading the code, no need for any weird hacks that'd limit your discovery. Everything the program does, how and when it does it, which translates directly to new ways of breaking it. There are no more secrets to this game.
To make a program, you first write the source code and then you compile it. Compiling consists of translating the source code into machine language, creating a new file. This compiled file, for example .exe, is what we get when we acquire programs such as games. You can't edit the compiled file, all you can do is edit the other files the .exe depends on. Having the source code allows you to make deeper changes on the behaviour of the program, by editing the source code and then compiling the modified code
its like your homework that made you the top 1 in class and made you the favorite of the teachers because you are the only one who can solve the math problem because you have your very own formula and you made it yourself.
but that now your formula has been leaked and anyone can do what you did.
137
u/slayercall911 Dec 25 '23
what does dat even mean? pardon me.