Making assumptions about what is necessary for future users is not a good idea imo.
This was all really sage advice. I kind of want to avoid making another library for the same reasons that I'm not really interested in using anybody else's library, and you already hit those on the head.
Well, in the end it doesn't even matter. <-- can't believe I typed that. The more I outlined and flowcharted and looked at it, the more it was apparent I was verging into "engine" territory. I had already given up the idea of keeping the toolkit and the game binary separate, and decided it would be easier to just play the game from inside the toolkit.
I guess what it comes down to is that the tool I really want isn't a library or a language but just a toolkit that I can use to make my roguelike really quickly. Of course there will end up being a "mini language", but the point would be nobody is expected to write in it except the toolkit, or read it except the toolkit. If somebody felt like modding a game they could dive into the plaintext and attempt it that way but why when the game is also the toolkit? So, that's the philosophy I'm using now.
So basically I'm working on something a la "rpg maker" and that sort of crap, but hopefully with nicely implemented branching story structures and procedurally generated content where needed.
I mean, if I had a nice fully scriptable text editor (I think Semware Editor may have been more or less fully scriptable) I would program a roguelike in that instead. Why remake an engine if there's no need for it? Another really nicely scriptable program was {c0mm0} modem terminal program. If {c0mm0} didn't have to be run in a DOSbox I'd even give that a crack, I used to really enjoy programming in {c0mm0}.
Right now my big hurdle is whether I believe a sufficiently fun, complex world can be handled in a fully linear fashion or if I will need to implement a stack for branching structure. So far (please don't ask for code or binary, I'm working with outlines and flow charts, here) I have the instruction pointer in complete free-fall more or less. An actor, or a grid trigger, or the keybindings, or a timed event can execute a script that can completely change the makeup of all of the above. So either I'll have to make a game-based assumption on where the next instruction comes from when a script ends (move to the next actor, hand control to user input, etc.) or else I'll have to implement a stack and *yawn* it just gets more language-like from there.
Implementing registers, jumps, a stack? ... Eventually it will probably be somewhat similar to Assembly but it will only serve the narrow purpose of letting a lazy person like myself make a procedurally generated, branching story line game "just in time". I have no way of keeping the game maker from doing something silly like pointing two actors at each other as references and creating a loop but oh well.
I'm having fun, that's what counts to me. If I end up making a behemoth that nobody besides myself will ever use, maybe that's even better! No need for "support"!
I basically just don't see myself finishing my currently planned roguelike without something like this.