Quixe 2.2.3 and GlkOte 2.3.4

I have released these:

Quixe: a Glulx VM interpreter written in Javascript
GlkOte: a Javascript library for IF interfaces

This release adopts several improvements for mobile browser support. (Thanks to Dannii, Dan Fabulich, and vmiliantsei for suggestions.) The handling of the on-screen keyboard is much better now. Still not perfect though. The transitions when the keyboard pops up and down are ugly, but everything should wind up in the right place.

I’ve tested this heavily on iPad (iOS Safari, iOS Chrome, iOS Firefox) but not on Android or iPhones. So a certain amount of hammering would be welcome. The basic Advent.inf test is here, in a couple of layouts:

Play Advent in Quixe
Play Advent in Quixe, one-column layout

The HELP menu is a known sore point; you can get stuck in the menu and not be able to open the keyboard again. But outside of that, the game should be playable.

8 Likes

I gave it a try on an iPhone, nice improvements!

May I suggest moving the “Tap here to type” to CSS to make it customising it a little easier, eg. for non-English games.

The footer obscures the command line in the one column layout version. (Android/chrome).

That’s not great. Can you post a screenshot?

I don’t believe it’s possible to set the <input placeholder="x"> content with CSS. However, a localization config parameter (in JS) is a good idea.

When you’re in that situation, can you scroll up to see the input line?

(I have code in there to automatically scroll up, but the browser is obstreperous and I had to do it in a hacky way to make it work on Safari. I guess I need to get even hackier on Android. But if you can still scroll down and keep playing, it’s not a critical failure.)

No, can scroll down to see the transcript but cannot scroll up to make the command line visible.

Ooh, that’s exciting. I didn’t think that was possible. Okay, thanks.

I think I have fixed the one-column bug mentioned above.

New versions (2.2.4, 2.3.5) are now posted.

1 Like

Parchment/AsyncGlk’s support for one-col templates is a little bit different: I expect the #gameport to be absolutely positioned relative to the <body>, and then any header or footer to be accounted for in the #gameport’s margins. This makes the height calculations really simple when the screen is resized. But it doesn’t really work with Zarf’s one-col template, because its #gameport is nested inside a few other <div>s. Of course it would be better if the two interpreters were fully compatible with all of Inform’s site templates. I should look into seeing if I can adapt my calculation to work in the one-col template.

1 Like

Looks good:

Yeah. I tried the same approach at first, and I failed to test it against my own one-column layout. (I tested it against a different one. https://eblong.com/zarf/glk/glkote/sample-demo2.html and https://eblong.com/zarf/glk/glkote/sample-demo3.html are the two layouts, if you want to check.)

My fix was to check the offset of the gameport’s offsetParent (the element that it’s positioned relative to). This may or may not be the DOM root.

Then I can set the gameport’s absolute position by adjusting its top relative to the parent’s known position.

Are they both available as website templates? Cause I can only see the one template zip on the Quixe page.

Another option would be to just release my own one-col template. I could even package it with Parchment (the next release of Inform 7 will mean that one Parchment extension could contain both the interpreter core, as well as other optional website templates.)

No, I’ve only made one into a template. Do you want the other one? They’re functionally the same from the author’s point of view.