So, one of the more interesting ideas I’ve had bouncing around in my head for a while for Sylverant was providing the ability to modify the behavior of the server without modifying the main code. What this means is that on certain actions within the server, a script of some sort will be able to be called to act on the action. While it may seem a bit silly on first glance, the main attraction of this initially was to be able to have server-side special game events for PSO.
Think of it this way, what if you wanted to be able to set something up to reward people for killing lots of monsters. It would be relatively easy to do this if you wanted to confine it to a quest, but what if you wanted it to apply OUTSIDE of a quest? Yes, this could be built into the server code, but then it wouldn’t be much of a “special event” would it?
Another potential use for this event support is in prototyping new code for the server. Sometimes its a pain to have to recompile everything every time a small change is to be made to support something (like say, PSO Episode III). It’d be much more convenient to just modify a script and continue on for that.
So, after a bit of puttering around with the idea, I decided to start implementing it using Python as the scripting language. The start of this work was committed as r428 of the Sylverant SVN repository. While it can’t do much yet, hopefully it provides a nice base for where I want to go with it.