Strangely enough, I've been thinking about something like that recently, but there'd be a LOT of work and "if thens" required for even one project set up. If you can get something off the ground though, I'm more than interested.
The way we're looking at handling it right now, the game is run on a main loop that receives "events" in a queue. The queue runs these events and modifies game entities, then hands control to the player for input once the queue has been emptied. The player's input is then parsed and any actions taken by the player get added into the queue and start making changes to in-game assets.
The parts that would make up the "game," then, are stored in XML files. These XML files let the designer dictate what commands are available to the player (including all of the aspects that make up a "command" like valid targets and the effect on those targets), what game actors are available (read that as "party members"), the starting conditions of the game (such as starting party, levels, items, equipment, and location), any physical objects, and so on. So most of the actual game information is stored in XML, then read by the game player which actually runs the code that makes the XML files
mean something.
Take this XML as an example:
<action name="quit" event="Event_Quit" turns="0">
<output>
<help>Exits the currently running game.</help>
<usage>Quit</usage>
<success>Thank you for playing!</success>
<failure>Failed to exit the game!</failure>
</output>
<targets default_class="all">
<target class="all"/>
</targets>
</action>
This code shows how to create a command that would exit the game. The player would type "quit" at the input prompt and the game would close cleanly once the queue got to the Event_Quit (which would most likely be immediate, since the command uses zero turns). If the command succeeded, the output "Thank you for playing!" would appear, otherwise it would show "Failed to exit the game!" If the player typed "help quit" at the input prompt, it would display "Quit - Exits the currently running game." The command itself would be case-insensitive, by the way.
Of course, all we have right now is skeleton code, really, but so far, it works as expected.
Two days ago my friend said that he wanted to create a text based RPG. I my self don't like them to much, but my friend would love to use the construction kit.
Ha, well, that's good to know. At least
someone would be interested in using it.
Right now, we're going ahead and starting work on a basic construction kit to make the game that we want to make right now, which means it will be missing a lot of features that others might want to use. If we can get our own version up and running well enough, and there's enough interest, we'd certainly be willing to start adding extra bells and whistles to it.
And now that we're thinking about it, where would the proper place be to discuss how a system like this would work if other people are interested in using it? New Projects seems like it's focused on actual games, not tools used to create them, and we wouldn't call this "another maker," since it's really a couple of source files and a decent batch of XML. So... where would that topic go?
And is anyone else interested in anything like this?