the only thing is SC’s annoying problem with getting hung up on duplicate class names, while failing to ignore duplicate file names. (it will happily parse two different copies of Engine_Passerby.sc, but totally fail to compile unless i rename my copy of class Engine_Passerby to class Engine_ZPasserby or whatever.) but yea, if you “fork” an engine by adding a prefix, that will work just fine.
we’ve sketched out some possible solutions to this but they come with definite compromises and are tricky. (e.g., we could modify sclang to skip duplicate filenames in class compilation; we could change classpath and reboot sclang any time an engine is loaded.) we’re going to try it this way first.
there is absolutely nothing preventing multiple copies of any .lua file existing currently, though feedback on the exact syntax/behavior of lua include could be useful at this point.
i think the SC dependencies will be less of an issue in practice - everyone who runs the 2.0 update will end up with all common engines installed, and for example @carvingcode’s scripts will work with zero additional effort from the user.