All Projects → icculus → mojozork

icculus / mojozork

Licence: Zlib license
A simple Z-Machine implementation in a single C file. Now with online multiplayer! :)

Programming Languages

c
50402 projects - #5 most used programming language
PHP
23972 projects - #3 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to mojozork

checkpoint
Checkpoint (Unreleased Game) by Stu Galley (Infocom)
Stars: ✭ 52 (-37.35%)
Mutual labels:  zork, infocom
starcross
Starcross by Dave Lebling
Stars: ✭ 73 (-12.05%)
Mutual labels:  zork, infocom
minizork-1987
Sampler Edition of Zork (1987 Version) (Infocom)
Stars: ✭ 39 (-53.01%)
Mutual labels:  zork, infocom
zork-german
German-Language Translation of Zork (Unreleased) (Infocom)
Stars: ✭ 30 (-63.86%)
Mutual labels:  zork, infocom
zork
Full C++-17 port of the 616-point version of Zork from MIT circa 1978-1981
Stars: ✭ 16 (-80.72%)
Mutual labels:  zork, infocom
plunderedhearts
Plundered Hearts (Amy Briggs) (Infocom)
Stars: ✭ 57 (-31.33%)
Mutual labels:  infocom
arthur
Arthur: The Quest for Excalibur, by Bob Bates of Infocom (1989)
Stars: ✭ 62 (-25.3%)
Mutual labels:  infocom
mdl-docs
The MDL Programming Language by S. W. Galley and Greg Pfister
Stars: ✭ 21 (-74.7%)
Mutual labels:  infocom
seastalker
Seastalker, by Stu Galley and Jim Lawrence (Infocom)
Stars: ✭ 52 (-37.35%)
Mutual labels:  infocom
journey
Journey, by Marc Blank, Illustrated by Donald Langos (Infocom)
Stars: ✭ 54 (-34.94%)
Mutual labels:  infocom
deadline
Deadline by Marc Blank (Infocom)
Stars: ✭ 102 (+22.89%)
Mutual labels:  infocom
ballyhoo
Ballyhoo, by Jeff O'Neill (Infocom)
Stars: ✭ 60 (-27.71%)
Mutual labels:  infocom
zorkzero
Zork Zero: The Revenge of Megaboz, by Steve Meretzky of Infocom (1988)
Stars: ✭ 114 (+37.35%)
Mutual labels:  zork
leathergoddesses-gold
Leather Goddesses of Phobos Gold Edition, by Steve Meretzky (Infocom)
Stars: ✭ 73 (-12.05%)
Mutual labels:  infocom
zil
Zork implementation language
Stars: ✭ 24 (-71.08%)
Mutual labels:  zork
limnoria-plugins
Limnoria plugins I wrote or forked.
Stars: ✭ 35 (-57.83%)
Mutual labels:  zork
leathergoddesses
Leather Goddesses of Phobos, by Steve Meretzky (Infocom)
Stars: ✭ 63 (-24.1%)
Mutual labels:  infocom
infidel
Infidel by Mike Berlyn (Infocom)
Stars: ✭ 83 (+0%)
Mutual labels:  infocom
wishbringer-gold
Wishbringer: The Magick Stone of Dreams (Solid-Gold Edition) by Brian Moriarty (Infocom)
Stars: ✭ 45 (-45.78%)
Mutual labels:  infocom
pbchess
An open-sourced free online chess platform
Stars: ✭ 42 (-49.4%)
Mutual labels:  online-multiplayer-game

MojoZork

>read leaflet

Hello sailor!

This is an implementation of Infocom's Z-Machine. The Z-Machine is a virtual machine that's something like a high-level CPU. To keep their games portable and easier to write, Infocom's games all use this fake processor and ship with a platform-specific Z-Machine "emulator" ... so a game could run wherever someone had implemented the Z-Machine.

This project is just for fun; everyone should write this at some point as an educational activity. If you want a serious Z-Machine implementation, there are certainly better ones out there (I personally recommend "Frotz" and there are many others, too).

This program currently supports most of the Version 3 Z-Machine. This is enough to play the vast majority of Infocom's catalog. Later Infocom games used version 4, 5, and 6 of the Z-Machine, and those will currently not run here. Most modern Interactive Fiction is built with a tool called Inform and usually targets version 5 at the lowest; these games currently don't work with this project. Maybe later.

Activision, who acquired Infocom in the 1990's, gives out Zork I, II, and III for free, so I've included Zork I's data files with this project. If you want to see Zork I run through from start to finish, you can run a pre-written script to complete the entire game from the command line, like this:

./mojozork ./zork1.dat ./zork1-script.txt

If you want to write your own Z-Machine, there is an "official" specification on how to implement it, written by people that spent significant time reverse engineering the originals from Infocom, and extending the ecosystem with new tools. You can find that specification here.

As usual, Wikipedia offers a wonderful rabbit hole to fall down, too, in their Z-machine article.

MultiZork

On top of the MojoZork code, there is a telnet server called multizorkd that lets several people connect to the same game and play it as a multiplayer experience. Each player has their own inventory and can move independent of others. This probably only works on Linux/Unix systems, but the single-player mojozork program should work on just about anything.

You can play MultiZork right now by pointing a telnet client at multizork.icculus.org (or running nc multizork.icculus.org 23).

A post on my Patreon explains the motivations and technical details of multizork. If you like this, please consider throwing in a dollar so I can keep doing wild things like this!

libretro core

Ever want to play Z-Machine games under RetroArch? Now you can. The libretro core handles all the tapdancing to make text-based games run in a graphical window, and can be played with a keyboard (in RetroArch focus mode), or with a mouse or game controller on an included virtual keyboard.

Enjoy!

--ryan.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].