Collaboration of TAVERN


I would look for collaboration to help with TAVERN, including:

  • Help with standard adventure library
  • Help tavernc-parser.c (which is mostly complete, but may contain mistakes)
  • Find any mistakes and/or review drafts
  • Someone who knows linguistics can help with pronunciation extension, perhaps
  • Anything else that anyone seem to consider necessary

All of this must be public domain, with the exception of external stories which you may license as you wish.

You can write your request, agreement, disagreement, comment, question, and/or complaint on here please, and also on TAVERN ticket system too I suppose. OK


Forum: [url]]

(jkj yuio) #2

TAVERN looks interesting but, unless i missed it, it needs a tutorial about how to actually build a game. A small demo with a couple of rooms and 1 puzzle would work well.

Good luck with the project


We will need to write standard adventure library before a tutorial about how to actually build a game can be made up, I think.

(jkj yuio) #4

yes indeed. There needs to be some kind of “bootstrap” library of verbs and operations as a “starter kit”.

I looked at the files, which are mostly about the TAVERN compiler. There’s some emerging documentation, but not a lot. But what’s there is a good start.

I have a GUI front end for parser games. I was wondering about building a TAVERN back-end adaptor. It would be possible now as a “text box”, but how feasible is it to extend TAVERN to support the GUI;

Info for;

  • the map
  • your inventory
  • objects in room
  • current location
  • NPCs you’ve met
  • data about objects
  • show picture notification
  • play sound notification

My feeling is that the TAVERN system needs to offer more than a text interface.



Stuff more than a text interface is possible, but it is optional. (However, if a game really requires those features, it can specify them in the FEATURE.SET lump and it is possible to tell before you even try to load the game, and an implementation that does not support these features will refuse to load it.)

It is my intention that you can use TAVERN even for just text only games, and they can be use with implementation that do not support pictures and so on. But that extensions can add such thing if needed; the game may either make them optional or required.


I’ve looked at TAVERN. I like exotic stuff like that! Yet I’m not a programmer, so I don’t understand much. I’ve compiled tavern.c (which is the interpreter?), but failed to compiled tavernc.c (the compiler, probably?)

[code][22:42:17][]/tmp/TAVERN-c960018d0f$ gcc tavernc-parser.c
/usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/x86_64-linux-gnu/crt1.o: In function _start': (.text+0x20): undefined reference tomain’
collect2: error: ld returned 1 exit status

[22:42:20][]/tmp/TAVERN-c960018d0f$ gcc tavernc.c
/tmp/ccIXAio8.o: In function load_extension': tavernc.c:(.text+0x28d7): undefined reference todlopen’
tavernc.c:(.text+0x291a): undefined reference to dlopen' tavernc.c:(.text+0x2a16): undefined reference todlsym’
collect2: error: ld returned 1 exit status[/code]

You’ve posted a sample game in another thread, you could probably add it to the fossil repo. Do you have a working implementation? So we could test the compilation and play it through the interpreter. Or is it too early for that?


Compile it with “bash”, not “gcc” (or use the command-line switches mentioned at the top of the file, if you do use “gcc” and wish to set your own output path and stuff like that) (this is something unusual I do with my own programs; most C programs can’t be compiled by running them through “bash”). The file tavern.c is the interpreter; tavernc.c is the standard compiler. Also, “tavernc-parser.c” is a compiler extension (currently incomplete) and not a standalone program (that is what “undefined reference to `main’” means; it is trying to compile it as a standalone program because you didn’t tell it otherwise, but a standalone program must export a function called “main”), although it is not important for CYOA (or a game using a simpler parser than the one that extension implements).

The example in the other thread works, but it is not a full game, but rather more of just a test.

Compile the example with: tavernc < example.src > example.tav

Execute the example with: tavern example.tav

I have not worked on the standard adventure library or the parser compiler extension in a while, although the program does work as is. (If you are doing CYOA, neither of these two things will be helpful anyways)

Also, if you just typed “gcc tavern.c”, you will get an unoptimized unstripped executable called “a.out” in your current directory, which is probably not what you want.


ok, thank you, it works now.

You should add all those info in the docs in my opinion: after I’ve read on my mobile phone about the bash compile, I’ve turned onto my computer without reading the rest, and I’ve tried first to compile the sample this way when I read in the doc about it outputs to stdout: tavernc sample.txt > sample.tav and it didn’t work this way. But now I re-read again the compiler.doc “The compiler takes the source from stdin” it should have been obvious. Well, a written example of the command wouldn’t kill :slight_smile: