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

I’ve made an online editor called Borogove for various parser IF languages. It’s now available at borogove.app. The layout is similar to the Inform 7 IDE with the screen split into a text editor on the left and an interpreter to run the game on the right.

The main goal of the editor is to make it easier to start using Vorple, which has so far required a relatively complicated setup to get it running. In Borogove everything is ready to go so you can start authoring literally in one click. But, since Vorple is basically an Inform extension, you can also use the editor for “normal” Inform projects, either Inform 6 or Inform 7. It’s also possible to write Hugo games.

The Inform 7 compiler has all the extensions from the Public Library installed so they can be used without any extra setup. In Inform 6 and Hugo you can add libraries and source files to the project using the editor’s File Manager.

This is the first release of the editor so it has only the basic functionality at the moment. Most notably I’m planning to add a feature to publish and play games online. If you’re using it for real projects, remember to download a copy every now and then just to make sure you don’t lose work! The project files can be downloaded from the File Manager dropdown menu (triangle icon in the top right of the File Manager.) There’s no login system yet and everything is stored locally in the browser, so clearing site data from the browser will also delete any projects started in the editor.

I’d be happy to take comments and suggestions. The source code of the editor is also available at GitHub - vorple/borogove-ide: Borogove online IDE for IF languages, and I’ll publish the code of other parts (I7 compiler service, remote assets) later as well as project documentation in case someone wants to tinker with it.

38 Likes

Really cool! It’s good to have a modern alternative to Playfic!

I started quite long ago a similar project (an Inform IDE built with Electron that allowed to test Vorple projects within the editor), but I hadn’t had enough time to dedicate to it.

So I’m glad Borogove exists now.

2 Likes

Fantastic work and awesome project! This will be hugely helpful for some of the classes I will be using Inform 7 with in 2020.

2 Likes

Cool to see, Juhana!

Very impressive! I’ve never managed to get beyond “hey that would be neat, if I could do it” stage with vorple.

2 Likes

Great editor!
I tried to compile a project in Inform 7 specifying “in italian” in the title, but the italian extension is not available in the public library, so the compiler fails (while in the real editor works because I have manually installed the needed extension). Do you plan to make external extensions available to this editor (for example, extensions stored somewhere in github that an author can reference) or it’s too difficult?

2 Likes

Yes, the plan is that later you could add custom project-specific extensions.

For now I can also add extensions to the compiler outside the Public Library, if there’s a version of the Italian extension that works in the latest version of Inform (I seem to remember that there were problems with non-English extensions in 6M62?)

2 Likes

There is indeed a problem with translations in 6M62, but I think the incompatible bits wre removed from the Italian extension. (That’s not the case for French and likely Spanish.)

Also, another bug prevents language extensions to be project-specific; they have to be installed system-wide. (There is a workaround, but well.)

So the matter is a bit more complicated than it looks!

You could also consider adding other versions of Inform (6L38 or even 6G60), at least for non-Vorple projects since Vorple is not compatible with those. (It’s quite easy to modify Vorple to make it work with 6L38. Haven’t really tried with 6G60.)

1 Like

I’m glad you included an Inform6 mode.

6 Likes

There is a version of Italian that works with 6M62. I’ll post a link in my next message if you want to add it. However it’s not a priority since I’m the only one that uses it in the world :wink:

1 Like

Here it is
https://sourceforge.net/projects/milleuna/files/Extensions/3.0/I7_eng-ita_6m62_171001.zip/download

1 Like

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.