Announcing Planedrift - v3 infocom browser-based player - beta testers needed.

Hi. I recently I wrote an open-source v3 Z-machine (in Elm) to support a course I’m writing about interpreters and functional programming. Once I’d done that, I just had to make my own browser-based client, Planedrift - you can find it at planedrift.app.

It’s pretty much a standard v3 client. Biggest feature: every time you move, the full transcript and game state are snapshotted to the browser’s local storage. You can close the tab mid-game and come back to exactly where you were or use the history list to jump back in time. The idea is to make it easy to pick up a game for ten minutes and then put it down again. I used to play these games for hours at a time as a kid but I don’t get much chance to do that these days. To further support my goldfish memory, I also added in-game todos.

I’m no designer, and I’ve done my best to make it pleasant to look at.

It only supports .z3 files at the minute, and .z5 is in progress. I’ve bundled the three publicly available Zorks, and you can bring your own .z3 file.

I’m thinking of adding more comprehensive note taking, maybe auto-mapping, transcript search and I’m playing with some plug-in ideas, and of course, dark mode! What do you think? What features should I prioritize? Right now, I’d really appreciate some beta-test feedback - find some bugs, let me know anything you find confusing, give it a workout.

Ben

12 Likes

Definitely a solid start, it looks quite polished!

One bit of feedback is that on mobile there’s not much space left for reading

I’d suggest seeing if you can shrink the header a little (or a lot).

The password bar is a longstanding bug in Android Chrome. The solution I came to in Parchment was to switch to a one line <textarea>.

5 Likes

That’s a really useful tip, thanks.

I tried it out with the .z3 version of my game A1RL0CK.
It is really good.
I love the typography (suggestion: give the players the possibility to increase the size, if they want), the looks, the layout and all the neat features. Don’t know if it always works, but it’s really cool. I’m waiting for the .Z5 upgrade.

I’ve posted it on the PunyInform discord server.

I think this project really needs to be pushed forward as an alternative to Parchment. Or, as it happens, people “at Parchment” will buy your company and make the Adobe-like-Planedrift :slight_smile:

PS: I AM a veteran graphic designer. You did a very cool job in layout and overall graphics, typography included!

2 Likes

That actually looks very good! Looking forward to future updates!

2 Likes

Hello @beng , would you consider adding support for non-english characters? I can see that “Solo Dos Deseos” (probably one of the few z3 adventures ever made in spanish) doesn’t look very good in Planedrift…

The idea is to make it easy to pick up a game for ten minutes and then put it down again.

This is something I really need. I can only play for a few minutes at a time, and my memory is terrible. I love the idea of this, I love the todo list, I love the design.

more comprehensive note taking, maybe auto-mapping, transcript search and I’m playing with some plug-in ideas, and of course, dark mode!

Mapping seems like a high priority, because half of the trouble of coming back to a game after a few days is that I don’t remember where things are. I don’t know if the map has to be automatic, though. That sounds difficult to implement and it would be useful to get a first version of mapping in as soon as reasonable!

Transcript search and text resizing is something the browser can handle, so those also seem like lower priorities to me.

I’ll see if I can dig up a z3 game to give this an honest whirl with! (But I do look forward to z5 support – many of the games I’d like to play are z5, or even glulx-based…)

Reading @Dannii’s comment, I’m reminded of people making custom keyboards for web apps and gaining quite a lot of vertical space in the process.

On the other hand, as a user with highly specific preferences on keyboards, I dislike when the custom keyboard is forced onto me.

2 Likes

Not sure what the up/down/checkmark thing is but it seems like a space waster.

(Safari on iOS)

Here’s an array that maps Zscii codes starting at 155 to Unicode that might be useful for fixing the issue mentioned above by @Kozelek. I probably cribbed this from the Z Machine Standard so it might be better to just get it from there. Hope it helps! (Yeah, it’s in Chapter 3 of the Standard)

Summary

