Maybe we could have some sort of license system? Like any plug-in made has to be approved and licensed some how before being posted on a plugins directory. So this can stop engines being ruined. Then if testing is too slow, we could have a BETA Plug-ins area for people who want to test.
I like the idea of XML extentions, however the problem is if somebody (like me) wants to add a complex element such as my Anti-matter particle (Acts like DUST until it hits another object, which it then "eats" and creates a pressure vacuum). that's going to be one HELL of a XML file.
As for DLL style plugins, I suggest a system similar to the NewGRFs of OpenTTD; a standardised format which goes across all platforms. Problems I can see is additional save data to specify which DLLs are used in which order, as well as some form of content-distribution system so people can get these missing files.
Futher problems with the NewGRF system would mean a separate compiler for these or using a diff style plain text plug-in
I concur that XML would be ideal for this sort of idea. A parser would have to be implemented that would be able to allow add-on programmers to change all of the attributes of an element that could normally be changed by editing the C-source. That would be challenging, but it might be the best way to do it.
I'm surprised this thread is actually going pretty far
I like the xml idea, I never really thought of that..
coders could also make their powders interact with other plugins that others have made, but if those other plugins aren't in your folder, there would have to be some handling for the extra code that isn't being used, I guess it would be ignored since the 2 particles would never interact unless the plugin IS in the folder, but it might cause problems possibly, so bugs would have to be worked out..
I would of thought a simple element coding language would be simple.
Example (PMETL(Pressure Metal)):
Element = 57(?) Color= (Color Thingy) Conduct = Yes Special = Yes: If SPRK on PMETL then send SPRK Generate 3.00 pressure until 400 Pixels and Fade Melt = 1000C
And what would the advantage of that, against using dynamic libraries or even XML?