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.
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.
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.
7 comments
[ 30.5 ms ] story [ 74.7 ms ] threadIt just puts up a “NetworkError: A network error occurred.” error and doesn’t start.
The reason is this:
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:
Honestly, I’m a little surprised it took five years to find something that actually broke completely from this.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!