Hello. I think the best way to ask my question is to give an example of how I modded Sims 3. First the gameplaysystems.dll was extracted from it's package. Then it was disassembled with ildasm. All private variables were changed to public, and the code was then reassembled with ilasm. This dll was then included in Visual Studio instead of the original dll as part of the assembly. However it was ONLY used for the purpose of compiling new code. The gameplaysystems.dll was NOT replaced in the game, thus making all mods non-core. The new game code was then compiled against whatever dlls were needed and then placed in a new package and placed in the mods folder. The fact that the new game code was compiled against public variables had no effect on the game. Any variables referenced worked in game, since the variable states were only checked at compile time, and not at run time.
So my question is, will the process be basically the same for Sims 4, or in a worse case, will the dlls not be interpretable, or in a better case, will all of the code in the gameplayobjects and gameplaysystems dlls (or their corresponding replacements for S4), be modifiable thru python scripts.
Thanks in advance.
0
Comments
To summarise: There will be no need for core mods, a text editor will probably suffice and what can be done depends on how much is exposed to scripting. In general, scripting for Sims 4 will be MUCH easier then Sims 3.
Awesomemod was a core mod, Twallans story progression mod was not.
EDIT: Assume that the script load sequence is: MOD loads after EA's code.
Out of the Mods dir, the game will load Python zips and loose python files. Loose files are meant for iterating while developing and zips are meant for distribution. Zips should contain compiled python for performance. The game itself contains .pyo files.
As for documentation, we have no immediate plans to release info on all our python APIs since there are a lot of them. So some disassembly is still going to needed, sorry. But we will be looking for feedback on what specific APIs you would like more information on and will do what we can to accommodate information requests. The game also puts a lot more things in tuning than Sims 3 did so it's possible a number of mods you would traditionally do as script will be done via tuning and not code. But that said, we know script mods will be needed for things you want to do and I will be here to help with that.
As you have discussed, adding code instead of replacing Maxis code is going to be the best way to author mods. Although in the past week we realized that pure additions has a bug, and an upcoming game update will fix that. Can't give a firm time frame right now other than "soon", but it will be fixed quickly so you guys aren't forced to override our code and make potentially brittle mods.
More details to follow!