I’m starting a new TWINE development project with heavy use of VSCode. I’d like to integrate TWINE into my VSCode environment. I was already aware of the TWINE extension by cyrusfurheir called Twee 3 Language tools, but when I went to install it I noticed there was a newer, similar looking extension by Stephen Granade called Twine (TWEE3).
What are the differences between these extensions and their intended use? Do either of these eliminate the need for installing a Tweego application? I’ve only ever written Twine using the Twine app (I prefer sugarcube), so I’m not really familiar with Twee code at all, but I have been using VSCode for about a year for javascript programming.
Any advice about integrating TWINE with VSCode would be appreciated, but a run down on the differences between these two extensions is my immediate interest.
I can’t answer the difference between the extensions as I only use the former, but I can clear up some confusion about tweego. tweego is the most popular tool for compiling twine code into a twine game, if you’re not using the twine app (ide). there may be other compilers but idk what they are—everyone I know who doesn’t use the twine app to compile their code uses tweego. As well, twee “code” is just syntax/notation to delineate passages where the twine IDE uses a graphical interface.
The 1st extension, and I would guess the 2nd extension, do not eliminate the need for a separate compiler. Both parse twee notation.
I will say the 1st extension is very feature-rich with an optional graphical interface view like the twine app (I don’t use that feature but it’s cool). I like it a lot.
eta: for integrating vscode and twine, I like the template and explanation @JoshGrams provides in his blogpost here. there are more thorough explanations and templates out there but that one is simple and I use the build tool for literally Every Twine Project I do.
I’ve only tinkered with Stephen’s extension very briefly, but I think the handy thing there is that it sets up the build tools automatically, it’ll try to download storyformats automatically. So you don’t have to install Tweego separately. And it runs the games right in VSCode so you can look at source and output side-by-side.
It seems reasonably solid. It doesn’t have the visual graph view that T3LT has, but that’s super flaky and I don’t know that anyone uses it. You have to explicitly save all your source files before messing with the graph, or graph changes will be silently lost. And then I think you have to explicitly save graph changes to push them back into the source files. Very error-prone.
I’m not a big VSCode fan, but my immediate thought is that if Steven made it, it’s probably good. The same is also true of his old TADS 2 extensions from back in the day, as well as most of his games. In any case, I wish there was something like VSCode, with all the bells and whistles, but developed in C# or another language other than JS. (I’m not a big fan of Electron or other similar web apps, either, though this is probably just a me thing.)
It should be noted, that based on the Twine (Twee3) extension’s own notes, it only supports 2 of the 4 main Twine Story Formats. So if an Author intends to use either Harlowe or Snowman, or any of the minor Story Formats available, then that extension may be less helpful.
I’m also curious where exactly the extension is trying to automatically download the Chapbook & SugarCube story format templates from. As to my knowledge, there are only two places where an official copy of the SugarCube template can be sourced from:
the Twine 2.x application’s GitHub repository, which includes a copy of the version of SugarCube that was included in the latest release of the application. This version of the template can be out-of-date, because the Developer of SugarCube releases updates outside the application’s own release-cycle.
the ZIP file found in the Downloads section of the main page of the SugarCube 2 web-site. This ZIP file always includes a copy of the most recent release of SugarCube, which may be a later release than what is included with the Twine 2.x application.
T3LT doesn’t mention Snowman either, that I can see? So probably only really different for Harlowe…
T3LT uses its default twee3 “language” support option for Snowman and any minor story format identifier found in a project’s StoryData special Passage.