Man, you guys are great.
@Marnix, I tried out Escape! and played it up to the dial room. I think this is exactly the kind of thing I’m looking for. Can you send me the source in a private message, or a link to it? I’ll credit you as the author of the original version, of course. If I make any changes, they will probably be very minor (for example I noticed the bathroom doesn’t show the exit; that’s the only thing I’d add to the story so far). I’m enjoying it, will have to finish it before peeking at the code.
Anything I release will likely be under the zlib license, are you alright with the port being released under the same license?
@dfabulich, will definitely check that out, looks a bit heavy for what I have in mind but it’s on my list of games to play now. Will probably need to test this thing with a decent sized game at some point, though (when I get around to figuring out how to mitigate time complexity of lots of rules times lots of data).
@Jeff_Nyman, that looks interesting, but took a look at the source and don’t have much of a clue of what’s going on. I may attempt something like that later on (testing extensibility) but for now I want to focus more on making sure “standard” text adventure stuff is supported in a reasonably clean way.
@faf, I’m not sure about that interpretation of that part of the FAQ. The four paragraphs in that section read:
An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are nonfree or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program’s individual license would grant them.
Where’s the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).
If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
(Emphasis mine… this is essentially the timeless debate about whether dynamic linking infects.)
Since the game will not run without the interpreter, my interpretation is that they likely form a combined work, not two separate programs. There is no GPL’d interpreter that will run it, so I can’t legitimately use the usual loophole regarding that either. I’m not a lawyer, and the GPL is big and scary. I’d rather steer clear of it.