Callas wrote:
I may be wrong, but I think the NPCs in the economy server (which are essentially individual planetry economies) cannot be coded up using the AI functions in Oolite for NPC ships.
That's for when the 'economy server' starts to grow and morph into something a bit more than just an 'economy server'. I'm saying here - don't hem yourself in! If you make an allowance to support the existing Oolite 'infrastructure', you'll find it much easier to grow the project when you think "Hmmm... wouldn't it be nice if players could do co-operative missions..." and the whole thing starts to snowball.
The server is the same for all people, so permanent changes are part of the server. You wouldn't script them, excepting that it would make the behaviour easier to change, since you'd change the script rather than recompile the server, which isn't a good enough reason by itself.
Oh, but it is a good enough reason all by itself. In fact, it's the whole point of adding scriptability to a program! Making it easy to extend without having to recompile anything.
Look at most types of server - many of them are modular. Look at Apache. Look at even things that run on servers like Drupal. If a server is unscriptable, you also end up making modifications only possible by people who (a) know $LANGUAGE that it's written in and (b) intimately know the internal server architecture, and (c) more than likely need commit access to the source repository.
You could argue that Oolite itself doesn't need scripts - it's open source, therefore, anyone can submit a source change or put patches out. But guess what - no one ever would due to the precipitous learning curve. The scripting system makes it three orders of magnitude for players to turn a cool idea into an add-on for the game. It means there isn't a gigantic, precipitous learning curve for the player, and that most players who are inclined to extend and improve the game can do so. In most instances, OXPs _do_ become permanent on a user's machine, too.
This is the stroke of genius in Oolite, and is what keeps it moving despite the recent development hiatus - is that it's easy to extend. The same principle absolutely applies to servers. If it didn't then system administrators would modify the Unix kernel for their sysadmin tasks, instead of writing a shell scripts (and yes, these shell scripts on servers can be pretty much permanent fixtures). It doesn't matter what the server is - in most cases, if you want it to be easily extensible, providing an easy mechanism to do so will accomplish that job.