If this game isn't open source...
Posted: Mon Mar 25, 2013 2:47 pm
...then where would the script for the game be kept? The script has to be stored SOMEWHERE in our computer for our closed-source game to work.
Ace of Spades / OpenSpades
http://www.buildandshoot.com/forums/
http://www.buildandshoot.com/forums/viewtopic.php?f=5&t=2880
rakiru wrote:No, it doesn't. The code (not script) is compiled into machine code (binary data), and that's what's in EXE and DLL files. This is exactly the same reason you don't have Call of Duty or Team Fortress source code on your computer. The reason people can easily mod some games, such as Minecraft, is because they are written in a language that doesn't compile to machine code, allowing them to partially convert it back into code. This is not the case for Ace of Spades.yeah, basically what rakiru said. It's there, but it would be impossible to translate it back into something you could edit.
Articsledder wrote:Not as true as you think. There are several freely available tools that will translate this machine code into asm, which you can read fairly easily. You can write to the game's code+memory fairly easily at runtime, too. Editing the program's disassembly directly and recompiling it into an executable is a little harder (I haven't managed the patience required to learn what I need to know to be able to do it yet), but still doable and not without its drawbacks (GM did this with 0.60). You won't be able to have it translated into a higher-level language unless you do it manually, though, and to be honest it would probably be easier to just rewrite the game from scratch.rakiru wrote:No, it doesn't. The code (not script) is compiled into machine code (binary data), and that's what's in EXE and DLL files. This is exactly the same reason you don't have Call of Duty or Team Fortress source code on your computer. The reason people can easily mod some games, such as Minecraft, is because they are written in a language that doesn't compile to machine code, allowing them to partially convert it back into code. This is not the case for Ace of Spades.yeah, basically what rakiru said. It's there, but it would be impossible to translate it back into something you could edit.
topo wrote:Editing the program's disassembly directly and recompiling it into an executable is a little harder (I haven't managed the patience required to learn what I need to know to be able to do it yet), but still doable and not without its drawbacks (GM did this with 0.60).It required a shitload of scripts written in Python, which required me to read up on the Portable Executable format. It also required that I fix up some of the things it misappropriated as "labels".
topo wrote:Well, yes, you can do that, but I was putting it simply, and as you said, it's not really worth the effort, compared to just rewriting it.Articsledder wrote:Not as true as you think. There are several freely available tools that will translate this machine code into asm, which you can read fairly easily. You can write to the game's code+memory fairly easily at runtime, too. Editing the program's disassembly directly and recompiling it into an executable is a little harder (I haven't managed the patience required to learn what I need to know to be able to do it yet), but still doable and not without its drawbacks (GM did this with 0.60). You won't be able to have it translated into a higher-level language unless you do it manually, though, and to be honest it would probably be easier to just rewrite the game from scratch.rakiru wrote:No, it doesn't. The code (not script) is compiled into machine code (binary data), and that's what's in EXE and DLL files. This is exactly the same reason you don't have Call of Duty or Team Fortress source code on your computer. The reason people can easily mod some games, such as Minecraft, is because they are written in a language that doesn't compile to machine code, allowing them to partially convert it back into code. This is not the case for Ace of Spades.yeah, basically what rakiru said. It's there, but it would be impossible to translate it back into something you could edit.
rakiru wrote:Well, yes, you can do that, but I was putting it simply, and as you said, it's not really worth the effort, compared to just rewriting it.I was responding more to the word "impossible" than to anything else. :P