Borogove: Online editor for Vorple, Inform, Hugo, Dialog and Ink

This is super exciting! I love that it can compile to a downloadable webpage which can go right online to itch or a competition page! I am going to have to study up on Vorple!

EDIT: I did try downloading the “serinette” sample project and running it, but it couldn’t load the interpreter. Is this normal since it’s running locally and not from an actual website?

2 Likes

Yeah, that’s actually the point, you have to start a server to play a Vorple game. (You are getting the red screen sayng that you have to start a server, right?)

With Borogove, you don’t have to since everything is already online, so it’s easier if you are not confortable with starting a local server on your computer. So once you finished writing your project, you have to put it somewhere on the web (e.g. itch.io), or package it as a standalone app with Electron (I made something for that).

3 Likes

No problem, I’ve just added the extension to the compiler. Hopefully it’ll encourage others to use it too!

2 Likes

Thank you very much!
It seems that the Italian extension raises an error in the online version. I’ll try to fix it offline and I’ll update the file ASAP. Sorry!
Thank you again for your work!

Unluckily I can’t get any error in my offline 6M62. I started with a fresh installation of Inform7 6M62 on Windows taken from the official site, then I installed “Italian Language” and “Text Capture” from the zip that I linked to you above and all works fine. Instead the same source gives this error in the online Borogove (plain Inform 7 version, no Vorple):

In Volume 1 - Settings in the extension Italian Language by Massimo Stella :
Problem. The sentence ‘The grammatical gender of an object is usually masculine gender’ appears to say two things are the same - I am reading ‘grammatical gender of an object’ and ‘masculine gender’ as two different things, and therefore it makes no sense to say that one is the other: it would be like saying that ‘Tom is Jerry’. It would be all right if the second thing were the name of a kind, perhaps with properties: for instance ‘Mouse-Hole is a lighted room’ says that something called Mouse-Hole exists and that it is a ‘room’, which is a kind I know about, combined with a property called ‘lighted’ which I also know about.

The source is this one:

"Prova 6M62" by Leonardo Boselli (in italian)
The salotto is a room.
The poltrona (f) is an enterable supporter in the salotto.

That’s really strange.
Happy New Year!

That’s in fact one of the bugs I mentioned earlier. It happens when the extension is not installed system-wide, and also on some Linux configuration (but I still don’t know which exactly). I guess Borogove’s server runs on Linux. Then the issue doesn’t come from Borogove directly.

The bug report is here, and a relevant thread with a workaround here.

I’ve just rediscovered the thread with your workaround regarding language extensions of Inform 7 on Linux.
Unluckily I have added your workaround to “Italian Language” and I receive a strange error message even on the offline program (you can read it below), so even on Linux it should not work (at least for “Italian Language”).

If you have any idea, answer on the “relevat thread” above, so we don’t go off-topic here. Thank you!

This is the strange error message:

Translating the Source - Failed
The application ran your source text through the Inform 7 compiler, as usual, but the compiler unexpectedly failed. This should not happen even if your source text is gibberish, so you may have uncovered a bug in the program.
When a program like the I7 compiler fails, it typically returns an error number: this time, the number was 10, and that probably indicates that the compiler failed to manage its data structures properly. Perhaps you created a complicated situation on which it has not been fully tested.
The best option now is probably to reword whatever was last changed and to try again. Subsequent attempts will not be affected by the failure of this one, so there is nothing to be gained by restarting the application or the computer. A failed run should never damage the source text, so your work cannot be lost.
If you think it likely that the Inform 7 compiler is at fault, please check that you have the currently distributed build of the system: if you have, please consider taking the time to fill out a bug report at the Inform bug tracker (www.inform7.com/bugs). If you think the fault may be due to a problem in an extension you’re using, then please contact the extension’s author directly.
Sorry for the inconvenience.

I also tried the workaround in the other thread and the compiler crashed with a segmentation fault. The service runs on Debian 8 using the Linux command line compiler (inside a Docker container, node:12 to be exact.)

As Nathanaël said, this is unfortunately an I7 bug so there’s not much to be done unless a solution using I7 code is found.

On second thought, if the problem is caused by Debian, I can quite easily switch to another Linux distribution if someone finds a distro that works better.

This is incredible work, @Juhana. I created Playfic on top of Dannii Willis’s Parchment to make authoring and sharing interactive fiction a little easier, but the combination of Borogrove’s editor with Vorple’s multimedia capabilities is a huge leap forward.

The only thing it’s missing is hosting games, but it sounds like that’s coming very soon. Once that’s added, I might as well just start redirecting Playfic users to you instead. Congrats on an amazing release!

8 Likes

First this looks awesome and I’m very impressed with what it appears to handle so far.
So to preface all of this, I know nothing about Vorple and was working in the first Inform 7 option from the main app page.
So, when testing a quick check of supported features I noticed something odd about the righthand viewport (where the story plays). Once the story output progressed past the bottom of the viewport area, every new command resets that viewport back to the top of the scrolled text. So it requires scrolling back down to get to the prompt (and to see the result of the last command) each time.
So the question is:
Am I causing this through something in my code is this the expected behavior?

1 Like

It’s not just you, there seems to be something going on with the interpreter that causes that behavior. I’ll check it!

Quixe is now updated and the scrolling works correctly.

1 Like

Copying and pasting some examples from the “Writing with Inform” documentation. I tried running “The Undertomb 2” from Section 4.9 and got an error from this line:

Brightness is a kind of value. The brightnesses are guttering, weak, radiant and blazing.

The error message:

Problem. The sentence ‘Brightnesses are guttering, weak, radiant and blazing’ (line 3) appears to say two things are the same - I am reading ‘Brightnesses’ and ‘guttering’ as two different things, and therefore it makes no sense to say that one is the other: it would be like saying that ‘Tarzan is Jane’. It would be all right if the second thing were the name of a kind, perhaps with properties: for instance ‘Treehouse is a lighted room’ says that something called Treehouse exists and that it is a ‘room’, which is a kind I know about, combined with a property called ‘lighted’ which I also know about.

Is this a problem with the source code itself? Or the compiler? I’m wondering if there is an issue in converting Inform 7 to Inform 6 before running the game file.

1 Like

“Line 3” suggests that the code lost some empty lines while copy-pasting. If the code looks like this:

"Undertomb 2"
Section 1 - Procedure
Brightness is a kind of value. The brightnesses are guttering, weak, radiant and blazing.

then you need to add empty lines before and after the Section definition on line 2.

This happens because code blocks in the examples are separated by paragraphs instead of two line break characters so copied code also has only one line break where there should be two.

4 Likes

That was it. Thanks! Looking forward to using this more!

2 Likes

That’s amazing @Juhana !
I tried setting up a Vorple project a few years ago and never got it working so I’m excited to try this out.

4 Likes

This is very inspiring! Someday I hope to do something similar for Dialog, but it’s probably best to focus on the core functionality for now, in order to stand on solid ground. Again, good work!

5 Likes

The editor is designed so that new languages are easy to plug in, so if Dialog has an online interpreter (or did it also use standard Z-machine?) then it would be quite simple to add it. The compiler can be converted automatically to JavaScript the same way Inform 6 and Hugo compilers are implemented. But, if the system is still evolving rapidly, you’re right that it’s probably better to wait until it reaches a more stable phase.

The thing is, I would want to integrate this with the interactive debugger. That would allow you to edit the code in the left pane, and immediately have those changes merged into the running game in the right pane. I’m sure it can be done, but it’s a bit more involved than a simple recompile (because the state of the game needs to be taken into account).