Lessons from creating my first text adventure
entropicthoughts.com77 points by kqr 4 days ago
77 points by kqr 4 days ago
Just tried playing the game, and found my very first actual breakage due to blocking custom fonts in over five years of using the web like this.
It just puts up a “NetworkError: A network error occurred.” error and doesn’t start.
The reason is this:
await document.fonts.load(`14px ${font_family}`)
Since this isn’t actually necessary for page functionality, it would be better wrapped in a try { … } catch {}, or just with .catch(() => {}) appended.My bizarre workaround is a user stylesheet to remove the offending font:
:root {
--glkote-mono-family: monospace;
}
Honestly, I’m a little surprised it took five years to find something that actually broke completely from this.It might be worth clarifying that the game itself does not deal in typefaces: it's the interpreter running the game that handles font business. The link in the article leads to the web-based Parchment interpreter running on iplayif.com, but there are other alternatives both for web-based play and native applications.
Maybe the Parchment people would appreciate the bug report, though. Or if it's iplayif.com that introduces this bug. I have no idea!
I'm so glad someone finally echo'd how I felt trying and failing to learn Inform 7. It was very much "there is a syntax. We are not going to tell you what it is." It was a shame because it looked so cool to be fluent at. The learning curve was just too high for me.
I much prefer TADS 3. With that said, I'm glad Inform 7 exists. It's such a strange one that seems to work for a subset of creatives, made by people that really love the art form.
I like ZIL, in part to be contrarian, but it actually is an interesting language, both because it is based on a subset of the 1970s Lisp-related language MDL, and because it is the language the Infocom implementors used historically, and these days you can even find the actual ZIL source code to Infocom games and even a few unreleased ones in various stages of completion.
I prefer Inform6, it's libre licensed.
Inform 7's source code is published under the Artistic License 2.0 these days: https://github.com/ganelson/inform/blob/master/LICENSE
Yeah inform 7 really feels like a regression from inform 6 at least in this way to me. I've been avoiding it.
Thank you for sharing! After reading the article, I played your game and really enjoyed it. My first text based game in ~30 years.
I was inspired and went on to play one of the games listed on IFDB tagged “short” and “recommended for beginners”. (Suveh Nux).
Also super fun and satisfying to beat!
Some of the issues with parsers and knowing what to type could be helped quite a bit if the text adventure interfaces had a bit more affordances. Making important objects bold is an easy one (unless you feel that determining the importance of objects is part of the puzzle). But if you break out of the linear-narrative approach there's a lot to do. Label exits with their destinations (if you have traveled there before). Use colors akin to blue/purple links to indicate history. Inventory doesn't need to be a command. If mapmaking isn't part of the challenge, then give people ways to move quickly (e.g., "go to throne room" could just find a path to the throne room based on your knowledge).
I used to be a bit of a parser purist but lately I have been coming around to choice-based games. Although choice-based games have traditionally been simpler, there is nothing saying that a choice-based game cannot have a complex model of the world and interesting puzzles.