// map 155-223 to unicode
static uint16_t unicode_mapping[223-155+1] = {
0x0e4, // a-diaeresis ä ae
0x0f6, // o-diaeresis ö oe
0x0fc, // u-diaeresis ü ue
0x0c4, // A-diaeresis Ä Ae
0x0d6, // O-diaeresis Ö Oe
0x0dc, // U-diaeresis Ü Ue
0x0df, // sz-ligature ß ss
0x0bb, // quotation » >> or "
0x0ab, // marks « << or "
0x0eb, // e-diaeresis ë e
0x0ef, // i-diaeresis ï i
0x0ff, // y-diaeresis ÿ y
0x0cb, // E-diaeresis Ë E
0x0cf, // I-diaeresis Ï I
0x0e1, // a-acute á a
0x0e9, // e-acute é e
0x0ed, // i-acute í i
0x0f3, // o-acute ó o
0x0fa, // u-acute ú u
0x0fd, // y-acute ý y
0x0c1, // A-acute Á A
0x0c9, // E-acute É E
0x0cd, // I-acute Í I
0x0d3, // O-acute Ó O
0x0da, // U-acute Ú U
0x0dd, // Y-acute Ý Y
0x0e0, // a-grave à a
0x0e8, // e-grave è e
0x0ec, // i-grave ì i
0x0f2, // o-grave ò o
0x0f9, // u-grave ù u
0x0c0, // A-grave À A
0x0c8, // E-grave È E
0x0cc, // I-grave Ì I
0x0d2, // O-grave Ò O
0x0d9, // U-grave Ù U
0x0e2, // a-circumflex â a
0x0ea, // e-circumflex ê e
0x0ee, // i-circumflex î i
0x0f4, // o-circumflex ô o
0x0fb, // u-circumflex û u
0x0c2, // A-circumflex  A
0x0ca, // E-circumflex Ê E
0x0ce, // I-circumflex Î I
0x0d4, // O-circumflex Ô O
0x0db, // U-circumflex Û U
0x0e5, // a-ring å a
0x0c5, // A-ring Å A
0x0f8, // o-slash ø o
0x0d8, // O-slash Ø O
0x0e3, // a-tilde ã a
0x0f1, // n-tilde ñ n
0x0f5, // o-tilde õ o
0x0c3, // A-tilde à A
0x0d1, // N-tilde Ñ N
0x0d5, // O-tilde Õ O
0x0e6, // ae-ligature æ ae
0x0c6, // AE-ligature Æ AE
0x0e7, // c-cedilla ç c
0x0c7, // C-cedilla Ç C
0x0fe, // Icelandic thorn þ th
0x0f0, // Icelandic eth ð th
0x0de, // Icelandic Thorn Þ Th
0x0d0, // Icelandic Eth Ð Th
0x0a3, // pound symbol £ L
0x153, // oe-ligature œ oe
0x152, // OE-ligature Œ OE
0x0a1, // inverted ! ¡ !
0x0bf, // inverted ? ¿ ?
};

1 Like

If you don’t mind a bit of old-schoolness, check out Tristam Island: Tristam Island by Hugo Labrande . There’s a Z3 version in the downloads.

2 Likes

Thanks for checking this out! :slight_smile:

Yes. I don’t know anything about non-english characters in the z-machine but I will find out about it. Could you maybe get me a link to solo dos deseos so I can test?

Thanks for the screenshot, David. I don’t have an iPhone. Is that UI tick bar something that appears on other sites? I’ll look into it.

By way of update: I have z5 working in the z-machine but there are some edge cases I need to figure out before I put it in planedrift. I’m working on mapping at the minute and I’ve got transcript search in my todo list.

1 Like

You can download the z3 file from its itch.io page.

2 Likes

I’m not 100% sure either – but it definitely seems to appear when the keyboard does. It looks like it’s intended for navigating between multiple fields in a form, and also possibly related to “autofilling” things like addresses. I searched the web a bit but couldn’t figure out exactly what it was called or how to suppress it.

I’ve just released a new version of planedrift -
bug fixes to the zmachine *
•* transcript search
• lots of UI tweaks - including better focus handling
• new themes with light/dark modes
• more /slash commands to make playing more fluid - for example type /dark to switch to the dark version of the current theme. /help to see other commands.
Currently working on:
• international characters
• auto-mapping
• z5 support
Hope you’ll find some time to check it out at https://planedrift.app