Buttons in Games [split on request]

So, here’s the final unicode button keyboard for IF. In Three Rows.

Navigation/Map + Menu/Info/Action + Room/Player/Characters/Objects


Navigation has been explained.

Action: I’m changing the icon :white_check_mark::negative_squared_cross_mark: for Yes/No question. They can also mean On/Off. The icons are context sensitive. These can change depending upon the object selected, as to provide custom actions. You may add others as desired.

Room view:
:globe_with_meridians: Room Icon provides room description. Subsequent icons shows available exits. Exit icons maybe skipped in favor of NavPad. Or NavPad may be skipped in favor of room icons.
:small_blue_diamond:Delineate between Room Exits and Objects found in the room. Example shows NPCs.
:child: Player Icon. Subsequent icons shows items worn/equipped, then a divider, then items held. Player icon not shown in Room line because it’s assumed that it is always there.
:school_satchel: Current Focus. The example shows what is shown after :mag_right::school_satchel: LOOK BAG. It shows what the bag (a container) contains. This focus can be of different object or characters, as long as it’s in scope.

:black_small_square::white_small_square: Separators. Part of Layout so it’s not too busy/confusing.

Note: Mailbox icon shows that it’s open and empty, but you can just use generic icon.

Objects may include Containers, Supporters. Objects may also includes attachments. For example:

Toolbox with lock

Flashlight with bulb attached and removable battery.

Edit: I design it so it can also works as pure PnC by skipping both NavPad and ActPad. Look up VERBLESS adventure design.

Probably should come up with a better name than BoK: Button on Keyboard. It’s too easily confused with Butt On Board! Although calling it BOB interface does sound folksy-like. I hope I’m not jumping the shark here. :sweat_smile:

Clicking on the Room icon in PnC mode also shows :house::world_map::identification_card::question::white_check_mark::negative_squared_cross_mark: icons on the bottom row for main menu and stuff.


Thinking about PnC mode…

If I restrict the verbs and go by the nouns only, then it’s N^2! Assuming all rooms+obj adds up to 50, then it’s only 2500 actions. That’s good for a medium size game, isn’t it?

Assuming I can do 1 action per minute, that’s about 2500 minutes ~ 41 hours. Except quite a bit will be blank, since rooms+objects don’t really cross that well. You can do object +room, but room+object and room+room don’t really work. So, let’s say half of that. .

That’s only 20 hours! One weekend! Especially if you keep to using Unicode. Even if room and objects adds up to 100, that’s only 5000 minutes or about 83 hours! Good for 4 weekends of hard work or monthly

Hmmm. Maybe this is a new dawn of a new IF System! Maybe I should drop everything and create it, and make it a new career from now on!

Yep, today’s the day! Absolutely! :wink:


Follow your dreams, Harry!



Yup! It was done in 1893, A World’s Fair Mystery , (Peter Nepstad, 2002) which had a clickable compass. In the end it was not much used. You know, you’re typing your stuff, then you must raise your hand, move it to the mouse, move the mouse over the compass, click, move your hand again to the keyboard and keep on typing. Mixing different kind of interfaces doesn’t always work. For most people, focusing in one of them and just typing your NEWS turned out to be a more pleasant and fluid experience.

Balances (Graham Nelson, 1994) or City of Secrets (Emily Short, 2003) were also examples of doing such things with Inform and Glulxl.


Does this work with Inform6? Is there a tutorial for these? Looks to me this is better than z6, right? Or am I mistaken?


I think those are both compiled to glulx, not Z-code – Balances is an old game, but per IFDB those UI enhancements came in 2001. But they are Inform 6 (I7 only came out in 2006).


I couldn’t read balances.blb (crazy character set) where all the UI enhancements are. But the link shows z5 and the source code makes no mention of any UI that I can see.

Any help on this direction is appreciated. I even researched z6, which seems to be a natural development direction, but seems like very few terps are capable of fully realizing z6 full potential, despite all the glulx/blorb games in existence.

1 Like

Version 6 is very different from all the other Z-machine versions. It adds a dozen or so unique opcodes, optional operands to some older opcodes, and has a completely different screen model. Supporting it is a lot of work and barely a half dozen or so games use it so it’s no surprise it isn’t widely implemented.

Fun fact: While version 6 is needed for images, mouse support works in version 5 (see Beyond Zork). Although the read_mouse opcode is only in version 6, mouse clicks can be read in version 5 as keyboard input, with the coordinates of the clicks recorded in the extension header.


Gosh, I just learn something new doing this. Good stuff. Can you tell me where in DM4 the info is located? Somehow I couldn’t find it.


Sorry, I don’t know Inform. I just know what the Z-machine itself is capable of.


Primarily Section 42: Devices and opcodes.


I see it. It’s @readchar with 253 and 254 values. Thanks.

Not that I can use it at this time.

1 Like

I agree. Dialog supports mouse-playable parser games if the author does the work - it’s decently implemented in The Impossible Bottle - but it does become a hassle. I tried playing it mouse only but the moment I have to type something I stop using the mouse.

It sounds so lazy “I don’t want to move my hand to the right…” but it’s weirdly true. It’s less about distance and more about breaking fragile immersion because I’ve got to glance down and relocate the mouse and the home-row on a regular basis.

In my case, Infocom games became my groove when I learned to touch-type and no longer needed to look away from the screen.

Ideally you want all-keyboard, all-mouse, or “shooter combo” with right hand on the mouse and left on consistent control keys.