3 ms·
> The Zmachine it's far easier, but you are mostly limited to nswe, the corners, up and down. And, maybe, in/out, inside/outisde. The Z-Machine was far more ca
by WorldMaker 2y ago
> The Zmachine it's far easier, but you are mostly limited to nswe, the corners, up and down. And, maybe, in/out, inside/outisde.
The Z-Machine was far more capable than that. It had a complicated LISP-inspired object system and a parser capable of a relatively huge vocabulary and you could map just about whatever "spatial relationships" you wanted between the vocabulary and objects. Even the original Zork itself you'd be unable to complete if you assumed the only available directions were compass directions/corners/up/down/in/out. There are some tricky shortcuts and couple places the Zork dungeon violates a strict grid. DOOM has the much more limited map structure than the Z-Machine (given the way its BSP worked it had a very strong Euclidean graph and lots of limits on how rooms connect; which its amazing MyHouse.WAD works at all, it would have been a lot easier to build on the Z-Machine).
Also, further the features of the Z-Machine depend on the version of the Z-Machine and some of the later Z-Machines got extremely complex. Versions 6, 7, and 8 even had modest graphics support. (It might be neat with the project here to try to screenshot DOOM rooms and include in Z6+ Z-Machine files.)
- anthk 2y agoI know that; and ofc I played Dungeon/Zork with that semi Non-Euclidean geometry. But my point is mostly, by default, under inform6/inform6lib, you move in eight dirs and up/down. That's it. And yes, I'm aware about objects and inside/outside relations, the Inform6 flags map directly to them. But you can't do relative moves as you could do in a MUD, for instance for combats. Altough there was some roguelike written in Inform7 which was close. Yes, you can implement them as grammars/objects but you would have to track the entire map at once in order to track the projectiles per turn.
- WorldMaker 2y agoIt's useful to remember that Inform6 and especially its default library are limited in ways the Z-Machine itself is not. Inform7 is both better and worse with a heavier default library, but the language is more expressive in some surprising places than Inform6's syntax most easily allows for. I'm not sure what MUDs you are specifically thinking about, but most things in MUDs that were single player are generally expressible in the Z-Machine with the right libraries. Writing those libraries might be a chore because maybe not enough people want much more than I6/I7 standard libraries. Also, it's an interesting experience to try to write in ZIL directly instead of Inform, now that there are a growing number of ZIL compilers and even some of the original Infocom games are source available in ZIL from leaks now. ZIL can be interesting to see a lower level idea of the Z-Machine. It's a weirdly capable virtual machine even in its most raw. That raw low level isn't what you'd expect if you expect something like Inform6 and the Inform6 standard library.