I remember a while back when someone submitted a patch to allow
dynamic setting of spec procs via OLC controls, which was fairly useful,
in fact. Perhaps it'd be a nice time to add an update to that, and use
dll's/shared object files to allow for a pluggable module system?
Actually, spec procs were the first thing I thought of, but then I
realized that other things; skills, spells, etc, all could be distributed
in binary modules in the same fashion as world files. It started to seem
like a fairly exciting project, especially to push in a new
command/skill/spell and give it a wide distribution; all you'd have to do
is pop a file in a directory, and perhaps run an update command from the
mud (or send a signal, or have it simply check for new/deleted entries on
a timed pulse).
That's all fair and well, probably not even that hard to do;
dlopen, dlsym or LoadLibrary/GetProcAddress are really pretty
straightforward. Then you'd just need a standard name and access scheme
and you'd be set.
What'd I'm curious about though, is there any sort of saftey net
associated with so's/DLL's? The only reason I'd be scared to add things
in this modular form would be that someone else wrote them, so if they
fail, I want to have my mud keep going.
Really though, that's a minor concern. As long as the source code
accompanied it, which it might have to, inorder to be relinked against the
header files if you made interesting changes, you'd be - eventually -
fine.
Anyway, just mostly opening up the topic to discussion. Until I
finish, oh, a mountain of projects for work, which haven't decreased in
number or need for the last, oh, 18 months or so, I don't have the time to
actually _do_ it, but I do have the time to talk about it.
PjD
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT