So, this quote got me thinking:
The original AI is still in the core code - extracting it to scripts would be time-consuming (never mind adding to the game's loading time), even though, as far as I can tell, it's not doing anything (or much) the API wouldn't let it do.
This reminds me of something I've been meaning to ask about. Would it be possible to make Starfarer able to load .class files directly? This would both greatly decrease loading time as well as allow us to use generics and other things not supported by Janino. And they would still go through the custom classloader, correct?
Interesting idea. Let me take a look at what it would take to load up jar/class files dynamically. With jars, you'd still have to use scripts as stubs to call into them... unless the data definitions were changed to allow you to specify stuff within a jar directly. Hmm.
Wouldn't it be neat to have a blog post on the technical aspects of creating starfarer? I'm a programmer, with delusions of making games someday, and so I'd be very interested in hearing about some of the more technical aspects; what libraries are being used; where some of the gotchas are; what sorts of things you have to do to provide reasonable security against malicious code in mods, etc.
(This is, incidentally, how I actually found Starfarer; I was wandering through java game development forums, happened on a thread listing games under construction using java, and then ended up muttering something about "Hey! That looks suspiciously like the sort of thing I'd want to make! Did someone invent an orbital mind-reading laser while I wasn't paying attention? Where's my tin foil hat?")