FyreVM-Web I7 Extensions Update

FyreVM-Web requires at least one Inform 7 extension to host your story in a browser using glulx-typescript. There are several others and the list is growing, so I’m going to report progress on occasion. This is the list and their current state of development.

FyreVM Core
This is the foundational extension that allows a Glulx game to use FyreVM output constructs (channels) instead of the traditional glk mechanisms.

FyreVM Banner
This is a simple extension that prints the banner text in a banner channel.

FyreVM Prologue
This is a simple extension that provides a prologue channel for text to appear before anything else.

FyreVM Text Styles
This is a new extension that somewhat mimics and extends the built-in Glulx Text Effects extension. It adds styling, font, color, and command link capabilities, including built-in usage of Google, Adobe-Edge, Adobe-TypeKit ($$), Fonts.Com, and browser (built-in) font sources. The command link allows you to say “[link go-north]north[/link]” and this would translate to a hyperlink that calls a sendCommand(command) function in the browser. The rest is standard styling using span tags and generated classes. The author doesn’t see anything except the I7 constructs. I’m in the process of updating Cloak of Darkness to use this extension. To use a Google Font, you’d simply make your own style with google as its source. The communication to the browser will inject the link to that font and create a CSS class. The author usage is shown below:

[code]my-style is a ui-style with color Black and font-family “Poirot+One” and font-source google and weight normal.

say “[ui my-style]This text will show up as black text, normal weight using the Poirot One font from Google Fonts.[/ui]”;[/code]

FyreVM Embedded
This is a conceptual extension to support the author embedding images and video within text.

FyreVM Sound
This is a conceptual extension to support sounds.

FyreVM Menus
This is a conceptual extension to support web based menus.

FyreVM Modal Dialogues
This is a conceptual extension to support modal popups and dialogues.

The one thing I have to figure out is how to make a default style for the main content.

The “default” channel is “main” and when you use “say” to emit content, it’s on the main channel. So there has to be a way (in I7) to tell FyreVM web to enable a default style for main content.

Still pondering this.

By the way, I’ve been following all the fyrevm work with great interest. But do you have any examples running that are just hosted web pages (i.e. that don’t require download or compiling)? Is there a link I can just click on to see a game in action?

I think that Jack Toresal used FyreVM with a Silverlight thingamajig-that-I-don’t-really-know-what-it-is, didn’t it? You can try it out at textfyre.itch.io/jack-toresal-a … ret-letter.

This looks like a download, though. Can FyreVM be compiled as a web-playable game? Is there one on the web now?

Yeah don’t mess with the Secret Letter stuff. That’s old Silverlight/C# code and outside of Pata Noir, a dead set of code.

I pushed Cloak of Darkness to: plover.net/~dave/cloakjs/

The online example of Cloak of Darkness now implements FyreVM Text Styles with the google Font ‘Lobster’ in the prologue.

So now that I’ve done this (Text Styles), I don’t like one aspect.

Font Family, Color, and Size don’t belong in I7 code. We should stick to em, b, i, and strong.

Pondering.

I like this; I noticed there’s no scrollback on my mobile device. Is that an option that’s up to the author? From what you’ve said before, this is a versatile platform, so I assume you can do what you want.

In order to implement scrolling, there’d need to be caching of past turn data and a way to merge the results together into a scrolling window.

It’s doable and I plan to make such a component, but honestly I see it as a legacy feature and not entirely necessary. I like “paging” back through historical turns. Of course I have not implemented paging either, but that’s an easier component to build.

But your point is valid. You can do whatever you want. You have all of the turn data. Make it look however you wish.

I removed the color and font stuff from FyreVM Text Styles.

For the [cmdlink cmd]text[/cmdlink] link creator, I did add all of the major go directions. So you can:

say "To the [cmdlink go-east]east[/cmdlink] is the kitchen.";

And this will create a link for “east” that executes “go east” in the browser. It doesn’t seem to work in mobile safari though, so needs work.

Fixed the time output in Cloak. Mucked with the fonts a bit.

Added an example [em][/em] in the first description.

I probably going to move over to using React now since a lot of the next tasks are component/app related.