Logo Platform
logo amplifiers simplified

modding on mac?

Reply
Copied to clipboard!
12 years ago
Sep 24, 2012, 12:06:52 AM
I have to ask - where is the modding file located on the mac version? I see some posts about mac performance but I didn't think it was possible to get mods on mac at the moment.
0Send private message
12 years ago
Sep 24, 2012, 12:25:57 AM
(moderator action: davea: split out of thread on alternative galaxy generator)



Good question. There are three types of mods from this perspective:



a. xml-only file mods which don't touch galaxy files (most mods): No reason these can't work on mac, although I don't know the file location. In the worst case, copy the files into your installation directory, and use "validate game cache" to "uninstall".



b. xml-only file mods which do touch galaxy files (eg, my "more anomalies" mod). Due to what I consider a wrong design choice in the game, any mod like this must redistribute all the files in the galaxy generator directory ... including the galaxy generator executable, even if it is not changed. So a PC mod author cannot "port" this mod due to no access to the galaxy generator executable.



c. mods which change the galaxy generator executable, such as the alternative galaxy generator. Obviously, there is no way for a PC author to release a Mac version or vice-versa.
0Send private message
0Send private message
12 years ago
Sep 26, 2012, 9:53:16 AM
davea wrote:
(moderator action: davea: split out of thread on alternative galaxy generator)



[...] So a PC mod author cannot "port" this mod due to no access to the galaxy generator executable.



[...] Obviously, there is no way for a PC author to release a Mac version or vice-versa.




Wrong.



First, the Galaxy Generator is not an executable. The Test project in the source released on Assembla IS an executable which uses the galaxygenerator dll (aka Dynamically Linked Library).



Galaxy Generator is a pure .Net assembly. If it was not possible for a PC author to release the galaxy generator for the mac, the game won't work at all (which is not the case as i write this). Unity works with Mono, an open source implementation of the CLR, the .Net Runtime (which is responsible for creating application context and assembly loading and executing/jitting the code). Mono can be used on Linux and Mac to use .Net applications or assemblies. Since Unity embeds its own Mono, there's no Mono installation required to play the game and/or execute any assembly with the game (like the Galaxy Generator).



One can recode the GalaxyGenerator, and publish the dll, and it'll work on whatever platform Unity is. There's no "Platform" consideration here (or PC version VS Mac Version). The DLL will work on every platform the game can run on.
0Send private message
12 years ago
Sep 26, 2012, 2:53:44 PM
So, let me understand. The DLL "dynamic link library" which is compiled on the PC will also work natively on the Mac, without any Windows emulator? Then this really should not be called "DLL", which is a term used in Windows programming since the 1980s.
0Send private message
12 years ago
Sep 26, 2012, 3:43:21 PM
A .Net assembly, should it be a dll or an exe, can be executed via Mono on Mac system, since those are bound to Mono as file extensions (like you could associate .jpg to Photoshop or The Gimp, or whatever). The name/extension here is not important, it does not describe what's inside. An exe can be a native 32bits compiled C++ program, a Delphi program, a C# .Net, or any other stuff that is meant to be executed in the windows world. In that particular case (a .Net/Mono dll or an exe), to maintain compatibility with the existing ecosystem of Windows based programs and binary files which run on the CLR, Mono chose to tell the system they are installed on "those are mine, let me run that, would ya ?".



Edit : And since the dll is only the container and implementation for the concept of shared library, i dont see any problem on trying to load that, given the proper tools and/or environment (Mono, for example)

Second edit : That's basically what Wine does on Unix systems : providing an alternative implementation and a layer of compatibility between windows native stuff and unix stuff.
0Send private message
?

Click here to login

Reply
Comment