Bisquixe problem with hyperlinks (input buffer message)

I hope nobody minds if I create more bisquixe threads. Forum is slow atm so I don’t think I’ll shout anyone down if I do so.

Even though this is a bisquixe error, it occurs in the IDE. It isn’t a web-specific error.

I’d like to make a game that can be completed 100% using only hyperlinks (no keyboard). Hyperlinks in bisquixe are straightforward for authors.

The syntaxt is hyperlink "[text]" as "[text2]". ‘text’ is the printed link, and ‘text2’ is entered verbatim at the command prompt.

This mostly works well, but filling in disambiguation questions generates a programming error. Here’s some code:

lab is a room.

include glulx entry points by emily short.
include simple multimedia effects for v10 by mathbrush.

there is a blue ball in lab.
there is a red ball in lab.

the description of lab is "Would you like to take a [ball]?".

to say ball:
	hyperlink "ball" as "take ball".
	
rule for printing the name of a thing (called T) while asking which do you mean:
	hyperlink "[the printed name of T]" as "[the printed name of T]";
	
rule for printing the name of a thing (called T) while listing nondescript items:
	hyperlink "[the printed name of T]" as "examine [the printed name of T]";

test me with clicking "ball" then clicking one of the items listed while asking 'which do you mean'

transcript. note that the “correct” (by appearance) input appears at the prompt.

transcript

Welcome
An Interactive Fiction
Release 1 / Serial number 250526 / Inform 7 v10.1.2 / D

lab
Would you like to take a ball?

You can see a blue ball and a red ball here.

take ball

Which do you mean, the blue ball or the red ball?

blue ball

[** Programming error: tried to write to ->264 in the buffer array “buffer”, which has entries 4 up to 263 **]

[** Programming error: tried to write to ->265 in the buffer array “buffer”, which has entries 4 up to 263 **]

[** Programming error: tried to write to ->266 in the buffer array “buffer”, which has entries 4 up to 263 **]

[** Programming error: tried to write to ->267 in the buffer array “buffer”, which has entries 4 up to 263 **]

[** Programming error: tried to write to ->268 in the buffer array “buffer”, which has entries 4 up to 263 **]

[** Programming error: tried to read from ->264 in the buffer array “buffer2”, which has entries 4 up to 263 **]

[** Programming error: tried to write to ->269 in the buffer array “buffer”, which has entries 4 up to 263 **]

[** Programming error: tried to write to ->269 in the buffer array “buffer”, which has entries 4 up to 263 **]
That’s not a verb I recognise.

I may be doing this wrong, it’s a little rich for me!

I am using 10.0.150101 of GEP.

My first thought is this other issue, which you asked about once with a similar example. I bet it’s related.

I don’t know if @drpeterbatesuk’s NounDomain replacement would fix this, but I’d give it a try.

1 Like

Good point! Because of the unfamiliar nature of hyperlinks (for me), I didn’t even consider that. Adding the retokenize definition doesn’t seem to have helped, and I seem unable to copy paste the larger replacement into my project (that may be something easy to do, I don’t know anything about i6).

I’m wondering if I should just do a table lookup for commands as text, since this is really just picking text to treat as input. I could build my own disambiguation lists. I don’t like the idea of that but there’s not a lot of conversation about the links feature and I hate to keep asking about it… but I’m open to hearing your thoughts (or anybody else’s) on using links in inform

I guess from a design philosophy point of view, I should consider whether I want to herd the parser through clarification messages or do something else. I’ll probably have better luck trying to construct text that can be used as an actionable command. Something like

clicking is an action out of world applying to one topic.
understand "click [text]" as clicking.

carry out clicking:
	now the pending action is the topic understood.

using the clicked-on verb to build a list of actionable nouns, then turning that into hyperlinks that can be used to pick a noun. I think we have some good Dialog games as models. Inform with Bisquixe can recreate a lot of that experience, though the nifty drop-down menu is out of reach. But examining nouns by clicking them and so forth, that’s doable.

After a bit of horsing around, I threw this together. Nothing exciting, just working through things.


I think flexible windows or what have you would make this even spicier, but I’m committed to 10.1.2

Anyway, this is an empty shell with little to do, but I’m going to host it as something to show people.
Bisquixe Links Demo by Drew Cook

I’d like to release a big Inform game that doesn’t require a keyboard. We’ll see!

2 Likes

Just seeing this now! All of this is very fun!

I think you have recursion error, since the definition for the printed name includes the printed name, so it’s forming an endless loop. You may want to use something like “the substituted form of the printed name” or some other recursion-avoiding technique. I’ll look at this more carefully if you get stuck, but it might be tomorrow.

Edit: Nevermind, it seems to be related to this:

I’ll look further!

Editedit: I have to go to bed, but even changing it to:

rule for printing the name of a thing (called T) while asking which do you mean:
	hyperlink "blue" as "blue";

still causes an error. In the linked thread above, someone changing the ‘keyboard’ routine caused a problem, and the part of bisquixe that keeps commands from being printed twice when using hyperlinks changes the keyboard routine.

Your current plan (just don’t hyperlink ambiguous commands) will work fine, of course; the advantage of hyperlinks is that you can explicitly choose the exact command the player will use. But there should be some way to fix this.

1 Like

That makes sense! I’m really warming up to managing the texts myself. That will let me tailor noun lists to specific actions (open things that are openable, wear things that are wearable), so I’m probably ok. What do you think? Since you made Impossible Stairs.

I’m excited about making a game in this way! It would be fun if others gave it a try, too.

From a tech POV, I don’t have many impediments:

  • I can’t use RULES debugging while clicking a link.
  • It’s really hard sometimes to know what’s triggering a GEP fatal error (but once the interface is done I won’t have to worry about that anymore).
  • My own ineptitude with CSS.

I think wrapping my head around writing for this more constrained playstyle will be the trickiest part.

1 Like